欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL的增刪查改語句用法示例總結(jié)

 更新時(shí)間:2015年05月07日 11:26:25   投稿:goldensun  
這篇文章主要介紹了MySQL的增刪查改語句用法示例總結(jié),是對(duì)MySQL學(xué)習(xí)的基本知識(shí)點(diǎn)的一個(gè)歸納,需要的朋友可以參考下

1.創(chuàng)建列
    

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.在已經(jīng)存在的列上創(chuàng)建外鍵關(guān)聯(lián)
    

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.刪除外鍵關(guān)聯(lián):

  ALTER TABLE yourtablename DROP FOREIGN KEY fk_symbol;

    例:
   

 ALTER TABLE mmanapp_mmanmedia DROP FOREIGN KEY fk_mdappid

附文檔兩份:
一.mysql對(duì)列和表的相關(guān)操作

增加主鍵

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

增加一個(gè)新列

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);

加主關(guān)鍵字的索引

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

加唯一限制條件的索引

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

刪除某個(gè)索引

mysql>alter table tablename drop index emp_name;

二.對(duì)表增/刪約束關(guān)系

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

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}]

記住先創(chuàng)建需要的索引。你也可以用ALTER TABLE往一個(gè)表添加一個(gè)自引用外鍵約束。
InnoDB也支持使用ALTER TABLE來移除 外鍵:

ALTER TABLE yourtablename DROP FOREIGN KEY fk_symbol;

當(dāng)年創(chuàng)建一個(gè)外鍵之時(shí),如果FOREIGN KEY子句包括一個(gè)CONSTRAINT名字,你可以引用那個(gè)名字來移除 外鍵。另外,當(dāng)外鍵被創(chuàng)建之時(shí),fk_symbol值被InnoDB內(nèi)部保證。當(dāng)你想要移除一個(gè)外鍵之時(shí),要找出標(biāo)記,請(qǐng)使用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系統(tǒng)變量的設(shè)置。
InnoDB返回一個(gè)表的外鍵定義作為SHOW CREATE TABLE語句輸出的一部分:

SHOW CREATE TABLE tbl_name;

從這個(gè)版本起,mysqldump也將表的正確定義生成到轉(zhuǎn)儲(chǔ)文件中,且并不忘記 外鍵。
你可以如下對(duì)一個(gè)表顯示外鍵約束:

SHOW TABLE STATUS FROM db_name LIKE ‘tbl_name';

外鍵約束被列在輸出的Comment列。
當(dāng)執(zhí)行外鍵檢查之時(shí),InnoDB對(duì)它照看著的子或父記錄設(shè)置共享的行級(jí)鎖。InnoDB立即檢查外鍵約束,檢查不對(duì)事務(wù)提交延遲。
要使得對(duì)有外鍵關(guān)系的表重新載入轉(zhuǎn)儲(chǔ)文件變得更容易,mysqldump自動(dòng)在轉(zhuǎn)儲(chǔ)輸出中包括一個(gè)語句設(shè)置FOREIGN_KEY_CHECKS為0。這避免在轉(zhuǎn)儲(chǔ)被重新裝載之時(shí),與不得不被以特別順序重新裝載的表相關(guān)的問題。也可以手動(dòng)設(shè)置這個(gè)變量:

mysql> SET FOREIGN_KEY_CHECKS = 0;
mysql> SOURCE dump_file_name;
mysql> SET FOREIGN_KEY_CHECKS = 1;

如果轉(zhuǎn)儲(chǔ)文件包含對(duì)外鍵是不正確順序的表,這就以任何順序?qū)朐摫?。這樣也加快導(dǎo)入操作。設(shè)置FOREIGN_KEY_CHECKS為0,對(duì)于在LOAD DATA和ALTER TABLE操作中忽略外鍵限制也是非常有用的。
InnoDB不允許你刪除一個(gè)被FOREIGN KEY表約束 引用的表,除非你做設(shè)置SET FOREIGN_KEY_CHECKS=0。當(dāng)你移除一個(gè)表的時(shí)候,在它的創(chuàng)建語句里定義的約束也被移除。
如果你重新創(chuàng)建一個(gè)被移除的表,它必須有一個(gè)遵從于也引用它的外鍵約束的定義。它必須有正確的列名和類型,并且如前所述,它必須對(duì)被 引用的鍵有索引。如果這些不被滿足,MySQL返回錯(cuò)誤號(hào)1005 并在錯(cuò)誤信息字符串中指向errno 150。

相關(guān)文章

  • MYSQL事務(wù)教程之Yii2.0商戶提現(xiàn)功能

    MYSQL事務(wù)教程之Yii2.0商戶提現(xiàn)功能

    這篇文章主要給大家介紹了關(guān)于MYSQL事務(wù)教程之Yii2.0商戶提現(xiàn)功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • MySQL中l(wèi)imit語法及用法小結(jié)

    MySQL中l(wèi)imit語法及用法小結(jié)

    LIMIT 是 MySQL 中的一個(gè)特殊關(guān)鍵字,用于指定查詢結(jié)果從哪條記錄開始顯示,一共顯示多少條記錄,本文重點(diǎn)介紹MySQL中l(wèi)imit語法及用法小結(jié),感興趣的朋友一起看看吧
    2023-10-10
  • mysql創(chuàng)建用戶授權(quán)步驟詳解

    mysql創(chuàng)建用戶授權(quán)步驟詳解

    這篇文章主要介紹了mysql創(chuàng)建用戶授權(quán),本文分步驟給大家介紹的非常詳細(xì),對(duì)mysql創(chuàng)建用戶授權(quán)詳細(xì)步驟感興趣的朋友一起看看吧
    2023-07-07
  • SQL如何獲取目標(biāo)時(shí)間點(diǎn)或日期的方法實(shí)例

    SQL如何獲取目標(biāo)時(shí)間點(diǎn)或日期的方法實(shí)例

    日期獲取在我們?nèi)粘i_發(fā)中經(jīng)常會(huì)遇到,這篇文章主要給大家介紹了關(guān)于SQL如何獲取目標(biāo)時(shí)間點(diǎn)或日期的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • mysql的定時(shí)任務(wù)實(shí)例教程

    mysql的定時(shí)任務(wù)實(shí)例教程

    定時(shí)任務(wù)是我們?cè)谌粘i_發(fā)維護(hù)中經(jīng)常會(huì)遇到的,下面這篇文章主要給大家介紹了關(guān)于mysql定時(shí)任務(wù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • MySQL動(dòng)態(tài)SQL拼接實(shí)例詳解

    MySQL動(dòng)態(tài)SQL拼接實(shí)例詳解

    動(dòng)態(tài)SQL呢?首先是SQL語句,是根據(jù)條件來拼接SQL,下面這篇文章主要給大家介紹了關(guān)于MySQL動(dòng)態(tài)SQL拼接的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • mysql全量備份、增量備份實(shí)現(xiàn)方法

    mysql全量備份、增量備份實(shí)現(xiàn)方法

    這篇文章主要介紹了mysql全量備份、增量備份實(shí)現(xiàn)方法,需要的朋友可以參考下
    2016-12-12
  • MySQL數(shù)據(jù)庫(kù)用戶權(quán)限管理

    MySQL數(shù)據(jù)庫(kù)用戶權(quán)限管理

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)用戶權(quán)限管理,文章主要內(nèi)容就是在不同的項(xiàng)目中,給不同的角色(開發(fā)者)不同的操作權(quán)限,保證數(shù)據(jù)庫(kù)數(shù)據(jù)的安全,需要的朋友可以參考一下
    2022-06-06
  • MySQL數(shù)據(jù)表分區(qū)策略及優(yōu)缺點(diǎn)分析

    MySQL數(shù)據(jù)表分區(qū)策略及優(yōu)缺點(diǎn)分析

    項(xiàng)目開發(fā)中,隨著數(shù)據(jù)庫(kù)數(shù)據(jù)量越來越大,單個(gè)表中數(shù)據(jù)太多,從而導(dǎo)致查詢速度變慢,而且由于表的鎖機(jī)制導(dǎo)致應(yīng)用操作也受到嚴(yán)重影響,出現(xiàn)了數(shù)據(jù)庫(kù)性能瓶頸。因此我們需要考慮分表與分區(qū),MySQL分表分區(qū)就是為了解決大數(shù)據(jù)量導(dǎo)致MySQL性能低下的問題。
    2021-05-05
  • 如何通過sql查找所有父節(jié)點(diǎn)和所有子節(jié)點(diǎn)(以mysql為例)

    如何通過sql查找所有父節(jié)點(diǎn)和所有子節(jié)點(diǎn)(以mysql為例)

    這篇文章主要給大家介紹了關(guān)于如何通過sql查找所有父節(jié)點(diǎn)和所有子節(jié)點(diǎn),本文以mysql為例,項(xiàng)目中遇到一個(gè)需求,要求查處菜單節(jié)點(diǎn)的所有節(jié)點(diǎn),這里給大家總結(jié)下,需要的朋友可以參考下
    2023-08-08

最新評(píng)論