欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解MySQL數(shù)據(jù)庫、表與完整性約束的定義(Create)

 更新時間:2025年04月18日 11:22:03   作者:超大雞蛋灌餅  
這篇文章主要介紹了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)文章

最新評論