1. 程式人生 > >【SQL必知必會】筆記 建立和表

【SQL必知必會】筆記 建立和表

建立一張新表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;