?
This document uses PHP Chinese website manual Release
創(chuàng)建表
查看表結(jié)構(gòu)
查看表詳細(xì)結(jié)構(gòu)
修改表名
修改字段的數(shù)據(jù)類(lèi)型
修改字段名
增加字段
刪除字段
刪除關(guān)聯(lián)表
(1)刪除表的外鍵約束
(2)刪除沒(méi)有被關(guān)聯(lián)的普通表
(3)刪除被其他表關(guān)聯(lián)的父表
創(chuàng)建表:
CREATE TABLE 表名 (屬性名 數(shù)據(jù)類(lèi)型 [完整性約束條件], 屬性名 數(shù)據(jù)類(lèi)型 [完整性約束條件], 屬性名 數(shù)據(jù)類(lèi)型 [完整性約束條件])
“完整性約束條件”是指指定某些字段的某些特殊約束條件。
在使用CREATE TABLE創(chuàng)建表時(shí)首先要使用USE語(yǔ)句選擇數(shù)據(jù)庫(kù)。比如有個(gè)example數(shù)據(jù)庫(kù),用USE EXAMPLE選擇這個(gè)數(shù)據(jù)庫(kù)。
表名不能用SQL的關(guān)鍵字,如create,update等,字母不區(qū)分大小寫(xiě)。
下面是一個(gè)創(chuàng)建表的例子:
create table example(id int, name varchar(20), sex boolean);
上例創(chuàng)建了example表,有三個(gè)字段,id整型,name字符串型,sex布爾型。
完整性約束條件是對(duì)字段進(jìn)行限制。如果不滿(mǎn)足完整性約束條件,數(shù)據(jù)庫(kù)系統(tǒng)將不執(zhí)行用戶(hù)的操作,保護(hù)了數(shù)據(jù)庫(kù)中數(shù)據(jù)的完整性。
下面是完整性約束條件:
PRIMARY KEY 標(biāo)識(shí)該屬性為該表的主鍵,可以唯一的標(biāo)識(shí)對(duì)應(yīng)的元組
FOREIGN KEY 標(biāo)識(shí)該屬性為該表的外鍵,是與之聯(lián)系的某表的主鍵
NOT NULL 標(biāo)識(shí)該屬性不能為空
UNIQUE 標(biāo)識(shí)該屬性的值是唯一的
AUTO_INCREMENT 標(biāo)識(shí)該屬性的值自動(dòng)增加
DEFAULT 為該屬性設(shè)置默認(rèn)值
查看表結(jié)構(gòu):
describe 表名
describe可簡(jiǎn)寫(xiě)為desc。
describe語(yǔ)句可以查看表的基本的定義。包括字段名field,字段數(shù)據(jù)類(lèi)型type,是否為空null,是否為主外鍵key,
默認(rèn)值default和額外信息extra。
查看表詳細(xì)結(jié)構(gòu):
show create table 表名 show create table 表名 \G
\G增強(qiáng)顯示可查看性
show create table
語(yǔ)句可以查看表字段,各字段數(shù)據(jù)類(lèi)型,完整性約束條件,標(biāo)的存儲(chǔ)引擎,字符編碼等.
修改表名:
alter table 舊表名 rename [to] 新表名;
修改字段的數(shù)據(jù)類(lèi)型:
alter table 表名 modify 屬性名 數(shù)據(jù)類(lèi)型;
修改字段名:
alter table 表名 change 舊屬性名 新屬性名 新數(shù)據(jù)類(lèi)型;
舊屬性名參數(shù)指修改前的字段名,新屬性名參數(shù)指修改后的字段名,如果不指定數(shù)據(jù)類(lèi)型則數(shù)據(jù)類(lèi)型不變。
增加字段:
alter table 表名 add 屬性名1 數(shù)據(jù)類(lèi)型 [完整性約束條件] [first] after 屬性名2;
first可選項(xiàng)指此字段為表的第一個(gè)字段,after 屬性名2指放在指定字段后面,默認(rèn)最后一位。
刪除字段:
alter table 表名 drop 屬性名;
刪除關(guān)聯(lián)表:
(1)刪除表的外鍵約束:
外鍵是一個(gè)特殊字段,其將某一個(gè)表與其父表建立關(guān)聯(lián)關(guān)系。在創(chuàng)建表的時(shí)候,外鍵約束就已經(jīng)設(shè)定好了。去掉他們之間的關(guān)聯(lián)關(guān)系需要用到下面語(yǔ)句。
alter table 表名 drop foreign key 外鍵別名;
外鍵別名參數(shù)指創(chuàng)建表時(shí)設(shè)置的外鍵代號(hào)。
(2)刪除沒(méi)有被關(guān)聯(lián)的普通表
drop table 表名;
刪除一個(gè)表時(shí),表中的所有數(shù)據(jù)也會(huì)被刪除。刪除表時(shí)最好先將表中的數(shù)據(jù)備份一下。
(3)刪除被其他表關(guān)聯(lián)的父表
當(dāng)刪除有關(guān)聯(lián)關(guān)系的表時(shí),用drop table example1 會(huì)報(bào)錯(cuò),原因是有外鍵依賴(lài)于該表
例如創(chuàng)建了一個(gè)example4表依賴(lài)于example1表,example4表的外鍵stu_id依賴(lài)于example1表的主鍵。example1表時(shí)example4表的父表。
如果要?jiǎng)h除example4表,必須先去掉這種依賴(lài)關(guān)系。最簡(jiǎn)單的辦法是先刪除子表example4,然后刪除父表example1。但這樣可能會(huì)影響子表的其他數(shù)據(jù)。
另一種方法是先刪除子表的外鍵約束,然后刪除父表。這種方法不會(huì)影響子表的其他數(shù)據(jù),可以保證數(shù)據(jù)庫(kù)的安全。
比如,example4表的外鍵別名是d_fk,刪除example4的外鍵約束
alter table example4 drop foreign key d_fk;
可以通過(guò)show create table example4 \G來(lái)查看是否已刪除。
然后再執(zhí)行
drop table example1;
執(zhí)行成功則表示操作成功。