Oracle与MySQL的一些操作区别

1.主键获取,建表语句

A:Mysql一般使用自动增长类型,在创建表时只要指定表的主键为auto increment,插入记录时,不需要再指定该记录的主键值,Mysql将自动增长;

CREATE TABLE user (

id int(11) NOT NULL
AUTO_INCREMENT COMMENT’编号’,

user_name varchar(40) NOT NULL COMMENT’姓名’,

password varchar(255) NOT NULL COMMENT’密码’,

creat_time date NOT NULL COMMENT’创建时间’ ,

last_modified_time timestamp(6) default
current_timestamp(6) on update current_timestamp(6) NOT NULL COMMENT’修改时间’ ,

PRIMARY KEY (id)

) ENGINE=InnoDB
DEFAULT CHARSET=utf8 COMMENT’信息表’ ;

CREAT INDEX IDX_
ast_modified_time ON user (last_modified_time);

B:Oracle没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可;只是ORM框架是只要是native主键生成策略即可。

CREATE TABLE USER (

ID VARCHER(20) NOT NULL ,

NAME varchar(40) NOT NULL,

PASSWORD varchar(255) NOT NULL ,

CREAT_TIME timestamp(6) NOT NULL ,

LAST_MODIFIED_TIME timestamp(6) default current_timestamp(6)
NOT NULL,

CONSTRAINT USER_PK PRIMARY KEY (id)

)

tablespace
XXDAT_TBS

COMPRESS;

CREAT INDEX USER_
ast_modified_time ON USER
LOCAL (last_modified_time DESC)

TABLESPACE XXIDX_TBS;

授权

GRANT ALL ON USER TO ORACLEUSER;

COMMENT ON TABLE USER IS ’信息表’;

COMMENT ON COLUMN USER. ID IS
‘编号’;

COMMENT ON COLUMN USER. NAME
IS ‘姓名’;

COMMENT ON COLUMN USER. PASSWORD
IS ‘密码’;

COMMENT ON COLUMN USER. CREAT_TIME
IS ‘创建时间’;

COMMENT ON COLUMN USER. LAST_MODIFIED_TIME
IS ‘修改时间’;

序号

CREAT sequence USER_SEQ

INCREMENT by 1

START with 10000000

MINvalue 10000000

MAXvalue 99999999

CACHE 100

CYCLE;

GRANT ALL ON USER_SEQ TO ORACLEUSER;

2.单引号的处理

MYSQL里可以用双引号包起字符串,

ORACLE里只可以用单引号包起字符串。

3.翻页的SQL语句的处理

MYSQL处理翻页,用LIMIT 开始位置, 记录个数;

格式:select * from user limit firstIndex(起始位置),pageSize(每页数量)

ORACLE处理翻页,每个结果集只有一个ROWNUM字段标明它的位置, 并且只能用ROWNUM<xxx, 不能用ROWNUM>xxx

格式:select * from(select
a.*,ROWNUM rn from(user) a where ROWNUM<=(20)) where
rn>0

4.数据库varchar中文长度

MySQL中varcher(10)可以存10个中文,与编码无关;

Oracle中,varcher2存中文,GBK一个中文占2个字节,UTF_8占3个字节;

5.数据字段超常问题;

当字段varcher(3),保存‘abcd’;

MySQL会成功取‘abc’;

Oracle会报错;

6.使用mybatis插入空值到Oracle问题

使用mybatis插入空值到Oracle数据库会报无效的列类型异常,需要加jdbcType=VARCHER;

MySQL不会;

7.字符串模糊查询

Mysql里用 字段名 like ‘%字符串%’;

Oracle里也可以用 字段名 like ‘%字符串%’ 但这种方法不能使用索引, 速度不快;

8.空间区别

在Mysql中,一个用户下可以创建多个库:

而在Oracle中,Oracle服务器是由两部分组成

数据库实例【理解为对象,看不见的】
数据库【理解为类,看得见的】

一个数据库实例可拥有多个用户,一个用户默认拥有一个表空间。

表空间是存储我们数据库表的地方,表空间内可以有多个文件。

当我们使用Oracle作为我们数据库时,我们需要指定用户、表空间来存储我们所需要的数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值