Mysql學習2——創建數據表 創建數據表 在Mysql中,創建數據表通過SQL語句CREATE TABLE實現: CREATE TABLE 表名( 屬性名 數據類型 [完整性約束條件], 屬性名 數據類型 [完整性約束條件], 、、、、、 屬性名 數據類型 [完整性約束條件], ); “表名”為要創建數據表的名字,“屬性名”參數表示表中字段的名稱,“數據類型”參數指定字段的數據類型。 注意:在創建數據表之前必須先用USE語句選擇數據庫,格式為;USE 數據庫名 實例1: [sql] CREATE TABLE example(id INT, name VARCHAR(20), sex BOOLEAN ); 設置表的主鍵 1、單字段主鍵 主鍵是由一個字段構成時,可以直接在該字段的後面加上 PRIMARY KEY 來設置主鍵: 屬性名 數據類型 PRIMARY KEY 實例2: [sql] CREATE TABLE example1(stu_id INT PRIMARY KEY, stu_name VARCHAR(20), stu_sex BOOLEAN ); 2、多字段主鍵 主鍵是由多個屬性組合而成的,在屬性定義完之後統一設置主鍵,如下: 實例3: [sql] CREATE TABLE example2(stu_id INT, course_id INT, grade FLOAT, PRIMARY KEY(stu_id, course_id) ); 3、設置表的外鍵 設置外鍵的原則就是必須依賴數據庫中已經存在的父表主鍵,外鍵可以為空值。外鍵的作用是建立該表與其父表之間的關聯關系。父表中刪除某條信息時,子表中與之對應的信息也必須發生相應的改變。 設置外鍵的基本語法為: CONSTRAINT 外鍵別名 FOREIGN KEY (屬性1.1,屬性1.2,、、、、、、屬性1.n) REFERENCES 表名(屬性2.1,屬性2.2,、、、、、、屬性2.n) 其中,“外鍵別名”參數是為外鍵的代號,“屬性1” 參數列表是子表中設置的外鍵,“表名”參數是指父表的名稱,“屬性2”參數列表是父表的主鍵。 實例4: [sql] CREATE TABLE example3(id INT PRIMARY KEY, stu_id INT, course_id INT, CONSTRAINT c_fk FOREIGN KEY(stu_id, course_id) REFERENCES example2(stu_id, course_id) ); 解釋:id字段為主鍵,stu_id和course_id字段為外鍵,c_fk為外鍵別名,example2表成為example3表的父表,example3中的stu_id和course_id字段依賴example2表中的相應字段。 4、設置表的非空約束 設置表的的非空約束是指在創建表的時候為表中的某些特殊字段加上NOT NULL 約束條件,基本語法為: 屬性名 數據類型 NOT NULL 實例5: [sql] CREATE TABLE example4(id INT NOT NULL PRIMARY KEY, name VARCHAR(20) NOT NULL, stu_id INT, CONSTRAINT d_fk FOREIGN KEY(stu_id) REFERENCES example1(stu_id) ); 5、設置表的唯一性約束 唯一性是指所有記錄中該字段的值不能重復出現。設置表的唯一行約束是指在創建表的時候,為表的某些特殊字段加上UNIQUE約束條件。基本語法為: 屬性名 數據類型 UNIQUE 實例6: [sql] CREATE TABLE example5(id INT PRIMARY KEY, stu_id INT UNIQUE, name VARCHAR(20) NOT NULL ); 6、設置表的的屬性值自動增加 AUTO_INCREMENT是Mysql數據庫中一個特殊的約束條件。其主要用於為表中插入的新記錄自動生成唯一的ID。一個表只能只能有一個字段使用AUTO_INCREMENT約束,且該字段必須為主鍵的一部分。默認情況下,該字段的值是從1開始自增。基本語法為: 屬性名 數據類型 AUTO_INCREMENT 實例7: [sql] CREATE TABLE example6(id INT PRIMARY KEY AUTO_INCREMENT, stu_id INT UNIQUE, name VARCHAR(20) NOT NULL ); 7、設置表的屬性的默認值 默認值是通過DEFAULT關鍵字來設置的。基本語法為: 屬性名 數據類型 DEFAULT 默認值 實例8: [sql] CREATE TABLE example7(id INT PRIMARY KEY AUTO_INCREMENT, stu_id INT UNIQUE, name VARCHAR(20) NOT NULL , English VARCHAR(20) DEFAULT 'zero', Math FLOAT DEFAULT 0, Computer FLOAT DEFAULT 0 ); 作者 junjieguo