詳解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短語給列作備注。
# 請在以下適當(dāng)?shù)目瞻滋幪顚慡QL語句,完成任務(wù)書的要求??瞻仔锌赏ㄟ^回車換行添加。
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è)有以下兩張表:

請創(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)存在)
# 請在以下空白處填寫完成任務(wù)的語句,空白行可通過回車換行添加。
# 你也可以在命令行窗口完成任務(wù),不過,在命令行鍵入的語句不會被保存。
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ù)庫。)
# 請在以下空白處填寫完成任務(wù)的語句,空白行可通過回車換行添加。
# 你也可以在命令行窗口完成任務(wù),不過,在命令行鍵入的語句不會被保存。
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約束(別忘了主碼約束)。
# 請在以下空白處填寫完成任務(wù)的語句,空白行可通過回車換行添加。
# 你也可以在命令行窗口完成任務(wù),不過,在命令行鍵入的語句不會被保存。
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) 學(xué)號,主碼
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)建它,并使其成為當(dāng)前工作數(shù)據(jù)庫。
# 請在以下空白處填寫完成任務(wù)的語句,空白行可通過回車換行添加。
# 你也可以在命令行窗口完成任務(wù),不過,在命令行鍵入的語句不會被保存。
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二進(jìn)制 版本的方法及解決辦法
這篇文章主要介紹了Centos 7 安裝mysql5.7.24二進(jìn)制 版本的方法 及遇到問題解決辦法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2018-11-11
MySQL安裝服務(wù)時提示:Install/Remove?of?the?Service?Denied解決
今天給新電腦安裝了mysql,本來好好的,卻報了個bug,就記錄下吧,這篇文章主要給大家介紹了關(guān)于MySQL安裝服務(wù)時提示:Install/Remove?of?the?Service?Denied的解決辦法,需要的朋友可以參考下2023-03-03
MySQL中索引優(yōu)化distinct語句及distinct的多字段操作
這篇文章主要介紹了MySQL中索引優(yōu)化distinct語句及distinct的多字段操作方法,distinct語句去重功能的使用是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2016-01-01
MySQL連接異常:Communications link failure問題及解決
這篇文章主要介紹了MySQL連接異常:Communications link failure問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
在Debian 9系統(tǒng)上安裝Mysql數(shù)據(jù)庫的方法教程
這篇文章主要給大家介紹了在Debian 9系統(tǒng)上安裝Mysql數(shù)據(jù)庫的方法教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10
MySQL數(shù)據(jù)庫使用mysqldump導(dǎo)出數(shù)據(jù)詳解
mysqldump是mysql用于轉(zhuǎn)存儲數(shù)據(jù)庫的實用程序。它主要產(chǎn)生一個SQL腳本,其中包含從頭重新創(chuàng)建數(shù)據(jù)庫所必需的命令CREATE TABLE INSERT等。接下來通過本文給大家介紹MySQL數(shù)據(jù)庫使用mysqldump導(dǎo)出數(shù)據(jù)詳解,需要的朋友一起學(xué)習(xí)吧2016-04-04
Starting MySQL.Manager of pid-file quit without updating fil
因為硬盤滿了,Starting MySQL.Manager of pid-file quit without updating file.[FAILED]2010-02-02

