【SQL必知必會】筆記 建立和表
阿新 • • 發佈:2018-12-22
建立一張新表CREATE TABLE
比如說建立一張使用者資訊表,
CREAIE TABLE customers(cust id int NOT NULL AUTO_INCREMENT, cust_name char(50) NOT NULL , cust address char(50) NULL, custcity char(50) NULL, cust_state char(5) NULL, cust_zip char(10) NULL, cust_country char(50) NULL, cust_contact char(50) NULL, cust_email char(255) NULL, PRIMARY KEY (cust_id)) ENGINE=innoDB ;
用CREATE TABLE建立表,必須給出的資訊:
- 新表的名字,即例子中的customers表;
- 欄位的名字(cust_name ,cust address等)和定義(即char(30),char(50)之類的),不同欄位之間用逗號分隔
主鍵用PRIMARY KEY關鍵字指定。 這裡,列cust_id指定作為主鍵列。
主鍵: 值必須唯一。即,表中的每個行必須具有唯一的主鍵值。如果主鍵使用單個列,則它的值必須唯一。如果使用多個列,則這些列的組合值必須唯一。
主鍵中只能使用不允許NULL值的列。允許NULL值的
列不能作為唯一標識。
NULL值: 就是沒有值或缺值。允許NULL值的列也允許在插入行時不給出該列的值。不允許NULL值的列不接受該列沒有值的行,換句話說,在插入或更新行時,該列必須有值。
AUTO_INCREMENT: 本列每當增加一行時自動增量。每次執行一個INSERT操作時, 自動對該列增量(使用的最簡單的編號是下一個編號,即 大於當前最大編號的編號 。例如,如果cust_id的最大編號為10005,則插入表中的下一個顧客可以具有等於10006的cust_id )。這樣給每個行分配一個唯一的cust_id,從而可以用作主鍵值。
每個表只允許一個AUTO_INCREMENT列,而且它必須被索引(如,通過使它成為主鍵)。
ENGINE=innoDB : 選擇資料庫引擎
如果省略ENGINE=語句,則使用預設引擎。常用兩種引擎有innoDB和MyISAM。
更新表(增加列,刪除列)
增加新的一列
ALTER TABLE vendors ADD vend_phone CHAR(20);
刪除vend_phone 列
ALTER TABLE vendors DROP COLUMN vend_phone;
注意: 小心使用ALTER TABLE 使用ALTER TABLE要極為小心,應該
在進行改動前做一個完整的備份(模式和資料的備份)。資料
庫表的更改不能撤銷,如果增加了不需要的列,可能不能刪
除它們。類似地,如果刪除了不應該刪除的列,可能會丟失
該列中的所有資料
刪除表(DROP TABLE )
DROP TABLE customers;