SQL中數據庫之間不兼容的語法彙總

1.TOP

SQL Server的語法:

SELECT TOP number columnName

FROM tableName

MySQL的語法:

SELECT columnName

FROM tableName

LIMIT number

Oracle的語法:

SELECT columnName

FROM tableName

WHERE ROWNUM<=number

2.創建表時添加UNIQUE/PRIMARY KEY/FOREIGN KEY/CHECK(不需名爲約束人爲命時纔有不兼容)

   (接下來舉例說明)

SQL Server/Oracle/Access的語法:

CREATE TABLE Students

(Name char(10) NOT NULL,

Id char(10) NOT NULL UNIQUE

)

MySQL的語法:

CREATE TABLE Students

(Name char(10) NOT NULL,

Id char(10) NOT NULL,

UNIQUE(Id)

)

PRIMARY KEY和UNIQUE同理,只是把UNIQUE換成PRIMARY KEY而已;

FOREIGN KEY也是同理,只不過要加上REFERENCES的內容而已;

CHECK也是同理,只不過要加上約束的內容而已;

3.撤銷UNIQUE

SQL Server/Oracle/Access的語法:

ALTER TABLE TableName

DROP CONSTRAINT constraintName

MySQL的語法:

ALTER TABLE TableName

DROP INDEX indexName

4.撤銷PRIMARY KEY

SQL Server/Oracle/Access的語法:

ALTER TABLE TableName

DROP CONSTRAINT constraintName

MySQL的語法:

ALTER TABLE TableName

DROP PRIMARY KEY

5.撤銷FOREIGN KEY

SQL Server/Oracle/Access的語法:

ALTER TABLE TableName

DROP CONSTRAINT constraintName

MySQL的語法:

ALTER TABLE TableName

DROP FOREIGN KEY foreignKeyName

6.撤銷CHECK

SQL Server/Oracle/Access的語法:

ALTER TABLE TableName

DROP CONSTRAINT constraintName

MySQL的語法:

ALTER TABLE TableName

DROP CHECK checkName

7.爲已有的表添加DEFAULT

SQL Server/Oracle/Access的語法:

ALTER TABLE tableName

ALTER columnName SET DEFAULT 'defaultValue'

MySQL的語法:

ALTER TABLE tableName

ALTER COLUMN columnName SET DEFAULT 'defaultValue'

8.撤銷DEFAULT

SQL Server/Oracle/Access的語法:

ALTER TABLE tableName

ALTER columnName DROP DEFAULT 

MySQL的語法:

ALTER TABLE tableName

ALTER COLUMN columnName DROP DEFAULT

9.撤銷引索

SQL Server的語法:

DROP INDEX tableName.columnName

Oracle的語法:

DROP INDEX indexName

Access的語法:

DROP INDEX indexName ON tableName

MySQL的語法:

ALTER TABLE tableName

DROP INDEX indexName


當然,不同的數據庫在時間處理等方面還有不同,但由於文本過長,在此不再贅述。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章