IT猫扑网:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置:首页数据库MYSQL → mysql和oracle常用内容比较

mysql和oracle常用内容比较

时间:2015/6/28来源:IT猫扑网作者:网管联盟我要评论(0)

  注释

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

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

  通配符的使用

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

  自增长数据类型的处理

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

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

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

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

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

  按位与函数

  oracle的按位与操作是: bitand(),按位或:bitor() 、按位异或:bitxor() 。

  eg:select bitand(3,2) from dual ;

  mysql的按位与是 & ,按位或:| 、按位异或: ^ 。

  eg:select 3&2 ;

  from子句

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

  oracle:

  select sysdate from dual

  mysql:

  select sysdate();

  查询结果数据分页

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

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

  select * from (select rownum no,col1,col2 from table where rownum=2

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

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

  eg:select * from table limit 5,10; #检索记录行 6-15

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

  select * from table limit 95,-1; # 检索记录行 96-last.

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

  select * from table limit 5; # 检索前 5 个记录行,换句话说,limit n 等价于 limit 0,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的值系统时间30天以内

  oracle

  SELECT * FROM table WHERE date_col >= sysdate – 30

  mysql:

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

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

  日期格式

  oracle 使用to_char()函数

  select to_char(sysdate,’yyyy-mm-dd’) from dual;

  select to_char(sysdate,’hh24:mi:ss’) from dual;

  mysql 使用date_format() 或 time_format()

  select date_format(now(),’%Y-%m-%d’);

  select time_format(now(),’%H-%i-%S’);

关键词标签:mysql,oracle

相关阅读

文章评论
发表评论

热门文章 10款MySQL数据库客户端图形界面管理工具推荐10款MySQL数据库客户端图形界面管理工具推荐MySQL常用维护管理工具MySQL常用维护管理工具Linux VPS/服务器上轻松导入、导出MySQL数据Linux VPS/服务器上轻松导入、导出MySQL数据MySQL复制的概述、安装、故障、技巧、工具MySQL复制的概述、安装、故障、技巧、工具

相关下载

人气排行 MySQL数据库启动失败1067进程意外终止的解决办法总结Mysql 1045错误解决办法10款MySQL数据库客户端图形界面管理工具推荐MySQL服务器进程CPU占用100%解决办法MySQL导出导入命令的用例MySQL无法启动、无法停止各种解决方法总结三种常用的MySQL建表语句Mysql清空表的实现方法