詳解MySQL數(shù)據(jù)庫(kù)、表與完整性約束的定義(Create)
第1關(guān):創(chuàng)建數(shù)據(jù)庫(kù)
編程要求
創(chuàng)建用于2022年北京冬奧會(huì)信息系統(tǒng)的數(shù)據(jù)庫(kù):beijing2022。
create database beijing2022;
第2關(guān):創(chuàng)建表及表的主碼約束
編程要求
在右側(cè)“命令行”窗口中操作,或在“代碼文件”窗口中填寫(xiě)語(yǔ)句,創(chuàng)建數(shù)據(jù)庫(kù)TestDb,在TestDb下創(chuàng)建表t_emp,表結(jié)構(gòu)如下:

注意:
必須為表建主碼,但不用考慮主碼約束的命名;
備注欄僅用于說(shuō)明列的含義及具體要求,并不要求用COMMENT短語(yǔ)給列作備注。
# 請(qǐng)?jiān)谝韵逻m當(dāng)?shù)目瞻滋幪顚?xiě)SQL語(yǔ)句,完成任務(wù)書(shū)的要求??瞻仔锌赏ㄟ^(guò)回車(chē)換行添加。
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)
編程要求
設(shè)有以下兩張表:

請(qǐng)創(chuàng)建上述兩個(gè)表,為表定義主鍵,并給表staff創(chuàng)建外鍵,這個(gè)外鍵約束的名稱(chēng)為FK_staff_deptNo。在創(chuàng)建表之前你可能需要先創(chuàng)建數(shù)據(jù)庫(kù):MyDb,并且將兩張表創(chuàng)建在MyDb數(shù)據(jù)庫(kù)中。不需考慮關(guān)于性別的約束。(注意:如果你在實(shí)驗(yàn)1之后接著作本實(shí)驗(yàn),數(shù)據(jù)庫(kù)MyDb可能已經(jīng)存在)
# 請(qǐng)?jiān)谝韵驴瞻滋幪顚?xiě)完成任務(wù)的語(yǔ)句,空白行可通過(guò)回車(chē)換行添加。
# 你也可以在命令行窗口完成任務(wù),不過(guò),在命令行鍵入的語(yǔ)句不會(huì)被保存。
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)如下:
字段名稱(chēng) 數(shù)據(jù)類(lèi)型 備注
pid char(10) 產(chǎn)品戶(hù)ID,主碼
name varchar(32) 產(chǎn)品名稱(chēng)
brand char(10) 品牌,只能是('A','B')中的某一個(gè)
price int 價(jià)格,必須>0
請(qǐng)?jiān)跀?shù)據(jù)庫(kù)MyDb中創(chuàng)建表products,并分別實(shí)現(xiàn)對(duì)品牌和價(jià)格的約束,兩個(gè)CHECK約束的名稱(chēng)分別為CK_products_brand和CK_products_price,主碼約束不要顯示命名。(提示:如果數(shù)據(jù)庫(kù)MyDb不存在,請(qǐng)首先創(chuàng)建它,并將它作為工作數(shù)據(jù)庫(kù)。)
# 請(qǐng)?jiān)谝韵驴瞻滋幪顚?xiě)完成任務(wù)的語(yǔ)句,空白行可通過(guò)回車(chē)換行添加。
# 你也可以在命令行窗口完成任務(wù),不過(guò),在命令行鍵入的語(yǔ)句不會(huì)被保存。
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)如下:
字段名稱(chēng) 數(shù)據(jù)類(lèi)型 備注
id char(10) 工號(hào),主碼
name varchar(32) 姓名,不允許為空值
mz char(16) 民族, 缺省值為“漢族”
請(qǐng)?jiān)跀?shù)據(jù)庫(kù)MyDb中創(chuàng)建表hr,并實(shí)現(xiàn)name列的NOT NULL約束和mz列的Default約束(別忘了主碼約束)。
# 請(qǐng)?jiān)谝韵驴瞻滋幪顚?xiě)完成任務(wù)的語(yǔ)句,空白行可通過(guò)回車(chē)換行添加。
# 你也可以在命令行窗口完成任務(wù),不過(guò),在命令行鍵入的語(yǔ)句不會(huì)被保存。
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)如下:
字段名稱(chēng) 數(shù)據(jù)類(lèi)型 備注
sno char(10) 學(xué)號(hào),主碼
name varchar(32) 姓名,不允許為空值
ID char(18) 身份證號(hào), 不允許有兩個(gè)相同的身份證號(hào)
請(qǐng)?jiān)跀?shù)據(jù)庫(kù)MyDb中創(chuàng)建表s,并實(shí)現(xiàn)相關(guān)約束(主碼,NOT NULL和Unique約束)。
注意表名s是小寫(xiě)的,列名ID是全大寫(xiě)的。如果沒(méi)有數(shù)據(jù)庫(kù)MyDb,你需要?jiǎng)?chuàng)建它,并使其成為當(dāng)前工作數(shù)據(jù)庫(kù)。
# 請(qǐng)?jiān)谝韵驴瞻滋幪顚?xiě)完成任務(wù)的語(yǔ)句,空白行可通過(guò)回車(chē)換行添加。
# 你也可以在命令行窗口完成任務(wù),不過(guò),在命令行鍵入的語(yǔ)句不會(huì)被保存。
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ù)庫(kù)、表與完整性約束的定義(Create)的文章就介紹到這了,更多相關(guān)mysql表與完整性約束的定義內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Centos 7 安裝mysql5.7.24二進(jìn)制 版本的方法及解決辦法
這篇文章主要介紹了Centos 7 安裝mysql5.7.24二進(jìn)制 版本的方法 及遇到問(wèn)題解決辦法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11
MySQL安裝服務(wù)時(shí)提示:Install/Remove?of?the?Service?Denied解決
今天給新電腦安裝了mysql,本來(lái)好好的,卻報(bào)了個(gè)bug,就記錄下吧,這篇文章主要給大家介紹了關(guān)于MySQL安裝服務(wù)時(shí)提示:Install/Remove?of?the?Service?Denied的解決辦法,需要的朋友可以參考下2023-03-03
MySQL中索引優(yōu)化distinct語(yǔ)句及distinct的多字段操作
這篇文章主要介紹了MySQL中索引優(yōu)化distinct語(yǔ)句及distinct的多字段操作方法,distinct語(yǔ)句去重功能的使用是MySQL入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-01-01
對(duì)MySQL子查詢(xún)的簡(jiǎn)單改寫(xiě)優(yōu)化
這篇文章主要介紹了對(duì)MySQL子查詢(xún)的簡(jiǎn)單改寫(xiě)優(yōu)化,文中的小修改主要將子查詢(xún)改為關(guān)聯(lián)從而降低查詢(xún)時(shí)關(guān)聯(lián)的次數(shù),需要的朋友可以參考下2015-05-05
MySQL連接異常:Communications link failure問(wèn)題及解決
這篇文章主要介紹了MySQL連接異常:Communications link failure問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
在Debian 9系統(tǒng)上安裝Mysql數(shù)據(jù)庫(kù)的方法教程
這篇文章主要給大家介紹了在Debian 9系統(tǒng)上安裝Mysql數(shù)據(jù)庫(kù)的方法教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10
MySQL數(shù)據(jù)庫(kù)使用mysqldump導(dǎo)出數(shù)據(jù)詳解
mysqldump是mysql用于轉(zhuǎn)存儲(chǔ)數(shù)據(jù)庫(kù)的實(shí)用程序。它主要產(chǎn)生一個(gè)SQL腳本,其中包含從頭重新創(chuàng)建數(shù)據(jù)庫(kù)所必需的命令CREATE TABLE INSERT等。接下來(lái)通過(guò)本文給大家介紹MySQL數(shù)據(jù)庫(kù)使用mysqldump導(dǎo)出數(shù)據(jù)詳解,需要的朋友一起學(xué)習(xí)吧2016-04-04
Starting MySQL.Manager of pid-file quit without updating fil
因?yàn)橛脖P(pán)滿(mǎn)了,Starting MySQL.Manager of pid-file quit without updating file.[FAILED]2010-02-02

