詳解MySQL數(shù)據(jù)庫、表與完整性約束的定義(Create)
第1關(guān):創(chuàng)建數(shù)據(jù)庫
編程要求
創(chuàng)建用于2022年北京冬奧會信息系統(tǒng)的數(shù)據(jù)庫:beijing2022。
create database beijing2022;
第2關(guān):創(chuàng)建表及表的主碼約束
編程要求
在右側(cè)“命令行”窗口中操作,或在“代碼文件”窗口中填寫語句,創(chuàng)建數(shù)據(jù)庫TestDb,在TestDb下創(chuàng)建表t_emp,表結(jié)構(gòu)如下:
注意:
必須為表建主碼,但不用考慮主碼約束的命名;
備注欄僅用于說明列的含義及具體要求,并不要求用COMMENT短語給列作備注。
# 請在以下適當?shù)目瞻滋幪顚慡QL語句,完成任務書的要求??瞻仔锌赏ㄟ^回車換行添加。 CREATE DATABASE TestDb; USE TestDb; CREATE TABLE t_emp ( id INT PRIMARY KEY, name VARCHAR(32), deptId INT, salary FLOAT ); /* *********** 結(jié)束 ************* */
第3關(guān):創(chuàng)建外碼約束(foreign key)
編程要求
設有以下兩張表:
請創(chuàng)建上述兩個表,為表定義主鍵,并給表staff創(chuàng)建外鍵,這個外鍵約束的名稱為FK_staff_deptNo。在創(chuàng)建表之前你可能需要先創(chuàng)建數(shù)據(jù)庫:MyDb,并且將兩張表創(chuàng)建在MyDb數(shù)據(jù)庫中。不需考慮關(guān)于性別的約束。(注意:如果你在實驗1之后接著作本實驗,數(shù)據(jù)庫MyDb可能已經(jīng)存在)
# 請在以下空白處填寫完成任務的語句,空白行可通過回車換行添加。 # 你也可以在命令行窗口完成任務,不過,在命令行鍵入的語句不會被保存。 CREATE DATABASE IF NOT EXISTS MyDb; USE MyDb; DROP TABLE IF EXISTS staff; DROP TABLE IF EXISTS dept; CREATE TABLE dept ( deptNo INT PRIMARY KEY, deptName VARCHAR(32) ); CREATE TABLE staff ( staffNo INT PRIMARY KEY, staffName VARCHAR(32), gender CHAR(1), dob DATE, salary NUMERIC(8,2), deptNo INT, CONSTRAINT FK_staff_deptNo FOREIGN KEY (deptNo) REFERENCES dept(deptNo) ); #結(jié)束
第4關(guān):CHECK約束
編程要求
表products的結(jié)構(gòu)如下:
字段名稱 數(shù)據(jù)類型 備注
pid char(10) 產(chǎn)品戶ID,主碼
name varchar(32) 產(chǎn)品名稱
brand char(10) 品牌,只能是('A','B')中的某一個
price int 價格,必須>0
請在數(shù)據(jù)庫MyDb中創(chuàng)建表products,并分別實現(xiàn)對品牌和價格的約束,兩個CHECK約束的名稱分別為CK_products_brand和CK_products_price,主碼約束不要顯示命名。(提示:如果數(shù)據(jù)庫MyDb不存在,請首先創(chuàng)建它,并將它作為工作數(shù)據(jù)庫。)
# 請在以下空白處填寫完成任務的語句,空白行可通過回車換行添加。 # 你也可以在命令行窗口完成任務,不過,在命令行鍵入的語句不會被保存。 CREATE DATABASE IF NOT EXISTS MyDb; USE MyDb; DROP TABLE IF EXISTS products; CREATE TABLE products ( pid CHAR(10) PRIMARY KEY, name VARCHAR(32), brand CHAR(10), price INT, CONSTRAINT CK_products_brand CHECK (brand IN ('A', 'B')), CONSTRAINT CK_products_price CHECK (price > 0) ); # 結(jié)束
第5關(guān):DEFAULT約束
編程要求
表hr的結(jié)構(gòu)如下:
字段名稱 數(shù)據(jù)類型 備注
id char(10) 工號,主碼
name varchar(32) 姓名,不允許為空值
mz char(16) 民族, 缺省值為“漢族”
請在數(shù)據(jù)庫MyDb中創(chuàng)建表hr,并實現(xiàn)name列的NOT NULL約束和mz列的Default約束(別忘了主碼約束)。
# 請在以下空白處填寫完成任務的語句,空白行可通過回車換行添加。 # 你也可以在命令行窗口完成任務,不過,在命令行鍵入的語句不會被保存。 CREATE DATABASE IF NOT EXISTS MyDb; USE MyDb; CREATE TABLE hr ( id CHAR(10) PRIMARY KEY, name VARCHAR(32) NOT NULL, mz CHAR(16) DEFAULT '漢族' ); # 結(jié)束
第6關(guān):UNIQUE約束
編程要求
表s的結(jié)構(gòu)如下:
字段名稱 數(shù)據(jù)類型 備注
sno char(10) 學號,主碼
name varchar(32) 姓名,不允許為空值
ID char(18) 身份證號, 不允許有兩個相同的身份證號
請在數(shù)據(jù)庫MyDb中創(chuàng)建表s,并實現(xiàn)相關(guān)約束(主碼,NOT NULL和Unique約束)。
注意表名s是小寫的,列名ID是全大寫的。如果沒有數(shù)據(jù)庫MyDb,你需要創(chuàng)建它,并使其成為當前工作數(shù)據(jù)庫。
# 請在以下空白處填寫完成任務的語句,空白行可通過回車換行添加。 # 你也可以在命令行窗口完成任務,不過,在命令行鍵入的語句不會被保存。 CREATE DATABASE IF NOT EXISTS MyDb; USE MyDb; CREATE TABLE s ( sno CHAR(10) PRIMARY KEY, name VARCHAR(32) NOT NULL, ID CHAR(18) UNIQUE ); # 結(jié)束
到此這篇關(guān)于MySQL數(shù)據(jù)庫、表與完整性約束的定義(Create)的文章就介紹到這了,更多相關(guān)mysql表與完整性約束的定義內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Centos 7 安裝mysql5.7.24二進制 版本的方法及解決辦法
這篇文章主要介紹了Centos 7 安裝mysql5.7.24二進制 版本的方法 及遇到問題解決辦法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-11-11MySQL安裝服務時提示:Install/Remove?of?the?Service?Denied解決
今天給新電腦安裝了mysql,本來好好的,卻報了個bug,就記錄下吧,這篇文章主要給大家介紹了關(guān)于MySQL安裝服務時提示:Install/Remove?of?the?Service?Denied的解決辦法,需要的朋友可以參考下2023-03-03MySQL中索引優(yōu)化distinct語句及distinct的多字段操作
這篇文章主要介紹了MySQL中索引優(yōu)化distinct語句及distinct的多字段操作方法,distinct語句去重功能的使用是MySQL入門學習中的基礎知識,需要的朋友可以參考下2016-01-01MySQL連接異常:Communications link failure問題及解決
這篇文章主要介紹了MySQL連接異常:Communications link failure問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11在Debian 9系統(tǒng)上安裝Mysql數(shù)據(jù)庫的方法教程
這篇文章主要給大家介紹了在Debian 9系統(tǒng)上安裝Mysql數(shù)據(jù)庫的方法教程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2017-10-10MySQL數(shù)據(jù)庫使用mysqldump導出數(shù)據(jù)詳解
mysqldump是mysql用于轉(zhuǎn)存儲數(shù)據(jù)庫的實用程序。它主要產(chǎn)生一個SQL腳本,其中包含從頭重新創(chuàng)建數(shù)據(jù)庫所必需的命令CREATE TABLE INSERT等。接下來通過本文給大家介紹MySQL數(shù)據(jù)庫使用mysqldump導出數(shù)據(jù)詳解,需要的朋友一起學習吧2016-04-04Starting MySQL.Manager of pid-file quit without updating fil
因為硬盤滿了,Starting MySQL.Manager of pid-file quit without updating file.[FAILED]2010-02-02