Orcle与MySQL的SQL语法区别.doc
文本预览下载声明
Orcle与MySQL的SQL语法区别:
1.在Oracle中用
select * from all_users显示所有的用户,而在MySQL中显示所有数据
库的命令是
show databases
对于我的理解,Oracle项目来说一个项目就应该有一个用户和其对应的
表空间,而MySQL项目中也应该有个用户和一个库,在Oracle db2也一样
中表空间是文件系统中的物理容器的逻辑表示,视图,触发器和存储过
程也可以保存在表空间中。而MySQL并并没有使用表空间来进行管理你。
2.查询当前所有的表
Oracle
select * from tab
MySQL
show tables
3.改变连接用户 库
Oracle
conn 用户名/密码@主机字符串
MySQL
use 库名
4.显示当前连接用户 库
Oracle
show user
MySQL
connect
5.执行外部脚本命令
Oracle
@a.sql
MySQL
source a.sql
Oracle数据库与MySQL数据库的区别是本文我们主要介绍的内容,希望能够对您有所帮助。
1.组函数用法规则
mysql中组函数在select语句中可以随意使用,但在oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列否则报错
eg:
select name,count money from user;这个放在mysql中没有问题在oracle中就有问题了。
2.自动增长的数据类型处理
MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。
CREATE SEQUENCE序列号的名称 最好是表名+序列号标记 INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;
其中最大的值按字段的长度来定,如果定义的自动增长的序列号NUMBER 6 ,最大值为999999
INSERT语句插入这个字段值为:序列号的名称.NEXTVAL
3.单引号的处理
MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。
4.翻页的SQL语句的处理
MYSQL处理翻页的SQL语句比较简单,用LIMIT开始位置,记录个数;PHP里还可以用SEEK定位到结果集的位置。ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置,并且只能用ROWNUM 100,不能用ROWNUM 80。
以下是经过分析后较好的两种ORACLE翻页SQL语句 ID是唯一关键字的字段名 :
语句一:
SELECT ID, [FIELD_NAME,...] FROM TABLE_NAME WHERE ID IN SELECT ID FROM SELECT ROWNUM AS NUMROW, ID FROM TABLE_NAME WHERE 条件1 ORDER BY 条件2 WHERE NUMROW 80 AND NUMROW 100 ORDER BY 条件3;
语句二:
SELECT * FROM SELECT ROWNUM AS NUMROW, c.* from select [FIELD_NAME,...] FROM TABLE_NAME WHERE 条件1 ORDER BY 条件2 c WHERE NUMROW 80 AND NUMROW 100 ORDER BY 条件3;
5.长字符串的处理
长字符串的处理ORACLE也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节,如果要插入更长的字符串,请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。
6.日期字段的处理
MYSQL日期字段分DATE和TIME两种,ORACLE日期字段只有DATE,包含年月日时分秒信息,用当前数据库的系统时间为SYSDATE,精确到秒,或者用字符串转换成日期型函数TO_DATE ‘2001-08-01’,’YYYY-MM-DD’ 年-月-日24小时:分钟:秒的格式YYYY-MM-DD HH24:MI:SS TO_DATE 还有很多种日期格式,可以参看ORACLE DOC.日期型字段转换成字符串函数TO_CHAR ‘2001-08-01’,’YYYY-MM-D
显示全部