数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

mysql和oracle常用内容比较


发布日期:2018年09月07日
 
mysql和oracle常用内容比较

注释

oracle使用的是–(两个) 批量注释 /**/

mysql使用的是# 批量注释 /**/

通配符的使用

mysql和oracle都支持通配符%用以模糊查询mysql还可以用instr(parapara)函数来做匹配查询速度更快para是原字符串可以是表的字段para是需要匹配到的字符串

自增长数据类型的处理

oracel没有自动增长的数据类型需要建立序列号插入记录时对该序列号使用nextval方法获取数据值

mysql有自动增长的数据类型插入记录时不用操作该字段自动获取增长值

字符串单引号双引号的处理

oracel只能使用单引号包起字符串

mysql对字符串可以使用单引号和双引号两个都支持

按位与函数

oracle的按位与操作是 bitand()按位或bitor() 按位异或bitxor()

egselect bitand() from dual ;

mysql的按位与是 & 按位或| 按位异或 ^

egselect & ;

from子句

mysql可以没有from字句oracle则是需要的如查询系统当前时间:

oracle:

select sysdate from dual

mysql:

select sysdate();

查询结果数据分页

orale使用rowmum限制查询返回的总行数是oracle系统顺序分配查询返回的行的编号返回的第一行分配的是

因为rownum总是从开始当rownum=n或rownum>n时(n>的自然数)系统认为是false条件所以无法查到即rownum只支持小于判断用于返回多少条以内的记录如果想要返回的记录是一个区间需要定义一个子查询并且为子查询的rownum命名一个别名如想要返回一个表的第二条和第三条记录:

select * from (select rownum nocolcol from table where rownum=

另外rownum不能以任何表的名称作为前缀

mysql使用limit分页limit 子句可以被用于强制 select语句返回指定的记录数limit接受一个或两个数字参数参数必须是一个整数常量第一个参数指定第一个返回记录行的偏移量可缺省默然为第二个参数指定返回记录行的最大数目初始记录行的偏移量是

egselect * from table limit ; #检索记录行

#为了检索从某一个偏移量到记录集的结束所有的记录行可以指定第二个参数为

select * from table limit ; # 检索记录行 last

#如果只给定一个参数它表示返回最大的记录行数目

select * from table limit ; # 检索前 个记录行换句话说limit n 等价于 limit n

日期字段处理

orale日期字段只有datemysql日期字段分date和time两种

oracle的时间系统函数是sysdate

mysql:

current_date/curdate() YYYYMMDD或YYYYMMDD格式返回今天日期值取决于函数是在一个字符串还是数字上下文被使用

current_time/curtime() HH:MM:SS或HHMMSS格式返回当前时间值取决于函数是在一个字符串还是在数字的上下文被使用

now()/sysdate()YYYYMMDD HH:MM:SS或YYYYMMDDHHMMSS格式返回当前的日期和时间取决于函数是在一个字符串还是在数字的上下文被使用

now()/sysdate()函数以YYYYMMDD HH:MM:SS返回当前的日期时间可以直接存到datetime字段中curdate()以YYYYMMDD的格式返回今天的日期可以直接存到DATE字段中CURTIME()以HH:MM:SS的格式返回当前的时间可以直接存到TIME字段中

查询一个表其日期字段date_col的值系统时间天以内

oracle

SELECT * FROM table WHERE date_col >= sysdate –

mysql:

select * from table where to_days(date_col) >= to_days(now()) – ;

select date_sub(now()interval day); # select date_add(now()interval day); date_add 是增加

日期格式

oracle 使用to_char()函数

select to_char(sysdateyyyymmdd) from dual;

select to_char(sysdatehh:mi:ss) from dual;

mysql 使用date_format() 或 time_format()

select date_format(now()%Y%m%d);

select time_format(now()%H%i%S);

上一篇:Oracle表、索引修改表空间语句

下一篇:Oracle分析函数的使用一