数据库原理 下载本文

实验三 单表查询

1 实验目的与要求

(1) 掌握SQL查询语句的基本概念。

(2) 掌握SQL Server查询语句的基本语法。

(3) 熟练使用SQL的SELECT语句对单表进行查询。 (4) 熟练掌握并运用SQL Server所提供的函数。 (5) 熟练使用SQL语句进行单表聚合操作。

2 实验内容

在订单数据库OrderDB中,完成如下的查询: (1) 查询员工的姓名、职务和薪水。

(2) 查询名字中含有“有限”的客户名称和所在地。

(3) 查询出姓“张”并且姓名的最后一个字为“梅”的员工。

(4) 查询住址中含有“上海”或“南昌”的女员工,并显示其姓名、所属部门、职务、住址、出生日期和性别,其中如果出生日期为空,显示“不详”,否则按格式“yyyy-mm-dd”显示,性别用“男”和“女”显示。

(5) 查询出职务为“职员”或职务为“科长”的女员工的信息。

(6) 选取编号不在C20050001~C20050004之间的客户编号、客户名称、客户地址。 (7) 在表OrderMaster中挑出销售金额大于等于5000元的订单。 先统计订单主表中的订单金额,使用命令:

(8) 在订单主表中选取订单金额最高的前10%的订单数据。 (9) 计算出一共销售了几种商品。

(10) 计算OrderDetail表中每种商品的销售数量、平均销售单价和总销售金额,并且依据销售金额由大到小排序输出。

(11) 按客户编号统计每个客户2008年2月的订单总金额。 (12) 统计至少销售了10件以上的商品编号和销售数量。

(13) 统计在业务科工作且在1973年或1967年出生的员工人数和平均工资。 (14) 实验问题:

① 给出SQL语句实现分组聚集操作的执行过程。

② WHERE和HAVING子句都是用于指定查询条件的,请给出你对这两个子句的理解,用实例说明。

③ 在分组聚集操作中,为什么在查询列中,除了集聚函数运算,其它表达式必须包含在GROUP BY子句中。

④ 分析条件BETWEEN ... AND、AND、OR等关键字的使用方法。 ⑤ 请总结SQL语句中的单表查询语句的使用方法。

(1) 查询员工的姓名、职务和薪水。

select employeeName48, headship48,salary48 from Employee48

(2) 查询名字中含有“有限”的客户名称和所在地。

select customerName48,address48 from Customer48

where customerName48 like '%有限%'

(3) 查询出姓“张”并且姓名的最后一个字为“梅”的员工。

select employeeName48 from Employee48

where employeeName48 like '%张_梅%'

(4) 查询住址中含有“上海”或“南昌”的女员工,并显示其姓名、所属部门、职务、住址、出生日期和性别,其中如果出生日期为空,显示“不详”,否则按格式“yyyy-mm-dd”显示,性别用“男”和“女”显示。

select employeeName48,department48, headship48,address48,birthday48,

CASE sex48

WHEN 'M' THEN '男' WHEN 'F' THEN '女' END sex48,

isnull(convert(char(10),birthday48,120),'不详')birthday48 from Employee48

where address48 like '%上海%'or address48 like '%南昌%'

(5) 查询出职务为“职员”或职务为“科长”的女员工的信息。

select *

from employee48

where (headship48='科长' or headship48='职员') and sex48='F'

(6) 选取编号不在C20050001~C20050004之间的客户编号、客户名称、客户地址。

select customerNo48,customerName48,address48 from customer48

where customerNo48 not in('C20050001','C20050004')