综合考查14-电商公司产品评论系统数据库
第1关:创建数据库 Product_DB
测评即可通过。
第2关:创建数据表
进入图形化界面,写入代码,选中运行之后测评
Use Product_DB;
-- 创建产品类别表
CREATE TABLE T_category (
Category_id CHAR(5) NOT NULL PRIMARY KEY,
Category VARCHAR(30),
Register_date DATETIME
);
-- 创建产品表
CREATE TABLE T_product (
Product_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Category_id CHAR(5),
Product_name VARCHAR(30),
Price DECIMAL(8,2),
Remark VARCHAR(50),
Register_date DATETIME
);
-- 创建产品评论表
CREATE TABLE T_product_review (
Review_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Product_id INT,
Review VARCHAR(45),
Register_date DATETIME
);
第3关:修改表结构,以设置数据表间的关系及实现约束要求
-- 1. 为 T_product 添加级联外键约束
ALTER TABLE T_product
ADD CONSTRAINT Category_id
FOREIGN KEY (Category_id)
REFERENCES T_category(Category_id)
ON DELETE CASCADE
ON UPDATE CASCADE;
-- 2. 为 T_product_review 添加级联外键约束
ALTER TABLE T_product_review
ADD CONSTRAINT Product_id
FOREIGN KEY (Product_id)
REFERENCES T_product(Product_id)
ON DELETE CASCADE
ON UPDATE CASCADE;
-- 3. 为 T_category 添加 CHECK 约束
ALTER TABLE T_category
ADD CONSTRAINT t_category_chk_1
CHECK (Category IN ('书籍', '服装', '通讯产品', '家电', '家具', '化妆品'));
第4关:备份数据库 Product_DB
等待成功,即可测评。
第5关:数据管理操作1
在代码文件先试试测评能不能过,如果不能再试试图形化界面运行(6-8关同理)
-- 向 T_category 表插入数据
INSERT INTO T_category (Category_id, Category, Register_date)
VALUES
('T1003', '书籍', '2019-05-06 00:00:00'),
('T1005', '服装', '2019-05-06 00:00:00'),
('T1007', '通讯产品', '2019-05-06 00:00:00'),
('T1009', '化妆品', '2019-05-06 00:00:00');
-- 向 T_product 表插入数据
INSERT INTO T_product (Category_id, Product_name, Price, Remark, Register_date)
VALUES
('T1003', '解忧杂货店', 23.00, '东野圭吾小说', '2019-05-06 00:00:00'),
('T1003', '数据库原理', 48.00, '高职高专教材', '2019-05-12 00:00:00'),
('T1007', 'HUAWEI P30', 6999.00, '曲面屏手机', '2019-05-12 00:00:00'),
('T1009', '兰蔻小黑瓶', 1000.00, '精华', '2019-05-06 00:00:00');
-- 向 T_product_review 表插入数据
INSERT INTO T_product_review (Product_id, Review, Register_date)
VALUES
(1, '印刷精美清晰', '2019-05-18 00:00:00'),
(4, '护肤效果明显', '2019-05-30 00:00:00'),
(3, '像素高拍照效果佳', '2019-05-20 00:00:00'),
(2, '适用于高职高专软件开发类相关专业', '2019-05-20 00:00:00');
第6关:数据管理操作2
USE Product_DB
######### Begin #########
-- 从 T_product 表中查询满足价格条件的产品信息
SELECT *
FROM T_product
WHERE Price > 20;
######### End #########
第7关:数据管理操作3
USE Product_DB
######### Begin #########
-- 创建视图 vw_Product,查看评论录入日期在 2019 年 1 月到 6 月间的产品信息
CREATE VIEW vw_Product AS
SELECT
p.Product_id,
c.Category_id,
p.Product_name,
p.Price,
p.Remark,
r.Register_date
FROM
T_product p
JOIN
T_category c ON p.Category_id = c.Category_id
JOIN
T_product_review r ON p.Product_id = r.Product_id
WHERE
r.Register_date BETWEEN '2019-01-01' AND '2019-06-30';
######### End #########
第8关:数据管理操作4
USE Product_DB
######### Begin #########
-- 删除最早的三条评论记录
DELETE FROM T_product_review
ORDER BY Register_date ASC
LIMIT 3;
######### End #########
综合考查17-音乐网站歌曲管理系统数据库
第1关:创建数据库 music_DB
进入图形化同综合考查14
create database music_DB;
第2关:创建数据表
进入图形化软件编写运行:
-- 使用 music_DB 数据库
USE music_DB;
-- 创建 tbl_menu 表
CREATE TABLE tbl_Menu (
menu_Id INT NOT NULL AUTO_INCREMENT,
menu_Name VARCHAR(40),
singer_ID INT,
music_Id INT,
PRIMARY KEY (menu_Id)
);
-- 创建 tbl_music 表
CREATE TABLE tbl_Music (
music_Id INT NOT NULL AUTO_INCREMENT,
music_Name VARCHAR(40),
singer_ID INT,
music_Adress VARCHAR(80),
music_Img VARCHAR(80),
lyrics_Adress VARCHAR(80),
click_Number INT,
music_Type VARCHAR(40),
PRIMARY KEY (music_Id)
);
-- 创建 tbl_Singer 表
CREATE TABLE tbl_Singer (
singer_ID INT NOT NULL AUTO_INCREMENT,
singer_Name VARCHAR(40),
singer_Sex VARCHAR(40),
singer_Head VARCHAR(40),
singer_Type VARCHAR(40),
singer_Profile VARCHAR(80),
singer_Portrait VARCHAR(80),
PRIMARY KEY (singer_ID)
);
第3关:修改表结构,以设置数据表间的关系及实现约束要求
(如果不小心退出实验环境,需要重新写第二关的东西)
-- 1. 创建数据表间的关系,采用级联关系方式
-- tbl_menu 与 tbl_music 的外键约束
ALTER TABLE tbl_Menu
ADD CONSTRAINT menu_music_musicid
FOREIGN KEY (music_Id) REFERENCES tbl_Music(music_Id)
ON DELETE CASCADE
ON UPDATE CASCADE;
-- tbl_menu 与 tbl_singer 的外键约束
ALTER TABLE tbl_Menu
ADD CONSTRAINT menu_singer_singerid
FOREIGN KEY (singer_ID) REFERENCES tbl_Singer(singer_ID)
ON DELETE CASCADE
ON UPDATE CASCADE;
-- tbl_music 与 tbl_singer 的外键约束
ALTER TABLE tbl_Music
ADD CONSTRAINT fk_music_singer
FOREIGN KEY (singer_ID) REFERENCES tbl_Singer(singer_ID)
ON DELETE CASCADE
ON UPDATE CASCADE;
-- 2. 歌手表 tbl_Singer 中的字段歌手性别(singer_Sex)只能为:男、女
ALTER TABLE tbl_Singer
ADD CONSTRAINT tbl_singer_chk_1
CHECK (singer_Sex IN ('男', '女'));
-- 3. 音乐表 tbl_Music 中的字段歌曲类型(music_Type)可以是:抒情、摇滚、饶舌、古典、轻音乐 5 种类型
ALTER TABLE tbl_Music
ADD CONSTRAINT tbl_music_chk_1
CHECK (music_Type IN ('抒情', '摇滚', '饶舌', '古典', '轻音乐'));
第4关:备份数据库 music_DB
操作同综合考查14
第5关:数据管理操作1
(直接复制到代码文件即可)
use music_DB
######### Begin #########
insert into tbl_Singer values(1,'周深','男','C:\\H1.jpg','通俗歌手','声音特别','C:\\x1.jpg');
insert into tbl_Music values(1,'雪绒花',1,'http://music2/zs1.html','C:\\zs1.jpg','http://music2/word1.html',1234,'抒情');
insert into tbl_Menu values(1,'影视金曲',1,1);
######### End #########
第6关:数据管理操作2
use music_DB
######### Begin #########
select music_Name,click_Number from tbl_Music where click_Number>100;
######### End #########
第7关:数据管理操作3
use music_DB
######### Begin #########
-- 创建视图 vw_sing
CREATE VIEW vw_sing AS
SELECT
m.music_Name ,
s.singer_Name ,
me.menu_Name ,
m.click_Number,
m.music_Type
FROM
tbl_Music m
JOIN
tbl_Menu me ON m.music_Id = me.music_Id
JOIN
tbl_Singer s ON m.singer_ID = s.singer_ID
WHERE
m.music_Type = '抒情';
######### End #########
第8关:数据管理操作4
use music_DB
######### Begin #########
-- 从 tbl_Music 表中删除男性歌手演唱的歌曲数据
DELETE FROM tbl_Music tbl_Menu
WHERE singer_ID IN (
-- 子查询:从 tbl_Singer 表中获取所有男性歌手的 singer_ID
SELECT singer_ID
FROM tbl_Singer
WHERE singer_Sex = '男'
);
DELETE FROM tbl_Menu
WHERE singer_ID IN (
-- 子查询:从 tbl_Singer 表中获取所有男性歌手的 singer_ID
SELECT singer_ID
FROM tbl_Singer
WHERE singer_Sex = '男'
);
######### End #########