- MySQL數據庫管理與開發實踐教程 (清華電腦學堂)
- 程朝斌
- 592字
- 2021-03-19 18:16:55
4.8 實驗指導——冰箱信息維護
本章詳細介紹了通過約束來實現數據完整性的維護,結合本章內容,創建冰箱信息表和冰箱主人信息表并對其字段進行完整性分析,約束的創建和修改,要求如下。
創建冰箱信息表refrigerator,有字段rid、brand、model和owner。對其各個字段分析如下。
(1)rid字段數據類型為INT,有主鍵約束、非空約束和自增約束。
(2)brand字段數據類型為VARCHAR,有非空約束和默認值“海爾”。
(3)model字段數據類型為VARCHAR。
(4)owner字段數據類型為INT,有非空約束。
創建冰箱主人信息表owners,有字段oid、name、sex、age和phone,數據類型分別為INT、VARCHAR、VARCHAR、INT和VARCHAR。對其各個字段分析如下。
(1)oid字段有主鍵約束和非空約束。
(2)name字段有非空約束。
(3)sex字段有默認值“男”。
(4)age字段值為整數。
(5)phone字段有非空約束。
由于refrigerator表中的每一條冰箱記錄都對應owners表中的一個冰箱擁有者,因此表refrigerator表中的owner字段需要與owners表中的oid對應。因此需要為refrigerator表設置外鍵約束。
實現上述操作,步驟如下。
(1)創建冰箱信息表refrigerator,有字段rid、brand、model和owner,并設置它們的約束,代碼如下。
CREATE TABLE 'fruitshop'.'refrigerator' ( 'rid' INT NOT NULL AUTO_INCREMENT, 'brand' VARCHAR(45) NOT NULL DEFAULT '海爾', 'model' VARCHAR(45) NULL, 'owner' INT NULL, PRIMARY KEY ('rid'));
(2)創建冰箱主人信息表owners,有字段oid、name、sex、age和phone,并設置它們的約束,代碼如下。
CREATE TABLE 'fruitshop'.'owners' ( 'oid' INT NOT NULL, 'name' VARCHAR(45) NOT NULL, 'sex' VARCHAR(45) NULL DEFAULT '男', 'age' INT UNSIGNED NULL, 'phone' VARCHAR(45) NOT NULL, PRIMARY KEY ('oid'));
(3)為refrigerator表設置外鍵約束,使owner字段對應owners表中的oid字段,代碼如下。
ALTER TABLE 'fruitshop'.'refrigerator' ADD INDEX 'owner_idx' ('owner' ASC); ALTER TABLE 'fruitshop'.'refrigerator' ADD CONSTRAINT 'owner' FOREIGN KEY ('owner') REFERENCES 'fruitshop'.'owners' ('oid') ON DELETE NO ACTION ON UPDATE NO ACTION;
推薦閱讀
- Advanced Quantitative Finance with C++
- Learning NServiceBus(Second Edition)
- Learning Docker
- 華為HMS生態與應用開發實戰
- 數據庫系統原理及MySQL應用教程
- INSTANT Weka How-to
- Mastering Yii
- Learning Material Design
- Emotional Intelligence for IT Professionals
- Java 9 Programming By Example
- C++程序設計
- 絕密原型檔案:看看專業產品經理的原型是什么樣
- Getting Started with the Lazarus IDE
- Isomorphic JavaScript Web Development
- Learning RSLogix 5000 Programming