Oracle,Postgresql等数据库使用

本文涉及的产品
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
可观测监控 Prometheus 版,每月50GB免费额度
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: Oracle,Postgresql等数据库简单使用

Oracle数据库

📑前言

本文主要是【Oracle、Postgresql】——Oracle、Postgresql数据库简单使用的文章,如果有什么需要改进的地方还请大佬指出⛺️

🎬作者简介:大家好,我是听风与他🥇
☁️博客首页:阿里云主页听风与他
🌄每日一句:狠狠沉淀,顶峰相见

  • 注意oracle通过语句来实现主键自增,oracle数据库id,name等需要搭配引号来进行sql的使用,如"id","name"

    Oracle数据库中没有自增字段,我们可以通过创建序列和触发器的方式,间接地实现自增的效果。

    举个实例:

    1.创建表TEST

    create table TEST(
               id number(10) primary key,   /*主键,自动增加*/
               name varchar2(20),            /*姓名*/
               phone varchar2(20),            /*电话*/
               sex varchar2(10),            /*性别*/
               age number(10)                /*年龄*/
               );
    

    2.创建自增长序列

    create sequence TEST_SEQ
    minvalue 1                -- 最小值
    -- maxvalue 2000        -- 最大值
    nomaxvalue              -- 不设置最大值 
    start with 1            -- 从1开始计数
    increment by 1            -- 每次增加1
    nocycle                    -- 一直累加,不循环
    cache 20;
    

注意:根据实际情况 选择配置项。比如:表单中存在一部分原始数据,在创建自增长序列时,可以设置计数起始位置。例如表中存在100条原始数据,那么我们可以设置 start with 101 ,这样自增长就会从101开始。

3.创建触发器

create or replace trigger TEST_TR
before insert on TEST
for each row
begin
select TEST_SEQ.nextval into :new.id from dual;
end TEST_TR;

4.测试

insert into TEST(name,phone,sex,age)  values('张三','18888888888','男',25)
insert into TEST(name,phone,sex,age)  values('李四','18888888889','男',29)

Postagesql数据库主键自增

  • 1.创建自增序列

    CREATE SEQUENCE 
    test_id_seq
    INCREMENT 1
    MINVALUE 1
    MAXVALUE 9223372036854775807
    START WITH 1
    CACHE 1;
    
  • 2.设置默认值

    alter table 
        test -- 表名
    alter column 
        id -- 列名 
    set default nextval(
        'test_id_seq'  -- 序列名
    );
    

    再像表中插入数据

    insert into test(age) values(12)
    

    oracle数据库操作

    导入对应的依赖

            <dependency>
                <groupId>cn.easyproject</groupId>
                <artifactId>orai18n</artifactId>
                <version>12.1.0.2.0</version>
            </dependency>
    
            <dependency>
                <groupId>com.oracle.database.jdbc</groupId>
                <artifactId>ojdbc8</artifactId>
                <scope>runtime</scope>
            </dependency>
    

    application.yml文件配置

    spring:
      datasource:
        driver-class-name: oracle.jdbc.driver.OracleDriver
        url: jdbc:oracle:thin:@localhost:1521:orcl
        username: scott
        password: 020911
    

    Student类:

    package com.oracle_test.pojo;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Student {
         
        private int id;
        private String name;
        private int age;
        private String email;
    }
    

StudentMapper接口:

  package com.oracle_test.Mapper;

  import com.oracle_test.pojo.Student;
  import org.apache.ibatis.annotations.*;

  import java.util.List;

  @Mapper
  public interface StudentMapper {
   
      @Select("SELECT * FROM \"student\"")
      List<Student> findAll();

      @Insert("INSERT INTO \"student\" VALUES (#{id},#{name},#{age},#{email})")
      int addStudent(Student student);

      @Update("UPDATE \"student\" SET \"name\"=#{name},\"age\"=#{age},\"email\"=#{email} WHERE \"id\" = #{id}")
      int updateStudent(Student student);

      @Delete("DELETE FROM \"student\" WHERE \"id\" = #{id}")
      int deleteStudent(int id);
  }

测试类:

  package com.oracle_test;

  import com.oracle_test.Mapper.StudentMapper;
  import com.oracle_test.pojo.Student;
  import org.junit.jupiter.api.Test;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.boot.test.context.SpringBootTest;

  import java.util.List;

  @SpringBootTest
  class OracleTestApplicationTests {
   

      @Autowired
      private StudentMapper studentMapper;
      @Test
      void contextLoads() {
   
          //查询所有
          List<Student> list = studentMapper.findAll();
          list.forEach(System.out::println);
          //删除
          int i = studentMapper.deleteStudent(4);
          System.out.println("i:"+i);
          //增加
          Student student = new Student(4,"王五",18,"452");
          int i1 = studentMapper.addStudent(student);
          System.out.println("i1:"+i1);
          //修改
          Student student1 = new Student(4,"王六",18,"457");
          int i2 = studentMapper.updateStudent(student1);
          System.out.println("i2:"+i2);
      }

  }

Postgresql数据库

依赖配置

        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>

application.yml文件:

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/test
    driver-class-name: org.postgresql.Driver
    username: postgres
    password: 020911

Student实体类:

package com.postgresql_test.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Student {
   
    private int id;
    private String name;
    private int age;
}

Student.Mapper接口:

package com.postgresql_test.mapper;

import com.postgresql_test.pojo.Student;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface StudentMapper {
   
    @Select("select * from student")
    List<Student> findAll();

    @Insert("insert into student(name,age) values (#{name},#{age})")
    int addStudent(Student student);

    @Update("update student set name = #{name},age=#{age} where id = #{id}")
    int updateStudent(Student student);

    @Delete("delete from student where id = #{id}")
    int deleteUser(int id);
}

测试类:

package com.postgresql_test;

import com.postgresql_test.mapper.StudentMapper;
import com.postgresql_test.pojo.Student;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
class PostgresqlTestApplicationTests {
   

    @Autowired
    private StudentMapper studentMapper;
    //注入studentMapper
    @Test
    void contextLoads() {
   
        //添加
        Student student = new Student(0,"王五",18);
        int i = studentMapper.addStudent(student);
        System.out.println("i:"+i);
        //删除
        studentMapper.deleteUser(0);
        //修改
        Student student1 = new Student(1,"张三",17);
        int i1 = studentMapper.updateStudent(student1);
        System.out.println("i1:"+i1);
        //查询
        List<Student> list = studentMapper.findAll();
        list.forEach(System.out::println);
    }

}

Mysql数据库和DM数据库同上,只是依赖和数据库配置略作修改

📑文章末尾

image.png

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
15天前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL的数据库集群
PostgreSQL的逻辑存储结构涵盖了数据库集群、数据库、表、索引、视图等对象,每个对象都有唯一的oid标识。数据库集群是由单个PostgreSQL实例管理的所有数据库集合,共享同一配置和资源。集群的数据存储在一个称为数据目录的单一目录中,可通过-D选项或PGDATA环境变量指定。
|
28天前
|
关系型数据库 分布式数据库 数据库
PostgreSQL+Citus分布式数据库
PostgreSQL+Citus分布式数据库
60 15
|
1月前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
44 7
|
1月前
|
Oracle 关系型数据库 数据库
oracle数据库技巧
【10月更文挑战第25天】oracle数据库技巧
28 6
|
1月前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
26 5
|
1月前
|
SQL 关系型数据库 数据库
PostgreSQL性能飙升的秘密:这几个调优技巧让你的数据库查询速度翻倍!
【10月更文挑战第25天】本文介绍了几种有效提升 PostgreSQL 数据库查询效率的方法,包括索引优化、查询优化、配置优化和硬件优化。通过合理设计索引、编写高效 SQL 查询、调整配置参数和选择合适硬件,可以显著提高数据库性能。
216 1
|
1月前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
137 4
|
26天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
34 1
|
28天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
39 4
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
191 1

推荐镜像

更多