首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle、SQL Server、MySQL 常用 SQL 語句對照速查表

     編輯:Oracle 資料庫相關知識

建立表 (CREATE TABLE)

OracleSQL ServerMySQL
CREATE TABLE _table_name (
    column1 VARCHAR2(10) PRIMARY KEY,
    column2 NUMBER(5) NOT NULL,
    memo VARCHAR2(100)
);
COMMENT ON COLUMN _table_name.column1 IS '這是註解';
CREATE TABLE _table_name (
    column1 VARCHAR(10) PRIMARY KEY,
    column2 INT NOT NULL,
    memo VARCHAR(100)
);
CREATE TABLE `_table_name` (
    `column1` VARCHAR(32) PRIMARY KEY COMMENT '註解',
    `column2` VARCHAR(30) NOT NULL COMMENT '註解'
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
  • Oracle 用 COMMENT ON COLUMN 加註解;MySQL 內嵌 COMMENT;SQL Server 需擴展屬性 (未列示)。
  • MySQL 識別符用反引號 `,支援引擎與字符集指定。

修改欄位 (ALTER TABLE ... MODIFY/ALTER)

操作OracleSQL ServerMySQL
新增欄位ALTER TABLE t ADD col VARCHAR2(505);ALTER TABLE t ADD col VARCHAR(20);ALTER TABLE t ADD col VARCHAR(2000);
修改欄位ALTER TABLE t MODIFY col VARCHAR2(505);ALTER TABLE t ALTER COLUMN col VARCHAR(2000);ALTER TABLE t MODIFY col VARCHAR(2000);
刪除欄位ALTER TABLE t DROP COLUMN col;ALTER TABLE t DROP COLUMN col;ALTER TABLE t DROP `col`;

索引管理 (CREATE/DROP INDEX)

原則:索引無法直接修改,需刪除重建。

主鍵索引

OracleSQL ServerMySQL
ALTER TABLE t ADD CONSTRAINT pk_name
PRIMARY KEY (col) USING INDEX TABLESPACE URMSPK;
ALTER TABLE t ADD CONSTRAINT pk_name
PRIMARY KEY CLUSTERED (col)
WITH (PAD_INDEX=OFF, ...) ON URMSPK;
ALTER TABLE t ADD PRIMARY KEY pk_name (col_list);

一般索引 (非唯一/唯一)

OracleSQL ServerMySQL
-- 一般
CREATE INDEX idx_name$cl2 ON t (col1, col2 DESC) TABLESPACE URMSIDX;
-- 唯一
CREATE UNIQUE INDEX idx_name ON t (col1, col2);
CREATE UNIQUE NONCLUSTERED INDEX idx_name ON t (col1, col2 DESC)
WITH (...) ON [URMSIDX];
-- 非唯一移除 UNIQUE 關鍵字
-- 一般
ALTER TABLE t ADD INDEX idx_name (col1, col2 DESC);
-- 唯一
ALTER TABLE t ADD UNIQUE idx_name (col_list);

刪除索引

OracleSQL ServerMySQL
DROP INDEX idx_name;DROP INDEX t.idx_name;ALTER TABLE t DROP INDEX idx_name;

資料操作 (DML)

INSERT

Oracle / SQL ServerMySQL
INSERT INTO t (col_list) VALUES ('val_list');
INSERT INTO t (`col_list`) VALUES ('val_list'), ('val_list2');  -- 多列一次插入

修改表名

OracleSQL ServerMySQL
ALTER TABLE leave RENAME TO Leave01;EXEC sp_rename 'leave', 'leave01';ALTER TABLE `leave` RENAME TO `leave01`;

刪除表

Oracle / SQL Server / MySQL
DROP TABLE table_name; (三者相同)

SQL Server 批量刪除:EXEC sp_msforeachtable 'DROP TABLE ?';

修改欄位名 (僅 SQL Server)

EXEC sp_rename 'table_name.col_name', 'new_col_name', 'COLUMN';

DELETE

Oracle
DELETE FROM table_name WHERE col = ?; (FROM 可省略)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved