《Mysql必讀MySQL的增刪查改語句用法示例總結》要點:
本文介紹了Mysql必讀MySQL的增刪查改語句用法示例總結,希望對您有用。如果有疑問,可以聯系我們。
1.創建列
????MYSQL入門
alter table tablename add colname type not null default '0′;
??? 例:
MYSQL入門
alter table mmanapp_mmanmedia add appid_id integer not null default 372;
2.刪除列
MYSQL入門
alter table tablename drop column colname;
??? 例:
MYSQL入門
alter table mmanapp_mmanmedia drop column appid_id;
3.在已經存在的列上創建外鍵關聯
????MYSQL入門
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}]
??? 例:
???MYSQL入門
ALTER TABLE mmanapp_mmanmedia ADD CONSTRAINT fk_mdappid FOREIGN KEY(appid_id)
4.刪除外鍵關聯:
MYSQL入門
ALTER TABLE yourtablename DROP FOREIGN KEY fk_symbol;
??? 例:
???MYSQL入門
ALTER TABLE mmanapp_mmanmedia DROP FOREIGN KEY fk_mdappid
附文檔兩份:
一.mysql對列和表的相關操作MYSQL入門
增加主鍵
MYSQL入門
alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);
增加一個新列
MYSQL入門
alter table infos add ex tinyint not null default '0′;
刪除列
MYSQL入門
alter table t2 drop column c;
重命名列/改變列類型
MYSQL入門
alter table t1 change a b integer; alter table t1 change b b bigint not null; alter table infos change list list tinyint not null default '0′;
重命名表
MYSQL入門
alter table t1 rename t2;
加索引
MYSQL入門
mysql> alter table tablename change depno depno int(5) not null; mysql> alter table tablename add index 索引名 (字段名1[,字段名2 …]); mysql> alter table tablename add index emp_name (name);
加主關鍵字的索引
MYSQL入門
mysql> alter table tablename add primary key(id);
加唯一限制條件的索引
MYSQL入門
mysql> alter table tablename add unique emp_name2(cardnumber);
刪除某個索引
MYSQL入門
mysql>alter table tablename drop index emp_name;
二.對表增/刪約束關系MYSQL入門
InnoDB允許你用ALTER TABLE往一個表中添加一個新的 外鍵約束:
MYSQL入門
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}]
記住先創建需要的索引.你也可以用ALTER TABLE往一個表添加一個自引用外鍵約束.
InnoDB也支持使用ALTER TABLE來移除 外鍵:
MYSQL入門
ALTER TABLE yourtablename DROP FOREIGN KEY fk_symbol;
當年創建一個外鍵之時,如果FOREIGN KEY子句包括一個CONSTRAINT名字,你可以引用那個名字來移除 外鍵.另外,當外鍵被創建之時,fk_symbol值被InnoDB內部保證.當你想要移除一個外鍵之時,要找出標記,請使用SHOW CREATE TABLE語句.例子如下:
MYSQL入門
mysql> SHOW CREATE TABLE ibtest11c\G *************************** 1. row *************************** Table: ibtest11c Create Table: CREATE TABLE ibtest11c ( A int(11) NOT NULL auto_increment, D int(11) NOT NULL default '0′, B varchar(200) NOT NULL default ”, C varchar(175) default NULL, PRIMARY KEY (A,D,B), KEY B (B,C), KEY C (C), CONSTRAINT 0_38775 FOREIGN KEY (A, D) REFERENCES ibtest11a (A, D) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT 0_38776 FOREIGN KEY (B, C) REFERENCES ibtest11a (B, C) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=INNODB CHARSET=latin1 1 row in set (0.01 sec) mysql> ALTER TABLE ibtest11c DROP FOREIGN KEY 0_38775;
InnoDB解析程序允許你在FOREIGN KEY … REFERENCES …子句中用`(backticks)把表和列名名字圍起來.InnoDB解析程序也考慮到lower_case_table_names系統變量的設置.
InnoDB返回一個表的外鍵定義作為SHOW CREATE TABLE語句輸出的一部分:
MYSQL入門
SHOW CREATE TABLE tbl_name;
從這個版本起,mysqldump也將表的正確定義生成到轉儲文件中,且并不忘記 外鍵.
你可以如下對一個表顯示外鍵約束:
MYSQL入門
SHOW TABLE STATUS FROM db_name LIKE ‘tbl_name';
外鍵約束被列在輸出的Comment列.
當執行外鍵檢查之時,InnoDB對它照看著的子或父記錄設置共享的行級鎖.InnoDB立即檢查外鍵約束,檢查不對事務提交延遲.
要使得對有外鍵關系的表重新載入轉儲文件變得更容易,mysqldump自動在轉儲輸出中包括一個語句設置FOREIGN_KEY_CHECKS為0.這避免在轉儲被重新裝載之時,與不得不被以特別順序重新裝載的表相關的問題.也可以手動設置這個變量:
MYSQL入門
mysql> SET FOREIGN_KEY_CHECKS = 0; mysql> SOURCE dump_file_name; 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.
MYSQL入門
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/5480.html