個人總結的mysql、sqlserver、oracle維護索引、外鍵、字段、表語法

mysql、sqlserver、oracle是目前數據庫領域應用最多的三種,sql語法在這三個數據庫當中大部分差不多,不過也有一點小區別,以下是對mysql、sqlserver、oracle三種數據庫的維護索引、外鍵、字段、表語法總結。

1. MYSQL數據庫
1) 創建索引
CREATE INDEX index_name ON table_name(column_list)
CREATE UNIQUE INDEX index_name ON table_name(column_list)
修改表的方式添加索引
ALTER TABLE table_name ADD INDEX index_name(column_list)
ALTER TABLE table_name ADD UNIQUE (column_list)
ALTER TABLE table_name ADD PRIMARY KEY(column_list)

2) 刪除索引
DROP INDEX index_name ON talbe_name
修改表的方式刪除索引
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY

3) 創建外鍵
修改表的方式添加外鍵
ALTER TABLE TABLE_NAME
ADD [CONSTRAINT 外鍵名]FOREIGN KEY (index_col_name, ...)
REFERENCES tbl_name (index_col_name, ...)
舉例:
ALTER TABLE TABLE_NAME ADD CONSTRAINT FK_NAME(user_id)
REFERENCE sys_user(id)
需要注意兩個字段的數據類型一致;

4) 刪除外鍵
ALTER TABLE sys_org DROP FOREIGN KEY fk_s_o_id;

5) 列操作語法
Ø 添加列 birthday ,有COLUMN關鍵字
alter table sys_user add COLUMN birthday char(19) not null;
Ø 修改列 birthday ,有MODIFY 關鍵字
alter table sys_user modify birthday char(10);
Ø 刪除列 birthday,有 DROP COLUMN關鍵字
alter table sys_user drop column birthday;
Ø 修改列名稱及屬性;把birthday修改成CSRQ ,並改屬性爲char(10) 和不允許爲空not null
alter table sys_user change birthday CSRQ char(10) not null;
6) 修改表名稱
rename table MyTable to YouTable;
2. SQL SERVER 數據庫
1) 創建索引
create UNIQUE INDEX un_index_name on sys_user(user_name);
2) 刪除索引
DROP INDEX un_index_name ON sys_user
3) 創建外鍵
alter table sys_org add CONSTRAINT fk_s_o_id FOREIGN key(create_user)
REFERENCES sys_user(id);
與mysql一致,需要注意兩個字段的數據類型一致;
4) 刪除外鍵
ALTER TABLE sys_org DROP constraint fk_s_o_id;
與mysql語法不同

5) 列維護語法
6) 添加列 birthday ,有ADD關鍵字
alter table sys_user add birthday char(19) not null;
7) 修改列 birthday屬性 ,有alter column 關鍵字
alter table sys_user alter column birthday char(10);
8) 刪除列 birthday,有 DROP COLUMN關鍵字
alter table sys_user drop column birthday ;

9) 修改列名稱及屬性;把birthday修改成CSRQ ,並改屬性爲char(10) 和不允許爲空not null;需要分成兩步執行;

exec sp_rename 'sys_user.[birthday]','CSRQ','COLUMN';
alter table sys_user alter column CSRQ char(10) not null;
6) 修改表名稱
EXECsp_rename ‘MyTable’ , 'YouTable';
3. ORACLE 數據庫
1) 創建索引
CREATE INDEX index_name ON table_name(column_list)
CREATE UNIQUE INDEX index_name ON table_name(column_list)
create INDEX ind_s_u_sex on sys_user(sex);
2) 刪除索引
DROP INDEX [schema.]indexname;
drop index ind_s_u_sex;
3) 創建外鍵
修改表的方式添加外鍵
ALTER TABLE TABLE_NAME
ADD [CONSTRAINT 外鍵名] FOREIGN KEY (index_col_name, ...)
REFERENCES tbl_name (index_col_name, ...)
舉例:
ALTER TABLE TABLE_NAME ADD CONSTRAINT FK_NAME FOREIGN KEY (user_id)
REFERENCE sys_user(id)
需要注意兩個字段的數據類型一致;

4) 刪除外鍵
ALTER TABLE TABLE_NAME DROP CONSTRAINT FK_NAME;
舉例:
ALTER TABLE sys_org drop constraint fk_s_o_id;
5) 列操作語法
Ø 添加列 birthday , 有add關鍵字
alter table sys_user add birthday char(19) not null;
Ø 修改列 birthday ,有MODIFY 關鍵字
alter table sys_user modify birthday char(10);
Ø 刪除列 birthday,有 DROP COLUMN關鍵字
ALTER TABLE sys_user DROP COLUMN birthday;
Ø 修改列名稱及屬性;把birthday修改成CSRQ ,並改屬性爲char(10) 和不允許爲空not null;需要分成兩步執行;
ALTERTABLE sys_user RENAME COLUMN birthday to CSRQ;
ALTER TABLE sys_user MODIFYCSRQ char(10) ;
6) 修改表名稱
rename MyTable to YouTable;

更多相關文章
  • MYSQL,最成功的開源關系型數據庫之一,在國內外擁有大批的使用者,在這篇文章中,我們精心收集了13個最實用的mysql查詢技巧,希望能夠帶給大家驚喜,也方便自己以後查詢!如果大家也覺得是非常不錯的sql,請轉發.1
  • 在一些情況下,強大的Linux shell/terminal命令甚至不會詢問你而直接執行命令,可能導致文件夾.文件或者路徑文件夾等被刪除.這裏我收集了一些對系統有危害的Linux代碼,幫助你避免他們.請記住:這些代碼
  • 總結的 MySQL 的調節和優化的提示 101 條老師不會告訴你的
    Mysql應用發展到一定的程度,就得對你的Mysql進行調節優化,本文是我們精心總結的10
  • 本文章介紹了ie6 ie7 ie8 ie9和FireFox Chrome中css區別總結,有需要的朋友可參考參考.1.DOCTYPE 影響 CSS 處理2.FF: div 設置 margin-left, margin-right 爲 auto 時已經居中, IE 不行3.FF: body 設置 te ...
  • 本文我們來總結一下mysql數據庫中InnoDB與Myisam表類型的的六大區別,分別是:構成上的區別,事務處理上方面,SELECT,UPDATE,INSERT,Delete操作,對AUTO_INCREMENT的操作,表的具體行數,鎖一.構成上的區別:MyISAM每個MyISAM在磁盤上存儲成三個文
  • 本文章總結了IE下使用jquery ajax失效的原因和一些解決辦法,有需要的朋友可參考一下本文章.1,然後各種調試,最後發現:把ie把關了,再打開$.get().會調用,再第二次調用的用的時候發現又不行了.于是我推斷是ie緩存的問題,把ie緩存清除後,果然可以了.但是客戶不可能知道清理緩存.所以只
  • 本文章來給各位同學介紹一篇關于公司技術總監與經理工作總結與工作計劃2012-2014年,如果你是這個職位的這篇文章非常不錯哦.2012年終總結2012年是夢想啓航的一年,今年以來,從我的工作職責方面,我很感激公司領導
  • 本文章來介紹了關于編寫SQL需要注意的細節 Checklist總結 ,有需要了解的同學可以參考一下下. 代碼如下 /*--注意:准備數據(可略過,非常耗時)CREATE TABLE CHECK1_T1( ID INT
一周排行