個人總結的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
一周排行
  • 對于我們工作中會經常碰到要把由伺服器腳本返回的數據然後需要利用jquery來解析成對應的數據,下面我就來介紹把像datatbale,list數據轉換成json格式數據的例子. 代碼如下 一般處理程序JsonDate.
  • 在jquery中我們要實現無刷新頁面可以使用有$.ajax $.post $(\'#xxx\').load(url,para)三個函數來實現,那麽他三個的具體用法與區別是什麽呢,下面我來一一介紹.$.ajax用法 代 ...
  • 本文章來給大家介紹關于jsp get Url請求方式中文亂碼問題解決辦法,有需要的朋友可參考.jsp中post方式請求一般不會亂碼,如果亂碼加上這句:解決辦法一 代碼如下 request.setCharacterEn ...
  • http壓縮是在web伺服器和浏覽器間傳輸壓縮文本內容的方法.http壓縮采用通用的壓縮算法如gzip等壓縮html.網頁特效或css教程文件.壓縮的最大好處就是降低了網路傳輸的數據量,從而提高客戶端浏覽器的訪問速度 ...
  • Windows 8.1獲取有關激活錯誤的幫助
    本文章來給各位同學介紹一下關于Windows 8.1獲取有關激活錯誤的幫助,如果你碰到此類 ...
  • 本文章收集了各個版本的editplus 注冊碼(序列號)給大家參考,有需要editplus 注冊碼(序列號)的朋友可進入查看.EditPlus v3.31注冊碼 代碼如下 注冊名:Free User注冊碼:6AC8D
  • 因爲伺服器上安裝了安全狗這個功能,我們直接的sql是不能使用的,下面我來給各位同學介紹介紹一下phpmyadmin把sql語句改爲base64傳輸來解決這個問題.1.首先 修改 libraries/header.in
  • PHP使用eval(gzinflate(str_rot13(base64_decode(‘BASE64加密後內容’))))核心代碼的解密下非擴展方式的php教程加密方法:這裏有個線上的,還不錯.木馬防殺還行,要保護代
  • 本文章來詳細介紹一下關于javascript中載入並解析XML字符串/xml文件實現程序代碼首先,我們需要載入這個xml文件,js中載入xml文件,是通過XMLDOM來進行的. 代碼如下 <?xml versi ...
  • 下面我來給大家介紹利用Ember.js實現用戶提交或查詢時有一個數據正在載入中的效果,這樣讓用戶知道數據在載入而不是網頁沒有反應哦.Ember.js 裏,需要大量處理 ajax 請求,又因爲是單頁面應用,ajax 正