1.創建表
創建表的作用在于指定表字段的類型+屬性(約束)
創建表使用CREATE TABLE關鍵字進行操作
? ? 語法結構
? ? CREATE TABLE 表名(
? ? ? ? ? ? 字段名 ? 數據類型 ? 屬性/約束,
? ? ? ? ? ? ...
? ? ? ? ? ? 字段名 ? 數據類型 ? 屬性/約束,
? ? ? ? ? ? [PRIMARY KEY(字段名)]
注意
1.表名和字段名需唯一
2.屬性/約束中,默認允許設置NULL
? ? 理解NULL
? ? NULL不等于空串,空串是有效值
? ? 不要把NULL值與空串相混淆。NULL值是沒有值,它不是空串。如果指定''(兩個單引號,其間沒有字符),這在NOT NULL列中是允許的。空串是一個有效的值,它不是無值。NULL值用關鍵字NULL而不是空串指定
3.屬性/約束中,默認值DEFAULT設置必須是常數,不允許使用函數作為默認值?
4.屬性/約束AUTO_INCREMENT
每個表只允許一個AUTO_INCREMENT列
? ? CREATE TABLE customers
? ? (
? ? ? cust_id int ?NOT NULL ? AUTO_INCREMENT,
? ? ? cust_name ?char(50) ?NOT NULL,
? ? ? cust_address ?char(50) ?NULL,
? ? ? cust_city ?char(50) ?NULL,
? ? ? ? ? ? ? ? ? ? ? .....
? ? ? PRIMARY KEY(cust_id)
? ? );
AUTO_INCREMENT告訴Mysql,本列每當增加一行記錄時進行自動增量。每次執行一個INSERT操作,Mysql自動對該列增量,給該列賦予下一個可用的值。這樣給每個行分配一個唯一的cust_id,從而可以用作主鍵值
例:在test數據庫中創建pet表
? ? CREATE TABLE pet
? ? (?
? ? ? id int NOT NULL ?AUTO_INCREMENT,
? ? ? name VARCHAR(225) NOT NULL,
? ? ? owner VARCHAR(225) DEFAULT 'Odin',
? ? ? species VARCHAR(225),
? ? ? sex CHAR(1),
? ? ? birth DATE,
? ? ? death DATE,
? ? ? PRIMARY KEY(id)
? ? );
在創建新表時,指定的表名必須不存在,否則將出錯。如果要防止意外覆蓋已有的表,SQL要求首先手動刪除該表,然后再重建它,而不是簡單地用創建表語句覆蓋它。如果僅想在一個表不存在時創建它,應該在表名后給出IF NOT EXISTS,它不檢查已有表的模式是否與你打算創建的表模式相匹配。它只是查看表名是否存在,并且僅在表名不存在時創建它