国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL的增刪查改語句用法示例總結

2024-07-24 13:07:05
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了MySQL的增刪查改語句用法示例總結,是對MySQL學習的基本知識點的一個歸納,需要的朋友可以參考下

1.創建列

 

 
  1. alter table tablename add colname type not null default '0′; 

例:

 

 
  1. alter table mmanapp_mmanmedia add appid_id integer not null default 372; 

2.刪除列

 

 
  1. alter table tablename drop column colname; 

例:

 

 
  1. alter table mmanapp_mmanmedia drop column appid_id; 

3.在已經存在的列上創建外鍵關聯

 

 
  1. ALTER TABLE yourtablename ADD [CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, …) REFERENCES tbl_name (index_col_name, …) [ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}] [ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION}] 

例:

 

 
  1. ALTER TABLE mmanapp_mmanmedia ADD CONSTRAINT fk_mdappid FOREIGN KEY(appid_id) 

4.刪除外鍵關聯:

 

 
  1. ALTER TABLE yourtablename DROP FOREIGN KEY fk_symbol; 

例:

 

  
  1. ALTER TABLE mmanapp_mmanmedia DROP FOREIGN KEY fk_mdappid 

附文檔兩份:

一.mysql對列和表的相關操作

增加主鍵

 

 
  1. alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id); 

增加一個新列

 

 
  1. alter table infos add ex tinyint not null default '0′; 

刪除列

 

 
  1. alter table t2 drop column c; 

重命名列/改變列類型

 

 
  1. alter table t1 change a b integer
  2. alter table t1 change b b bigint not null
  3. alter table infos change list list tinyint not null default '0′; 

重命名表

 

 
  1. alter table t1 rename t2; 

加索引

 

 
  1. mysql> alter table tablename change depno depno int(5) not null
  2. mysql> alter table tablename add index 索引名 (字段名1[,字段名2 …]); 
  3. mysql> alter table tablename add index emp_name (name); 

加主關鍵字的索引

 

 
  1. mysql> alter table tablename add primary key(id); 

加唯一限制條件的索引

 

 
  1. mysql> alter table tablename add unique emp_name2(cardnumber); 

刪除某個索引

 

 
  1. mysql>alter table tablename drop index emp_name; 

二.對表增/刪約束關系

InnoDB允許你用ALTER TABLE往一個表中添加一個新的 外鍵約束:

 

 
  1. ALTER TABLE yourtablename 
  2. ADD [CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, …) 
  3. REFERENCES tbl_name (index_col_name, …) 
  4. [ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}] 
  5. [ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION}] 

記住先創建需要的索引。你也可以用ALTER TABLE往一個表添加一個自引用外鍵約束。

InnoDB也支持使用ALTER TABLE來移除 外鍵:

 

 
  1. ALTER TABLE yourtablename DROP FOREIGN KEY fk_symbol; 

當年創建一個外鍵之時,如果FOREIGN KEY子句包括一個CONSTRAINT名字,你可以引用那個名字來移除 外鍵。另外,當外鍵被創建之時,fk_symbol值被InnoDB內部保證。當你想要移除一個外鍵之時,要找出標記,請使用SHOW CREATE TABLE語句。例子如下:

 

 
  1. mysql> SHOW CREATE TABLE ibtest11c/G 
  2. *************************** 1. row *************************** 
  3. Table: ibtest11c 
  4. Create TableCREATE TABLE ibtest11c ( 
  5. int(11) NOT NULL auto_increment, 
  6. int(11) NOT NULL default '0′, 
  7. varchar(200) NOT NULL default ”, 
  8. varchar(175) default NULL
  9. PRIMARY KEY (A,D,B), 
  10. KEY B (B,C), 
  11. KEY C (C), 
  12. CONSTRAINT 0_38775 FOREIGN KEY (A, D) 
  13. REFERENCES ibtest11a (A, D) 
  14. ON DELETE CASCADE ON UPDATE CASCADE
  15. CONSTRAINT 0_38776 FOREIGN KEY (B, C) 
  16. REFERENCES ibtest11a (B, C) 
  17. ON DELETE CASCADE ON UPDATE CASCADE 
  18. ) ENGINE=INNODB CHARSET=latin1 
  19. 1 row in set (0.01 sec) 
  20.  
  21. mysql> ALTER TABLE ibtest11c DROP FOREIGN KEY 0_38775; 

InnoDB解析程序允許你在FOREIGN KEY … REFERENCES …子句中用`(backticks)把表和列名名字圍起來。InnoDB解析程序也考慮到lower_case_table_names系統變量的設置。

InnoDB返回一個表的外鍵定義作為SHOW CREATE TABLE語句輸出的一部分:

 

 
  1. SHOW CREATE TABLE tbl_name; 

從這個版本起,mysqldump也將表的正確定義生成到轉儲文件中,且并不忘記 外鍵。

你可以如下對一個表顯示外鍵約束:

 

 
  1. SHOW TABLE STATUS FROM db_name LIKE ‘tbl_name'; 

外鍵約束被列在輸出的Comment列。

當執行外鍵檢查之時,InnoDB對它照看著的子或父記錄設置共享的行級鎖。InnoDB立即檢查外鍵約束,檢查不對事務提交延遲。

要使得對有外鍵關系的表重新載入轉儲文件變得更容易,mysqldump自動在轉儲輸出中包括一個語句設置FOREIGN_KEY_CHECKS為0。這避免在轉儲被重新裝載之時,與不得不被以特別順序重新裝載的表相關的問題。也可以手動設置這個變量:

 

 
  1. mysql> SET FOREIGN_KEY_CHECKS = 0; 
  2. mysql> SOURCE dump_file_name; 
  3. mysql> SET FOREIGN_KEY_CHECKS = 1; 

如果轉儲文件包含對外鍵是不正確順序的表,這就以任何順序導入該表。這樣也加快導入操作。設置FOREIGN_KEY_CHECKS為0,對于在LOAD DATA和ALTER TABLE操作中忽略外鍵限制也是非常有用的。

InnoDB不允許你刪除一個被FOREIGN KEY表約束 引用的表,除非你做設置SET FOREIGN_KEY_CHECKS=0。當你移除一個表的時候,在它的創建語句里定義的約束也被移除。

如果你重新創建一個被移除的表,它必須有一個遵從于也引用它的外鍵約束的定義。它必須有正確的列名和類型,并且如前所述,它必須對被 引用的鍵有索引。如果這些不被滿足,MySQL返回錯誤號1005 并在錯誤信息字符串中指向errno 150。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双流县| 长泰县| 沂水县| 新竹县| 黄骅市| 大厂| 永登县| 五寨县| 嘉善县| 余姚市| 南汇区| 黄石市| 文昌市| 绥阳县| 勐海县| 丰顺县| 蒙城县| 慈溪市| 敦煌市| 汕头市| 兴隆县| 休宁县| 德钦县| 肇州县| 南部县| 梨树县| 平泉县| 宜黄县| 桓台县| 郯城县| 新邵县| 海兴县| 万山特区| 九龙县| 定襄县| 宿州市| 新平| 榆树市| 平原县| 潜山县| 侯马市|