比较ORACLE、SQL SERVER、ACCESS、MYSQL中SQL语句的差别,只要说出都有分拿。(200分)

  • 主题发起人 主题发起人 zcm1975117
  • 开始时间 开始时间
Z

zcm1975117

Unregistered / Unconfirmed
GUEST, unregistred user!
目前想做一个跨数据库平台的系统,想请大家说出ORACLE、SQL SERVER、ACCESS、MYSQL中
SQL语句不同,只要大家说出来有都有高分拿,也在此先谢谢大家的帮助。
 
就是在几个和函数上的区别 期于的基本上一样
 
基本的操作都一样
 
我想大家知道一点点就说一点吧!
先贴一点:以前hzbl留的

SQL SERVER ACCESS
***********************************************************
添加 insert insert into
删除    delete table where ... delete * from table where ...
日期   "yy-mm-dd","yy-mm-nn hh:mm:nn" #yy-mm-dd#,"yy-mm-nn hh:mm:nn"
     注:与日期格式无关,关键是是否有时间(ADO)
通配    % BDE:* ADO:%      
函数   CASE IIF,SWITCH
CONVER CINT,CCURR.....
DATALENGTH LEN
ASCII ASC
DATEPART(yy,mydate) DATEPART('yyyy',mydate)
DATEPART(mm,mydate) DATEPART('m',mydate)
. .
. .
. .       
还有一些如CLIENTDATASET与ADODATASET返回的FIELDDATATYPE的不同
如:ftstring---->ftwidestring ftcurrency---->ftbcd 似乎都会
引起一些问题CLIENTDATASET 的过滤器不支持ftwidestring,ftbcd在
DBGrid中会将小数部分自动四舍五入。
 
都是标准的SQL语句,只是内置函数不同
 
SQL server Oracle
select @a=a from table select a into out_a from table
case decode
由于我也刚开始学oracle,能想起来的也就这点了
 
SQL SERVER中可以用的函数在ACCESS中不一定能够用,
我在用ACCESS开发软件的时候SQL中的SUBSTRING函数就不能使用,当然我是用BDE连接的。
 
比如左外部连接(也就是表1中的关联字段值有一些在表2中没有,但仍然要查询出表1中的所有记录):
Access:
Select 表1.*,表2.fie1,表2.fie2 from 表1 Left Outer Join 表2 On 表1.fie3=表2.Fie3
Sql Server:
Select 表1.*,表2.fie1,表2.fie2 from 表1,表2 where 表1.fie3*=表2.Fie3
Oracle:
Select 表1.*,表2.fie1,表2.fie2 from 表1,表2 where 表1.fie3(+)=表2.Fie3
 
外联接:
server
select t1.*,T2.* from t1 left join on t2 on t1.id=t2.id
oracle:
select t1.*,T2.* from t1,t2 where t1.id=t2.id(+)
 
SQL Server、Access:
select top 10 * from f10_main
oracle:
select * from f10_main where rownum<=10
 
取日期

ORACLE、 与sqlserver不同
SQL SERVER getdate()
ACCESS date()
MYSQL
 
oracle 中用 sequence
mysql 中用自动增加字段

 
如果想往mysql移植,就不要用嵌套查询。
 
不同的地方太多了。
ORACLE: 实际上没有integer类型 SQL Server: 有
无float类型 有
触发器不一样
不支持BIT运算(除BITAND) 支持
支持树状查询 不支持
 
学习先 ,
 
这个问题太大了,除了标准SQL用法都支持外,各个数据库都有自己的扩展功能,不管是DCL,or DML 还是
DDL用法上都有各的区别,尤其是oracle的 PL/SQL,它是过程化的数据查询语言。
 
顶楼:拿具体问题来问,transact-sql 和 p1-sql 了解比较多
有问题email to :iking7712@hotmail.com
 
access mysql
select top 10.....; select ....limit 0,10;
 
不同的地方太多了,看一下mysql的手册,里面提到了mysql不支持的地方。
另外,没有必要了解所有的不同吧。有些功能mysql,access是不支持的。
如果只是ORACLE、SQL SERVER,用标准SQL基本上都能解决
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
454
import
I
后退
顶部