mysql和oracle常用内容比较

如题所述

第1个回答  2022-11-21

  注释

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

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

  通配符的使用

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

  自增长数据类型的处理

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

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

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

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

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

  按位与函数

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

  eg select bitand( ) from dual ;

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

  eg select & ;

  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 no col col from table where rownum=

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

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

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

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

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

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

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

  日期字段处理

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

  oracle的时间系统函数是sysdate

  mysql:

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

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

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

  now()/sysdate()函数以 YYYY MM DD HH:MM:SS 返回当前的日期时间 可以直接存到datetime字段中 curdate()以 YYYY MM DD 的格式返回今天的日期 可以直接存到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(sysdate yyyy mm dd ) from dual;

  select to_char(sysdate hh :mi:ss ) from dual;

  mysql 使用date_format() 或 time_format()

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

lishixinzhi/Article/program/Oracle/201311/18066

相似回答