sql练习根据网上的习题,自己又做了个数据库,练习

2014-11-24 15:34:17 · 作者: · 浏览: 0

sql练习 根据网上的习题,自己又做了个数据库,练习

3-5有俩种方法,第一种是我写的,已经验证过,第二个方法是网上回答的,没验证,走自己的路就好了。

数据库和sql语句去这里下载

http://download.csdn.net/detail/carl_xie_87/6841275

习题是这样的

在“图书管理”数据库下建立三个用户表:图书、读者和借阅,图书表中包含总编号,分类名,书名,作者,出版单位,单价。读者表中包含借书证号,单位,姓名,性别,职称,地址。借阅表中包含借书证号,总编号,借书日期。现用SQL语句写出下列表达式。
(1)、找出姓李的读者姓名及其所在单位;
(2)、查找书名以“计算机”打头的所有图书及作者;
(3)、查找姓李的读者所借的所有图书的书名及借书日期;
(4)、找出借阅了“SQL Server大全”一书的借书证号;
(5)、找出与赵正义在同一天借书的读者姓名、所在单位及借书日期;
(6)、找出图书管理数据库中所有与“数据库导论”或“数据库基础”在同一个出版单位出版的书;

图书表 总编号,分类名,书名,作者,出版单位,单价
读者表 借书证号,单位,姓名,性别,职称,地址
借阅表 借书证号,总编号,借书日期

1.select 姓名,单位 from 读者表 where 姓名 LIKE '李%'
2.select 书名,作者 from 图书表 where 书名 like '计算机%'

=号不能用于集合
3.
select T.书名,j.借书日期
from 图书表 as T
inner join 借阅表 as j on t.总编号 = j.总编号
inner join 读者表 d on d.借书证号 = j.借书证号
where d.姓名 like '李%'

elect 图书表.书名 , 借阅表.借书日期
from 读者表 , 借阅表 , 图书表
where 读者表.姓名 =“李%”
and 借阅表.借书证号 = 读者表.借书证号
and 借阅表.总编号 = 图书表.总编号
4.
select 借书证号
from 图书表 as T
inner join 借阅表 as J on t.总编号 = j.总编号
where T.书名='SQL Server大全'

select 借阅表.借书证号
from 图书表 , 借阅表
where 借阅表.总编号 = 图书表.总编号
and 书名 = "SQL Server大全"

5.
select d.姓名,d.单位,j.借书日期
from 读者表 as d
inner join 借阅表 as j on d.借书证号 = j.借书证号
where j.借书日期 in (select j.借书日期 from 读者表 as d inner join 借阅表 as j on d.借书证号 = j.借书证号 where d.姓名 ='赵正义')

select 读者表.姓名 , 读者表.所在单位 , 借阅表.借书日期
from 读者表 , 借阅表
where 借阅表.借书日期 = [in]
( select 借阅表.借书日期
from 读者表 , 借阅表
where 读者表.姓名 = "赵正义"
and 借阅表.借书证号 = 借阅表.借书证号)
and 借阅表.借书证号 = 借阅表.借书证号

6.
select 书名 from 图书表 where 出版单位 in
(select 出版单位 from 图书表 where 书名 = '数据库导论' or 书名 = '数据库基础')

13.45