数据库高级查询

以下实验内容基于eshop数据库:

1.查询购买了商品号为“0910810004”的会员号和姓名,并以汉字标题显示;

2.查询购买了商品名称为“爱国者MP3”的会员号、姓名和商品价格;

3.查询比“张自梁”月薪高的而和他不是同一地址的会员姓名和年龄;

4.使用exists查询购买了“0910810004”商品的会员号和姓名;

5.使用in查询与“刘法治”购买至少同一种商品的会员号;

6.使用集合查询家庭地址为“河南郑州”的会员以及年龄在48岁以上的会员详细信息;

7.将members表和orders表之间的左向外联接包括所有会员的信息,包括没有购买商品的会员。

--1.查询购买了商品号为“0910810004”的会员号和姓名,并以汉字标题显示;

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”的会员号、姓名和商品价格;

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.查询比“张自梁”月薪高的而和他不是同一地址的会员姓名和年龄;

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.使用exists查询购买了“0910810004”商品的会员号和姓名;

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.使用in查询与“刘法治”购买至少同一种商品的会员号;

select distinct A.M_account

from orders A

where P_no in (select P_no

from orders B

where A.M_account<>B.M_account

and B.M_account in (select M_account from members

where B.M_account = members.M_account and M_name='刘法治'))

--6.使用集合查询家庭地址为“河南郑州”的会员以及年龄在48岁以上的会员详细信息;

select *

from members

where members.m_address='河南郑州'

intersect

select *

from members

where datediff(year,m_birth,getdate())>48

--7.将members表和orders表之间的左向外联接包括所有会员的信息,包括没有购买商品的会员。

select members.*,orders.*

from members

left outer JOIN orders

ON members.M_account = orders.M_account

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

简单编程王子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值