所謂創(chuàng)建數(shù)據(jù)表,指的就是在已經(jīng)創(chuàng)建好的數(shù)據(jù)庫(kù)中建立新表。創(chuàng)建數(shù)據(jù)表的過程是規(guī)定數(shù)據(jù)列的屬性的過程,同時(shí)也是實(shí)施數(shù)據(jù)完整性(實(shí)體完整性,引用完整性,域完整性)約束的過程。
1.創(chuàng)建數(shù)據(jù)表:
注意:數(shù)據(jù)表屬于數(shù)據(jù)庫(kù),在創(chuàng)建數(shù)據(jù)表之前應(yīng)該先使用“use <數(shù)據(jù)庫(kù)名>”指定操作在哪個(gè)數(shù)據(jù)庫(kù)中進(jìn)行。
CREATE TABLE<表名> //表名不區(qū)分大小寫,但不能使用SQL語(yǔ)言中關(guān)鍵字
(
字段名1,數(shù)據(jù)類型[列級(jí)別約束條件](默認(rèn)值),
字段名2,數(shù)據(jù)類型[列級(jí)別約束條件](默認(rèn)值),
......
[表級(jí)別約束條件]
);
2.使用主鍵約束:
主鍵又稱主碼,是表中一列或多列的組合。主鍵約束要求主鍵列的數(shù)據(jù)唯一,并且不能為空。主鍵能夠惟一地標(biāo)識(shí)表中的一條記錄,加快了數(shù)據(jù)庫(kù)查詢的速度,主鍵和記錄之間是一一對(duì)應(yīng)的,主鍵分為兩種類型:?jiǎn)巫侄沃麈I和多字段主鍵。
- 單字段主鍵:
字段名 數(shù)據(jù)類型 PRIMARY KEY [默認(rèn)值]
- 多字段聯(lián)合主鍵:
PRIMARY KEY [字段1,字段2,...字段n]
3.使用外鍵約束:
外鍵用來在兩個(gè)表的數(shù)據(jù)之間建立鏈接,可以是一列或者多列。一個(gè)表可以有一個(gè)或多個(gè)外鍵。外鍵的主要作用是保證數(shù)據(jù)引用的完整性,定義外鍵后不允許刪除在另一個(gè)表中具有關(guān)聯(lián)關(guān)系的行。(子表的外鍵必須關(guān)聯(lián)父表的主鍵,且關(guān)聯(lián)字段的數(shù)據(jù)類型必須匹配)
[CONSTRAINT <外鍵名>]FOREIGN KEY 字段名1[,字段名2,...]
REFERENCES<主表名> 主鍵列1[,主鍵列2....]
4.使用非空約束:
非空約束指字段的值不能為空。
字段名 數(shù)據(jù)類型 NOT NULL
5.使用唯一性約束:
字段名 數(shù)據(jù)類型 UNIQUE
"unique"和"primary key"的區(qū)別:一個(gè)表中可以有多個(gè)字段聲明為unique,但只能有一個(gè)primary key聲明;聲明為primary key 不可以有空值,但聲明為unique字段允許有空值。
6.使用默認(rèn)約束:
字段名 數(shù)據(jù)類型 DEFAULT 默認(rèn)值
7.設(shè)置表的屬性值自動(dòng)添加:
字段名 數(shù)據(jù)類型 AUTO_INCREMENT
8.查看所有數(shù)據(jù)表:
SHOW TABLES; //顯示某數(shù)據(jù)庫(kù)中所有的數(shù)據(jù)表
9.查看表結(jié)構(gòu):
DESCRIBE 表名; //或者簡(jiǎn)寫為:DESC 表名;
10.查看表詳細(xì)結(jié)構(gòu):
SHOW CREATE TABLE <表名\G>
11.修改表名:
ALTER TABLE <舊表名> RENAME <新表名>;
12.修改字段的數(shù)據(jù)類型:
ALTER TABLE <表名> MODIFY<字段名> <數(shù)據(jù)類型>; //字段名為要修改的字段,數(shù)據(jù)類型為修改后新的
13.修改字段名:
ALTER TABLE <表名> CHANGE <舊字段名> <新字段名> <新數(shù)據(jù)類型>;
14.添加字段:
ALTER TABLE <表名> ADD <新字段名> <數(shù)據(jù)類型> [約束條件] [FIRST|AFTER 已存在字段名]
注:"first"是在表的第一列添加字段;"after 已存在字段名" 是在指定位置后面添加字段。//若是要修改字段的排列位置,則是把ADD換成MODIFY即可。
15.刪除字段:
ALTER TABLE <表名> DROP <字段名>;
16.刪除表的外鍵約束:
ALTER TABLE <表名> DROP FOREIGN KEY <外鍵約束名>;
17.刪除沒有被關(guān)聯(lián)的表:
DROP TABLE [IF EXIST] 表1,表2....;
18.刪除被其他表關(guān)聯(lián)的表:
ALTER TABLE <表名> DROP FOREIGN KEY <外鍵約束名>; //先刪除關(guān)聯(lián)子表的外鍵約束
DROP TABLE 表1,表2,....;