MySQL表的操作02
【1】設定非空約束(NOT NULL ,NK) --->>>目的是f防止某些欄位中的內容為空
CREATE TABLE +table_name (
屬性名 資料型別 NOT NULL,
.........
);
【2】設定欄位的預設值(DEFAULT)
CREATE TABLE +table_name (
屬性名 資料型別 DEFAULT 預設值,
........
);
【3】設定唯一約束(UNIQUE,UK) ===>>>保證欄位的唯一性,比如記錄學生檔案資訊的時候,要保證學生的學號資訊的唯一性。
CREATE TABLE +table_name (
屬性名 資料型別 UNIQUE,
.........
);
【4-1】設定單欄位主鍵約束(PRIMARY KEY,PK) ===>>>主鍵約束在表中定義一個主鍵來唯一確定表中每一行資料的識別符號。每張資料表只能存在一個主鍵;主鍵保證記錄的唯一性;主鍵自動為NOT NULL(非空)。有類似UNIQUE的效果,來保證欄位的唯一性。
CREATE TABLE +table_name
(屬性名 資料型別 ,
屬性名 資料型別 ,
......
PRIMARY KEY(屬性名));
例子:
CREATE TABLE stu_info
(id int ,
name VARCHAR(12),
yeold int,
PRIMARY KEY(id));
若輸入與主鍵重複的欄位,則報錯!!!
mysql> INSERT INTO stu_info VALUE(1,'jack',25);
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
【4-2】多欄位主鍵
CREATE TABLE +table_name
(屬性名 資料型別 ,
屬性名 資料型別 ,
......
PRIMARY KEY(屬性名1,屬性名2,.....)); >>>注意:此時表示屬性名1和屬性名2同時都不重複,是“且”的含義。否則輸入命令不報錯
【5】設定欄位值自動增加(AUTO_INCREMENT) >>>預設下,該欄位的值是從1開始增加,每增加一條記錄,記錄中該欄位的值就會在前一條記錄的基礎上加1。
CREATE TABLE +table_name(
屬性名 資料型別 AUTO_INCREMENT,
..........
);
例子:
mysql> DESC stu_info;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(12) | YES | | NULL | |
| yeold | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
【6】設定外來鍵約束(FOREIGN KEY,FK)>>>
如果表A的主關鍵字是表B中的欄位,則該欄位稱為表B的外來鍵,表A稱為主表,表B稱為從表。外來鍵是用來實現參照完整性的,不同的外來鍵約束方式 將可以使兩張表緊密的結合起來,特別是修改或者刪除的級聯操作將使得日常的維護工作更加輕鬆。外來鍵主要用來保證資料的完整性和一致性.
兩個表必須是InnoDB表,MyISAM表暫時不支援外來鍵 外來鍵列必須建立了索引,SQL/">MySQL 4.1.2以後的版本在建立外來鍵時會自動建立索引,但如果在較早的版本則需要顯示建立; 外來鍵關係的兩個表的列必須是資料型別相似,也就是可以相互轉換型別的列,比如int和tinyint可以,而int和char則不可以;
CREATE TABLE +table_name (
屬性名資料型別,
屬性名資料型別,
.....
CONSTRAINT外來鍵約束名FOREIGN KEY (屬性名1)
REFERENCES 表名 (屬性名2)