首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL、SQL Server、Oracle 三大資料庫 DDL 語法對照表:索引、外鍵、欄位操作

     編輯:MySQL 綜合教學

MySQL、SQL Server、Oracle 三大資料庫 DDL 語法對照表:索引、外鍵、欄位操作

跨資料庫開發/遷移時,DDL 語法差異是常見痛點。本文整理三大主流資料庫在**索引、外鍵、欄位增刪改**上的標準語法對照,方便快速查閱。

1. 索引操作

操作MySQLSQL ServerOracle
建立一般索引CREATE INDEX idx_name ON tbl(col);CREATE INDEX idx_name ON tbl(col);CREATE INDEX idx_name ON tbl(col);
建立唯一索引CREATE UNIQUE INDEX idx_name ON tbl(col);CREATE UNIQUE INDEX idx_name ON tbl(col);CREATE UNIQUE INDEX idx_name ON tbl(col);
透過 ALTER TABLE 加索引ALTER TABLE tbl ADD INDEX idx_name(col);CREATE INDEX idx_name ON tbl(col); (不支援 ALTER 加索引)CREATE INDEX idx_name ON tbl(col);
刪除索引DROP INDEX idx_name ON tbl;
ALTER TABLE tbl DROP INDEX idx_name;
DROP INDEX idx_name ON tbl;DROP INDEX idx_name;
主鍵索引ALTER TABLE tbl ADD PRIMARY KEY(col);ALTER TABLE tbl ADD CONSTRAINT pk_name PRIMARY KEY(col);ALTER TABLE tbl ADD CONSTRAINT pk_name PRIMARY KEY(col);

2. 外鍵操作

操作MySQLSQL ServerOracle
加外鍵ALTER TABLE child ADD CONSTRAINT fk_name FOREIGN KEY (pid) REFERENCES parent(id);ALTER TABLE child ADD CONSTRAINT fk_name FOREIGN KEY (pid) REFERENCES parent(id);ALTER TABLE child ADD CONSTRAINT fk_name FOREIGN KEY (pid) REFERENCES parent(id);
刪除外鍵ALTER TABLE child DROP FOREIGN KEY fk_name;ALTER TABLE child DROP CONSTRAINT fk_name;ALTER TABLE child DROP CONSTRAINT fk_name;
注意事項父/子欄位**資料型別、長度、字元集、校對規則必須完全一致**;InnoDB 才支援外鍵需參考表有唯一索引/主鍵需參考表有唯一/主鍵索引;支援 ON DELETE CASCADE/SET NULL

3. 欄位 (Column) 操作

操作MySQLSQL ServerOracle
新增欄位ALTER TABLE tbl ADD COLUMN col VARCHAR(20) NOT NULL DEFAULT '';ALTER TABLE tbl ADD col VARCHAR(20) NOT NULL DEFAULT '';ALTER TABLE tbl ADD (col VARCHAR2(20) DEFAULT '' NOT NULL);
修改欄位型別/屬性ALTER TABLE tbl MODIFY col VARCHAR(50) NOT NULL;ALTER TABLE tbl ALTER COLUMN col VARCHAR(50) NOT NULL;ALTER TABLE tbl MODIFY (col VARCHAR2(50) NOT NULL);
刪除欄位ALTER TABLE tbl DROP COLUMN col;ALTER TABLE tbl DROP COLUMN col;ALTER TABLE tbl DROP COLUMN col;
重命名欄位ALTER TABLE tbl CHANGE old_col new_col VARCHAR(50) NOT NULL;EXEC sp_rename 'tbl.old_col', 'new_col', 'COLUMN';ALTER TABLE tbl RENAME COLUMN old_col TO new_col; (12c+)

4. 快速查詢表結構

-- MySQL
DESC tbl;
SHOW CREATE TABLE tbl;

-- SQL Server
EXEC sp_help 'tbl';
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='tbl';

-- Oracle
DESC tbl;
SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME='TBL';
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved