Oracle就是个坑

1、主键增长

mysql自带自增长规则,oracle全靠手动

首先你要建一个序列,语法:create sequence 序列名 increment by 1 start with 1;

然后插入数据时:insert into 表名 (id, name) values (序列名.nextval, '张三');


2、预编译的坑

oracle在执行sql前存在预编译过程,即将sql里的表名、字段名、语法关键字全部大写

可以使用英文双引号将表名、字段名括起,它表示该表名、字段名拒绝预编译


如果sql里存在"含小写字母的表名",该sql无法正常执行,并报类似“[Err] ORA-00942: 表或视图不存在”的错误

如果sql里存在"含小写字母的字段名",该sql无法正常执行,并报类似“[Err] ORA-00904: "iD": 标识符无效”的错误


3、order by 的坑

select * from table where 条件 order by id,update desc;

我们期望查询结果能够先按 id 降序然后再按 update 降序,毫无疑问这将令你大失所望

真实的查询结果是:先按 id 升序再按 update 降序,why?

原因:默认排序规则为升序,不写即为升序,排序的多重条件以“,”号分割,且各条件间不共享排序规则

改正:select * from table where 条件 order by id desc,update desc;


4、字符串是以单引号括起的

单引号不得用于表名、字段名、语法关键字




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值