实验5 数据查询--连接查询

									实验5  数据查询--连接查询

一、实验目的
1.熟悉等值联接查询的方法。
2.熟悉非等值联接查询的方法。
3.熟悉自身联接查询的方法。
4.熟悉外联接查询的方法。
5.熟悉复合条件联接的方法。
二、实验要求
应用SELECT语句对数据库eshop中数据进行指定条件的连接查询。
三、实验步骤
1.查询购买了商品号为“0910810004”的会员号和姓名,并以汉字标题显示,SQL代码如下所示:

SELECT members.m_account '会员号',members.m_birth '年龄'
FROM products,orders,members
WHERE products.p_no=orders.p_no
AND orders.m_account=members.m_account
AND products.p_no='0910810004'

2.查询购买了商品名称为“爱国者MP3”的会员号、姓名和商品价格,SQL代码如下所示:

SELECT  members.m_account '会员号',members.m_name '姓名',products.p_price '商品价格'
FROM products,orders,members
WHERE products.p_no=orders.p_no
AND orders.m_account=members.m_account
AND products.p_name='爱国者MP3'

3.查询比“张自梁”月薪高的而和他不是同一地址的会员姓名和年龄,SQL代码如下所示:

SELECT A.m_name '姓名',DATEDIFF(YEAR,A.m_birth,GETDATE())  '年龄'
FROM members A,members B
WHERE A.m_account <> B.m_account
AND B.m_name = '张自梁'
AND A.m_salary > B.m_salary
AND A.m_address <> B.m_address

4.查询购买了“0910810004”商品的会员号和姓名,SQL代码如下所示:

SELECT  members.m_account '会员号',members.m_name '姓名'
FROM products,orders,members
WHERE products.p_no=orders.p_no
AND orders.m_account=members.m_account
AND products.p_no='0910810004'

5.使用简单查询家庭地址为“湖南株洲”的会员以及年龄在30岁以上的会员详细信息,SQL代码如下所示:

SELECT  *
FROM members
WHERE members.m_address='湖南株洲'
AND DATEDIFF(YEAR,m_birth,GETDATE())>30

6.使用集合查询家庭地址为“湖南株洲”的会员以及年龄在30岁以上的会员详细信息,并与步骤5进行比较,SQL代码如下所示:

SELECT *
FROM  members
WHERE members.m_address='湖南株洲'
INTERSECT
SELECT *
FROM   members
WHERE DATEDIFF(YEAR,m_birth,GETDATE())>30

注:union并,except差,intersect交
7.将members表和orders表之间的左向外联接包括所有会员的信息,包括没有购买商品的会员,SQL码如下所示:

SELECT members.*, orders.*
FROM members
LEFT OUTER JOIN orders
ON members.m_account = orders.m_account
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

beyond谚语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值