MySQL的增刪查改語句用法示例總結。本站提示廣大學習愛好者:(MySQL的增刪查改語句用法示例總結)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL的增刪查改語句用法示例總結正文
1.創立列
alter table tablename add colname type not null default '0′;
例:
alter table mmanapp_mmanmedia add appid_id integer not null default 372;
2.刪除列
alter table tablename drop column colname;
例:
alter table mmanapp_mmanmedia drop column appid_id;
3.在曾經存在的列上創立外鍵聯系關系
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 mmanapp_mmanmedia ADD CONSTRAINT fk_mdappid FOREIGN KEY(appid_id)
4.刪除外鍵聯系關系:
ALTER TABLE yourtablename DROP FOREIGN KEY fk_symbol;
例:
ALTER TABLE mmanapp_mmanmedia DROP FOREIGN KEY fk_mdappid
附文檔兩份:
一.mysql對列和表的相干操作
增長主鍵
alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);
增長一個新列
alter table infos add ex tinyint not null default '0′;
刪除列
alter table t2 drop column c;
重定名列/轉變列類型
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′;
重定名表
alter table t1 rename t2;
加索引
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> alter table tablename add primary key(id);
加獨一限制前提的索引
mysql> alter table tablename add unique emp_name2(cardnumber);
刪除某個索引
mysql>alter table tablename drop index emp_name;
二.對表增/刪束縛關系
InnoDB許可你用ALTER TABLE往一個表中添加一個新的 外鍵束縛:
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來移除 外鍵:
ALTER TABLE yourtablename DROP FOREIGN KEY fk_symbol;
昔時創立一個外鍵之時,假如FOREIGN KEY子句包含一個CONSTRAINT名字,你可以援用誰人名字來移除 外鍵。別的,當外鍵被創立之時,fk_symbol值被InnoDB外部包管。當你想要移除一個外鍵之時,要找出標志,請應用SHOW CREATE TABLE語句。例子以下:
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語句輸入的一部門:
SHOW CREATE TABLE tbl_name;
從這個版本起,mysqldump也將表的准確界說生成到轉儲文件中,且其實不忘卻 外鍵。
你可以以下對一個表顯示外鍵束縛:
SHOW TABLE STATUS FROM db_name LIKE ‘tbl_name';
外鍵束縛被列在輸入的Comment列。
當履行外鍵檢討之時,InnoDB對它照看著的子或父記載設置同享的行級鎖。InnoDB立刻檢討外鍵束縛,檢討纰謬事務提交延遲。
要使得對有外鍵關系的表從新載入轉儲文件變得更輕易,mysqldump主動在轉儲輸入中包含一個語句設置FOREIGN_KEY_CHECKS為0。這防止在轉儲被從新裝載之時,與不能不被以特殊次序從新裝載的表相干的成績。也能夠手動設置這個變量:
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。