#1、新建一个数据库名字为自己的名字 10分
CREATE DATABASE rmh123;
use rmh123;
#图书(图书号,书名,作者,单价,库存量)
CREATE TABLE 图书(
图书号 int not null,
书名 varchar(50) not NULL,
作者 varchar(20),
单价 int not null,
库存量 int
);
#读者(读者号,姓名,工作单位,地址)
create table 读者(
读者号 int(11) not null,
姓名 varchar(20) not null,
工作单位 varchar(30),
地址 varchar(50)
);
#借阅(图书号,读者号,借期,还期,备注)
CREATE TABLE 借阅(
图书号 int not null,
读者号 int(11) not null,
借期 varchar(30),
还期 varchar(30),
备注 varchar(50)
);
#2、用主键外键描述出三张表之间的关系; 10分
ALTER TABLE 图书 add PRIMARY key (图书号);
ALTER TABLE 读者 add PRIMARY KEY (读者号);
ALTER TABLE 借阅 add PRIMARY KEY (图书号,读者号);
ALTER TABLE 借阅 add FOREIGN key (读者号) REFERENCES 读者 (读者号);
ALTER TABLE 借阅 add FOREIGN key (图书号) REFERENCES 图书 (图书号);
#4、用SQL语言实现下列查询:(不用向表中填入内容,只需要写出相应的SQL语句即可。)
#1) 检索读者号为R6的读者姓名、工作单位。 5分
SELECT 姓名,工作单位 from 读者 where 读者号=R6;
#2)检索借阅图书号为B6的读者姓名。 5分
SELECT 姓名 from 读者 where 读者号 in (SELECT 读者号 from 借阅 where 图书号=B6);
#3)检索读者“李红”所借图书的书名。 5分
SELECT 书名 from 图书 where 图书号 in(SELECT 图书号 from 借阅 where 读者号 in (SELECT 读者号 from 读者 where 姓名='李红'));
#4)检索读者号为R1的读者所借图书中未还的书名。 5分
SELECT 书名 from 图书 WHERE 图书号 in (SELECT 图书号 from 借阅 WHERE 读者号=R1);
#5)检索书名为“操作系统”的图书的最高单价和最低单价。 5分
select max(单价) as 最高价,min(单价) as 最低价 from 图书;
#6)检索单价在20到30元(包含20和30)之间的图书的书名及库存量。 5分
SELECT 书名,库存量 from 图书 where 单价>=20 and 单价<=40;
#7)检索所有姓王的读者所借图书的图书号、借期和还期。 5分
SELECT 图书号,借期,还期 from 借阅 where 图书号 in (SELECT 图书号 from 借阅 where 读者号 in (SELECT 读者号 from 读者 where 姓名 LIKE'王%') );
#8)检索与“张三”同一工作单位的读者号和读者姓名。 5分
SELECT 读者号,姓名 from 读者 where 工作单位 in (SELECT 工作单位 from 读者 where 姓名='张三');
#9)将读者“李红”所借图书的信息从借阅表中删除。 5分
DELETE from 借阅 WHERE 读者号 in (SELECT 读者号 from 读者 where 姓名='李红');
#10)将读者号为R2的读者所借图书的还期增加10天。 5分
SELECT 还期+10 from 借阅 where 读者号=R2;
MYSQ数据库基础练习
猜你喜欢
转载自blog.csdn.net/qq_46232829/article/details/107288262
今日推荐
周排行