-
实验
3
SQL
的连表与子查询
一、实验目的
学习掌握使用
SQL
的
SELECT
语句对表进行查询操作。
二、实验准备
1.
环境
操作系统:
Windows
7
或
Windows 200X Server
数据库管理系统:
SQL Server 2008
2.
准备工作
⑴本次实验使用超市的商品销售关系数据库
CRM
。从
p>
ftp
服务器上该数据库拷贝到
D
:
盘的自己建立存储数据库文件的文件夹下。在
SQL
Server
2008
中利
用数据库附加功能将数
据库附加到系统中。
< br>(2)
复习
SELECT
语句的
基本语法格式,学习使用
SELECT
语句的连表查询、子查询
和集
函数等查询方法。
三、实验内容
使用
< br>SQL
的
SELECT
语句完成
如下操作:
1.
连表查询
2.
子查询
四、实验要求
使用
< br>SELECT
语句在关系数据库
CRM
< br>中完成下面的操作:
1.
连表检索
①
查询会员马驰所购买的商品号、商品名、单价、数量与金额。
SELECT
MGQ
.
Commodityno
,
Commodityna
me
,
sales
.
< br>Price
,
num
,
SUM
FROM
member
JOIN
MGQ
ON
member
.
Memberno
=
MGQ
.
Memberno
JOIN
Sales
ON
MGQ
.
Commodityno
=
Sales
.
Commodityno
WHERE
Membername
=
'
马驰
'
②
查询会员中所有比马驰年龄大的会
员号,会员名,年龄和
马驰的年龄。
SELECT
X
.
Memberno
,
X
.
p>
Membername
,
X
.
AGE
,
Y
.
AGE
FROM
Member X
,
Member Y
WHERE
X
.
AGE
>
Y
.
AGE
AND
Y
.
Membername
=
'
马驰
'
;
③
查询所有会员的会员号,会员名和
所购买商品的商品号、商品名、单价、数量与金
额,以及商品的供货商名与电话。
SELECT
m
ember
.
Memberno
,
p>
MGQ
.
Commodityno
,
sales
.
Com
modityname
,
sales
.
Price
,
MGQ
< br>.
n
um
,
SUM
,
Supname
,
supplier
.
Telephone
FROM
member
JOIN
MGQ
ON
member
.
Memberno
=
MGQ
.
Memberno
JOIN
Sales
ON
MGQ
.
Commodityno
=
Sales
.
Commodityno
JOIN
Inventory
ON
Sales
.
< br>Commodityno
=
Inventory
.
Commodityno
JOIN
Supplier
ON
Inventory
.
Supno
=
Supplier
.
Supno
2.
子查询与嵌套查询
①
查询购买商品名为“海信电视”的
会员号、会员名和单价、数量与金额,结果按金
额降序排序。
SELECT
Member
.
Memberno
,
Membername<
/p>
,
sales
.
Price
,
num
,
SUM
FROM
member
JOIN
MGQ
ON
member
.
Memberno
=
MGQ
.
Memberno
JOIN
Sales
ON
MGQ
.
Commodityno
=
Sales
.
Commodityno
WHERE
Sales
.
Commodityname
IN
(
SELECT
Commodityname
FROM
sales
WHERE
Commodityname
=
'
海信电视
'
< br>)
ORDER
BY
SUM
DESC
②
查询会员中所有比会员马驰年龄大的会员号,会员名,年龄。
SELECT
X
.
< br>memberno
,
X
.
membername
,
X
< br>.
Age
FROM
Member X
JOIN
Member Y
ON
X
.
A
GE
>
Y
.
A
ge
WHERE
Y
.
Membername
=
'
马驰
'
②
查询会员中同时购买商品号为
01
和<
/p>
02
的会员号和姓名。
SELECT
member
.
Memberno
,
membername<
/p>
FROM
Member
JOIN
MGQ
ON
Member
.
Memberno
=
MGQ
.
Memberno
WHERE
Member
.
Memberno
=
'01'
< br>AND
MGQ
.
Memberno
IN
(
SELECT
Memberno
FROM
Member
WHERE
Memberno
=
p>
'02'
)
③
查询会员中没有购买商品号为
p>
01
的会员号和会员名。
SELECT
distinct
member
.<
/p>
Memberno
,
membernam
e
FROM
Member
JOIN
MGQ
ON
Member
.
Memberno
=
MGQ
.
Memberno
WHERE
member
.
Memberno
not
in
(
SELECT
Memberno
FROM
Member
WHERE
Memberno
=
p>
'01'
)
④
查询会员中购买的所有商品单价都
是大于等于
2000
元、购买数量大于等于
2
的会
员号和会员名。
SELECT
member
.
Memberno
,
membername
FROM
Member
JOIN
MGQ
ON
Member
.
Memberno
=
MGQ
.
Memberno
WHERE
MGQ
.
Memberno
not
in
(
SELECT
Price
FROM
MGQ
WHERE
price
<
2000
)
(
SELECT
Num
FROM
MGQ
WHERE
Num
<
2
)
⑤
查询无人购买商品的商品号和商品
名(即全部商品集合与有人购买的商品集合的差
-
-
-
-
-
-
-
-
-
上一篇:商品库存管理系统论文
下一篇:国际私法英文名词解释