一 实验题目:嵌套查询和连接查询
二 实验目的:加深对嵌套查询和连接查询的理解,比较两种方法的不同。
三 实验内容及要求:
题目中第一个查询用连接查询和嵌套查询两种方法完成,其它查询要求用一种方法是先即可。
图书(书号,书名,作者编号,价格,出版社编号)
作者(编号,姓名,电话)
出版社(编号,出版社名称,地址)
根据上面基本表的信息完成下列查询。
1 查询价格10元以下的图书作者信息
2 查询比“张力”写的书都便宜的图书信息
3 查询高教出版社出版的图书书名和作者姓名
/*首先在C盘中新建文件夹“数据库实验->数据库实验三”,准备将创建的数据库存入*/
create database 图书信息数据库
on primary
(
name=bookdata,
filename='E:\sql课程实验\实验\Y',
size=10MB,
maxsize=50MB,
filegrowth=25%
)
log on
(
name=booklog,
filename='E:\sql课程实验\实验\X',
size=10MB,
maxsize=50MB,
filegrowth=2MB
)
/*使用已经建立的数据库建表*/
--作者作者
use 图书信息数据库
create table 作者
(
作者编号 Char(11)primary key,--编号
作者姓名 Char(32),--姓名
作者电话 Char(11)unique--电话
)
--出版社出版社
use 图书信息数据库
create table 出版社
(
出版社编号 Char(11)primary key,--编号
出版社名称 Char(32)default '空',--名称
出版社地址 Char(60)--地址
)
--图书图书
use 图书信息数据库
create table 图书
(
书号 Char(20)primary key,--书号
书名 Char(32),--书名
作者编号 Char(11)foreign key references 作者(作者编号),--作者编号
图书价格 float check (图书价格>0 and 图书价格<=300),--价格
出版社编号 Char(11)foreign key references 出版社(出版社编号),--出版社编号
)
/*在建好的表内填入数据*/
--作者(编号,姓名,电话)
insert into 作者 values('hm1356489','何马','15326486532'),
('zal153264','张爱玲','17456825463'),
('am9564876','艾米','17356248956'),
('xdl84659235','萧东楼','13264596320'),
('jzl3502135','蒋子龙','15230300264'),
('kbt6231520','卡波特','1352603265'),
('zl4865486','张力','15956423587')
--出版社(编号,名称,地址)
insert into 出版社 values('cq1532649','重庆出版社','重庆市沙坪坝区大学城西路21号'),
('ahwy15649','安徽文艺出版社','安徽省合肥市政务文化新区翡翠路1118号出版传媒广场13楼'),
('qy8465913','群言出版社','北京市东城区东厂北巷北京市第六十五中学东北侧约220米'),
('js643256','江苏文艺出版社','江苏南京湖南路47号'),
('bj3512649','北京大学出版社','北京市海淀区成府路205号'),
('gj95634659','高教出版社','北京市西城区德外大街4号')
--图书(书号,书名,作者编号,价格,出版社编号)
insert into 图书 values('zdmm20080401','藏地密码','hm1356489','24.80','cq1532649');
insert into 图书 values('zalwj20061201','张爱玲文集','zal153264','168.00','ahwy15649');
insert into 图书 values('zsby20081001','至死不渝','am9564876','6.80','qy8465913');
insert into 图书 values('szszl20081001','山楂树之恋','am9564876','28.00','js643256');
insert into 图书 values('ltjzj20081001','猎头局中局','xdl84659235','29.80','bj3512649');
insert into 图书 values('nmdg20080901','农民帝国','jzl3502135','58.00','gj95634659');
insert into 图书 values('tfndzc20081001','蒂凡尼的早餐','kbt6231520','5.00','gj95634659');
insert into 图书 values('gkylccxl20120601','高考乐理冲刺训练 ','zl4865486','9.70','gj95634659')
--1、连接查询
select 作者.*,图书价格,书名
from 作者,图书
where 图书.作者编号=作者.作者编号 and 图书价格<10
--1、嵌套查询
select 作者.* ,图书价格,书名
from 作者,图书
where 作者.作者编号=图书.作者编号 and 图书价格 in
(
select 图书价格
from 图书
where 图书价格<10
)
--2、嵌套查询
select 图书.* from 图书
where 图书价格 <
(
select 图书价格 from 图书
where 作者编号=
(
select 作者编号 from 作者
where 作者姓名='张力'
)
)
--3、连接查询
select 书名,作者姓名
from 图书,作者,出版社
where 出版社名称='高教出版社'
and 作者.作者编号=图书.作者编号
and 图书.出版社编号=出版社.出版社编号