程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL的增刪查改語句用法示例總結

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

編輯:MySQL綜合教程

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。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved