sql语法争对不同数据库的问题,请高手多多指教!

yzllfcn 2004-04-21 09:14:34
我知道,不同的数据库对sql语法的支持程度不同。
但就我的了解,不论是sqlserver、oracle或者DB2表面上看来它们的操作语法格式
都是一样的。如,select查询、insert插入、update更新等,它们的格式是一样的。
我听别人说在细小的地方有所差别。如象sqlserver在insert语句中不能有单引号等。
由于我现在条件有限,不能对不同的数据库进行测试。但又急需了解sql语法在不同数据库上的差异,只有拜托各位大大帮忙了,在此表示感谢!
最好能对sqlserver\oracle\db2\mysql\sysbase等各个数据库作详细的比较说明。
...全文
112 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
lawdoor 2004-05-08
  • 打赏
  • 举报
回复
用过access、sql server、mysql 、datebase、oracle.对于处学者感觉首选sql server最好,说到应用,推崇oracle
wj253 2004-05-08
  • 打赏
  • 举报
回复
帮你顶
aspnetxp 2004-05-08
  • 打赏
  • 举报
回复
up...
study...
52juanjuan 2004-05-06
  • 打赏
  • 举报
回复
去搞一本sql基础(第二版),看看,你就会明白好多的
redstorm11 2004-04-24
  • 打赏
  • 举报
回复
oracle 的sql与sqlserver的语法区别大,他要用到很多自己特有的属性,具体的要找资料了,,我也是刚接触orcale
reidli 2004-04-23
  • 打赏
  • 举报
回复
日期的比较,不同数据库有不同的表达式。具体如下:
(1)如果是ACCESS数据库,则为:WHERE mydate>#2000-01-01#
(2)如果是ORACLE数据库,则为:WHERE mydate>cast(''2000-01-01'' as date)
或:WHERE mydate>to_date(''2000-01-01'',''yyyy-mm-dd'')
在Delphi中写成:
thedate=''2000-01-01'';
query1.SQL.add(''select * from abc where mydate>cast(''+''''''''+thedate+''''''''+'' as date)'');

如果比较日期时间型,则为:
WHERE mydatetime>to_date(''2000-01-01 10:00:01'',''yyyy-mm-dd hh24:mi:ss'')
mikespook 2004-04-22
  • 打赏
  • 举报
回复
去看看SQL 95或SQL 99标准吧~~~一般细小的差别都是非标准的~~~在数据库的说明中会有说到对标准SQL的扩展问题~~~


PS: nameabc(nameabc) 你丫烦不烦?在哪都做广告,丫你的东西再好用,就冲你这烦人劲我也不用~~

swich 2004-04-22
  • 打赏
  • 举报
回复
大家加油
BlueDestiny 2004-04-22
  • 打赏
  • 举报
回复
学习
liuyu202 2004-04-22
  • 打赏
  • 举报
回复
还有sqlserver和oracle中的函数也有些不同:
例如 sqlserver oracle
日期函数 datediff todate
liuyu202 2004-04-22
  • 打赏
  • 举报
回复
Oracle 8通过OLE DB连接数据库时无法使用rs.PageSize?

我用的Oracle 9i通过OLE DB连接数据库时可以使用rs.PageSize!!!

oracle的数据类型与sqlserver有一些不同,
例如: sqlserver oracle
数据类型 datetime date
image blob
龙华 2004-04-22
  • 打赏
  • 举报
回复
很多区别。自己用多了就知道了。要总结可能不太容易。
fenlin 2004-04-21
  • 打赏
  • 举报
回复
顶一下......
Tonglu 2004-04-21
  • 打赏
  • 举报
回复
mysql毕竟是免费的东西 很多功能都没有,sqlserver里面的很我东西都没有!
yzllfcn 2004-04-21
  • 打赏
  • 举报
回复
有不有更详细的,分不够再加
Tonglu 2004-04-21
  • 打赏
  • 举报
回复
mysql
==========================================
mysql_connect(string [hostname] [:port], string [username], string [password]);
mysql_pconnect(string [hostname] [:port], string [username], string [password]);

SQL Server
==============================================
mssql_connect(string [servername], string [username], string [password]);

Msql
==============================================
msql_connect(string [hostname[:port]], string [username], string [password]);

ODBC
================================================
odbc_connect(string dsn, string user, string password, int [cursor_type]);

Oracle
===================================================
OCILogon(string username, string password, string [OCACLE_SID]);

Interbase
======================================================
ibase_connect(string database, string [username], string [password]);
Tonglu 2004-04-21
  • 打赏
  • 举报
回复
一个小例了
sqlserver中
select * top10 from table where sort=001

mysql中
select * from table where sort=001 limit 0,10
qwater 2004-04-21
  • 打赏
  • 举报
回复
cjf1009 2004-04-21
  • 打赏
  • 举报
回复
有标准的sql语法,不同的数据库有细微的差别,比如oracle是plsql等,好象还没人总结过这些差别,自己用的时候漫漫体会吧
kxcc 2004-04-21
  • 打赏
  • 举报
回复
尽量使用标准SQL语句,这样在数据库发生变化时,你的程序照样可以使用。

SQL Server和Access都支持一些特殊的语法,如Left、Right、Top等,但这都不是标准的。

DB2支持Mod的写法,但也不是标准的。

Sybase中的CODE In(1,2,3)数量不要超过250个,否则它处理不了;Oracle比Sybase强些,能处理999个。(或许高版本中没有这个问题了)

Sybase 还有一个很酷的地方:某张表记录较多时如果SQL语句比较简单,则查询时间较长。如果关联了三、四张其它表,则查询速度很快。

曾经有2个项目使用Oracle数据库,其中有张表的记录近千万,结果导致该表坏掉,现象是除了这张表无法访问,其它表可以访问。最近有1个项目使用DB2 5数据库,也是这张表估计达到了千万条记录时,数据库瘫掉,现象是DB2数据库无法启动,不能连接。现在还不清楚究竟是数据库的问题还是WINDOWS操作系统的问题。

Oracle 8通过OLE DB连接数据库时无法使用rs.PageSize,但通过ODBC就可以
加载更多回复(14)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧