1. 程式人生 > >Mysql資料庫學習(2)DDL

Mysql資料庫學習(2)DDL

今天學習了資料庫中DDL和DQL語句的使用,總的來說還是學到很多以前沒學到的東西。以前太依賴網上的那種視覺化的建表工具,不用寫語句,但是這幾天寫了很多的sql語句,對於一些操作真的長進很多。其實在視覺化的建表過程那是不規範的,每次多了欄位都要去修改,但是Mysql實際上是擁有修改相關欄位的語句的。針對表格中的欄位,新增、刪除、修改:

--新增欄位 

ALTER TABLE customers ADD COLUMN phoneNumber varchar(11) UNIQUE

--修改欄位: 

  ALTER TABLE customers MODIFY COLUMN phoneNumber varchar(11) UNIQUE

 被新增的欄位如果沒有約束,那麼新增的新欄位為預設值NULL

--刪除欄位:

ALTER TABLE customers DROP COLUMN phoneNum

-- 修改資料表名
ALTER TABLE customer RENAME TO customers

-- 修改欄位名
ALTER TABLE customers CHANGE phoneNumber phoneNum varchar(11)

-- 刪除主鍵約束
ALTER TABLE CUSTOMERS DROP PRIMARY KEY
-- 新增約束
ALTER TABLE test ADD CONSTRAINT PRIMARY KEY(tid)
ALTER TABLE customers ADD CONSTRAINT UNIQUE (phoneNum)

關於Mysql資料庫中的引擎:MyISAM :  查詢速度是最快的,不支援外來鍵,不支援事務INNODB: 支援外來鍵,支援事務資料庫建立的預設引擎是MYISAM針對大量查詢,就應該使用MYISAM,如果要支援事務或外來鍵應該使用INNODB。

外來鍵的使用:

FOREIGN KEY : 外來鍵的關鍵字
FOREIGN KEY(uid) 當前表中宣告外來鍵的欄位
REFERENCES: 關鍵字,表示關聯
REFERENCES users(uid) 關聯到目標資料表(主表)的目標欄位
ON UPDATE CASCADE: 建立一個update驗證機制: 當附表中發生新增或修改操作時, 會去主表中檢查是否有對應的資料
ON DELETE CASCADE 建立一個delete驗證機制: 當主表刪除一條記錄的時候, 附表相關記錄會自動刪除。