MySQL基础(四)之Oracle 对比(自)

一、创库

  在 oracle 中创建数据库通常叫创建表空间,并需要创建该表空间用户

–创建表空间

create tablespace jwxt datafile 'jwxt.ora' size 500m 
autoextend on --自动扩展 
 next 50m maxsize 20480m --每次自动扩展50M,最大可到20480M 
extent management local;

–创建表空间默认用户

create user jwxt identified by 888 default tablespace jwxt quota 500m on jwxt;

–赋予其所有权限

grant all privileges to jwxt;

–拥有connect权限的用户只可以登录Oracle;拥有resource权限的用户只可以创建实体,不可以创建数据库结构;拥有全部特权,是–系统最高权限,只有DBA才可以创建数据库结构。

二、创表

  oracle 数据库使用序列 sequence 完成数据库自增操作,通常每张表都会创建一个序列

create sequence USER_SEQ
    maxvalue 10000000

在这里插入图片描述
创表

create table "user"
(
    id int
        constraint USER_PK
        primary key,
    name varchar2(5)
)

在这里插入图片描述

三、插入数据

  在 oracle 中表名和字段名不能使用 TAB 上面的 ~(飘)而是使用双引号,值必须使用单引号。同时使用序列(sequence)的下一个值方法获取下一个值。每次使用该方法后该序列的下一个值会自动按照步长增加。

insert into "user"(ID,NAME) values (USER_SEQ.nextval,'张三')

四、分页查询

  Oracle 分页查询必须使用行号 rownum,每次查询的行号都在变化,所以一般使用 子查询完成,SQL 如下

select * from ( select rownum r_, row_.* from ( select * from student order by id ) row_ where rownum <=Y ) where r_>=X ;

X:起始索引位置。

Y:结束索引位置。

五、jdbc 操作

  jdbc 操作时 url 前的驱动方式有两种,下面进行说明。最后的 sid 称为实例名,一般每个数据库服务都会有一个实例名。每个用户下有自己所属的数据库。查询也是针对该数据库。

同时需要导入相应的依赖:

<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>12.2.0.1</version>
</dependency>

案例:

Class.forName("oracle.jdbc.driver.OracleDriver");
Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@192.168.75.128:1521:xe", "jwxt", "888");
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("select * from \"user\"");
while (resultSet.next()) {
    System.out.println(resultSet.getString(2));
}
resultSet.close();
statement.close();
connection.close();

thin 和 oci 的 url 写法上的区别:

1)从使用上来说,oci必须在客户机上安装oracle客户端或才能连接,而thin就不需要,因此从使用上来讲thin还是更加方便,这也是thin比较常见的原因。

2)原理上来看,thin是纯java实现tcp/ip的c/s通讯;而oci方式,客户端通过native java method调用c library访问服务端,而这个c library就是oci(oracle called interface),因此这个oci总是需要随着oracle客户端安装(从oracle10.1.0开始,单独提供OCI Instant Client,不用再完整的安装client)

3)它们分别是不同的驱动类别,oci是二类驱动, thin是四类驱动,但它们在功能上并无差异。

4)虽然很多人说oci的速度快于thin,但找了半天没有找到相关的测试报告。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

faramita_of_mine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值