Oracle VS mysql--主键、索引、分页、组函数和单引号
有朋友问了Oracle跟mysql的一些区别的地方,所以这里做个简单总结mysql分页,大的架构就不讲了,这里主要从主键、索引、分页、组函数和单引号来说明下。
1、主键
Mysql一般使用自动增
概述 有朋友问了Oracle跟mysql的一些区别的地方,所以这里做个简单总结mysql分页,大的架构就不讲了,这里主要从主键、索引、分页、组函数和单引号来说明下。 1、主键 Mysql一般使用自动增长类型,在创建表时只要指定表的主键为auto increment,插入记录时,不需要再指定该记录的主键值,Mysql将自动增长;Oracle没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可;只是ORM框架是只要是native主键生成策略即可。 oracle一般是新建序列,SEQ_USER_Id.nextval来实现。 2、索引 1)mysql索引从0开始,Oracle从1开始。 2)MySQL在建立表的外键的时候有一个要求:建立外键的列必须有索引;但是Oracle不需要建立index,直接可以建立索引,不会报错。 3、分页 MYSQL处理翻页的SQL语句比较简单,用LIMIT 开始位置, 记录个数;ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置, 并且只能用ROWNUM80。下面写一下大致用法。 mysql: select * from user order by desc limit n ,m. 表示,从第n条数据开始查找,一共查找m条数据。 Oracle:select * from user select rownum a * from ((select * from user)a) select * from (select rownum a.* from (select * from user) a ) where r between n , m . 表示,n表示从第n条数据查询,查找到m条数据。 4、组函数用法规则 mysql中组函数在select语句中可以随意使用,但在oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列否则报错 例如select name,count(money) from user;这个放在mysql中没有问题在oracle中就有问题了。 而select name,count(money) from user group by name或者select max(name),count(money) from user; 在oracle就不会报错,同样这两种情况在mysql也不会报错 5、单引号的处理 MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。 关于Oracle跟mysql的区别还有哪些呢?大家可以在下发留言一起探讨下哦。后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~ (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |