MYSQ数据库基础练习

#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;

猜你喜欢

转载自blog.csdn.net/qq_46232829/article/details/107288262
今日推荐