《数据查询》练习

《数据查询》练习
《数据查询》练习

《数据查询》练习

练习前,先附加“教务管理系统”和“人事管理系统”数据库

1、在“学生信息”表中,以3种不同的列名显示方式,查询学生信息。

select 学号‘No’,姓名’Name’,性别‘Sex’,年级’Grade’,籍贯‘出生所在地’ from 学生信息

select 学号 as ‘No’,姓名 as ’Name’,性别 as ‘Sex’,年级 as ’Grade’,籍贯 as ‘出生所在地’ from 学生信息

select ‘No’=学号,’Name’=姓名, ‘Sex’=性别,’Grade’=年级, ‘出生所在地’=籍贯 from 学生信息

2、交换列的显示顺序,查询查询“学生信息”表中所有学生的学号、姓名、政治面貌和籍贯信息。

select 学号,姓名,政治面貌,籍贯 from 学生信息

select 政治面貌,学号,姓名, 籍贯 from 学生信息

3、对比不使用DISTINCT和使用DISTINCT,查询“学生信息”表的“籍贯”列中的信息。

select 籍贯 from 学生信息

select distinct 籍贯 from 学生信息

4、查询列表中使用计算列。

1)查询“成绩表”中学生成绩信息,把成绩减少10分显示,同时显示编号、学号、调整前的成绩。

select 编号,学号,‘调整前的成绩’=成绩, ,‘调整后的成绩’=成绩-10 from 成绩表

2)查询“学生信息”表中学生学号、姓名、性别、民族和籍贯信息组,结果组合一

列显示。

select 学生信息=‘学号:’+学号+’姓名:’+姓名+’性别:’+性别+’民族:’+民族+‘籍贯:’+籍贯 from 学生信息

5、WHERE子句的使用

1)从“学生信息”表中,查询出“籍贯”为“河南”的学生的学号、姓名、性别、民族和籍贯信息。

select 学号,姓名,性别,民族,籍贯 from 学生信息 where 籍贯=‘河南’

2)从“学生信息”表中,查询出“籍贯”不是“河南”的学生的学号、姓名、性别、民族和籍贯信息。

select 学号,姓名,性别,民族,籍贯from 学生信息 where 籍贯!=‘河南’

3)从“成绩表”中,查询出“成绩”小于60的学生的学号、姓名信息。

select 学号,姓名 from 成绩表 where 成绩<60

4)从“学生信息”表中,查询出“籍贯”为“河南”并且“民族”为“汉”的学生的学号、姓名、性别、民族和籍贯信息。

select 学号,姓名,性别,民族,籍贯 from学生信息 where 籍贯=‘河南’and 民族=‘汉’

5)从“学生信息”表中,查询出“籍贯”为“河南”或者“上海”的学生的学号、姓名、性别、民族和籍贯信息。

select 学号,姓名,性别,民族,籍贯 from 学生信息 where 籍贯=‘河南’ or 籍贯=‘上海’

6)在“成绩表”中,查询出成绩在70与80之间的学生的编号、学号、课程编号和成绩信息。

select 编号,学号,课程编号,成绩 from 成绩表 where 成绩 between 70 and 80

7)在“成绩表”中,查询出成绩不在70与80之间的学生的编号、学号、课程编号和成绩信息。

select 编号,学号,课程编号,成绩 from 成绩表 where 成绩 not between 70 and 80

8)在“人事管理系统”数据库中查询从2004-05-01到2007-01-01的日期内入职的员工信息,包括员工编号、员工姓名、性别和入职时间。

select 员工编号,员工姓名,性别,入职时间 from 员工信息 where 入职时间between ‘2004-05-01’ and ‘2007-01-01’

9)从“学生信息”表中,查询出“籍贯”是“湖南”、“湖北”和“江西”的学生的学号、姓名、性别、民族和籍贯信息。

select 学号,姓名,性别,民族,籍贯 from 学生信息 where 籍贯 IN (‘湖南’, ‘湖北’,’江西’)

10)从“学生信息”表中,查询出除“籍贯”是“湖南”、“湖北”和“江西”以外的学生的学号、姓名、性别、民族和籍贯信息。

select 学号,姓名,性别,民族,籍贯 from 学生信息 where 籍贯 NOT IN (‘湖南’, ‘湖北’,’江西’)

11)查询“学生信息”表中姓名包含“红”字的学生的学号、姓名、性别、民族、籍贯和班级编号信息。

select 学号,姓名,性别,民族,籍贯,班级编号 from 学生信息 where 姓名like ‘%红%’

12)查询“学生信息”表中姓氏为“徐”的学生的学号、姓名、性别、民族、籍贯和班级编号信息。

select 学号,姓名,性别,民族,籍贯,班级编号 from 学生信息 where 姓名

like 徐%’

13)查询“学生信息”表中姓名不包含“红”字的学生的学号、姓名、性别、民族、籍贯和班级编号信息。

select 学号,姓名,性别,民族,籍贯,班级编号 from 学生信息 where 姓名like ‘_[^红]_’

12)在“教务管理系统”数据库中,查询还未分配班主任的班级信息。

select * from 班级信息 where 班主任 is null

在数据库commoditysell中操作

13)查询数据表ProductInfo中前5条记录。

14)从ProductInfo表中,查询产品名称为“丙电视机”的产品信息。

15)从ProductInfo表中,查询FactAddr为“四川绵阳”或“广东东莞”,同时StockAmount大于110的产品的ProdID、StockAmount和FactAddr信息,并且给列名分别取别名为产品编号、库存数量和厂商地址。

16) 从ProductInfo表中,查询StockAmount在250和400(包含200和400)之间的产品的ProdName和StockAmount。

17) 从ProductInfo表中,查询StockAmount在250和400(不包含200和400)之间的产品的ProdName和StockAmount。

18)从EmporiumSell表中,查询EmpID为“9602”和“0303”的商场销售的商品的ProdID、SellAmount和EmpID

19)从EmporiumSell表中,查询所有EmpID以“9”开头的商场的销售记录。

20)从ProductInfo表中,查询所有生产“洗衣机”的厂商的ProdName、ProdFact、FactAddr、FactTele和ProdID。

6、ORDER BY子句的使用

1)从数据库“教务管理系统”的“班级信息”表中,按照班级的人数进行降序排列。select 班级编号,年级,班级名称,人数,班主任 from 班级信息 order by 人数 desc

2)从数据库“教务管理系统”的“班级信息”表中,按照年级进行升序排列,年级相同的再按班级人数进行降序排列。

select 班级编号,年级,班级名称,人数,班主任 from 班级信息 order by 年级 asc,人数 desc

7、GROUP BY子句的使用

1)在“教务管理系统”数据库的“成绩”表中,查询考试课程数。

select count(distinct 课程编号) from 成绩表

2)在“教务管理系统”数据库的“成绩”表中,查询课程编号为’12’课程的总分。

select sum(成绩) as 总分 from 成绩表 where 课程编号='12'

3)在“教务管理系统”数据库的“成绩”表中,查询成绩最高的。

select max(成绩) as 最高分 from 成绩表

4)在“教务管理系统”数据库的“成绩”表中,查询成绩最低的。

select min(成绩) as 最低分 from 成绩表

5)在“教务管理系统”数据库的“班级信息”表中,按照年级查询出该年级各班的总人数以及班级的数量。

select 年级,sum(人数) as 年级总人数,count(班级编号) as 班级数量from 班级信息

group by 年级

6)在“教务管理系统”数据库的“成绩”表中,按照学号分组,查询学生课程成绩都大于等于80课程数。

select 学号,count(课程编号)from 成绩表

where 成绩>=80

group by 学号

7)在“教务管理系统”数据库的“成绩”表中,按照学号分组,查询学生总成绩,要求总成绩大于等于150。

select 学号,sum(成绩) as 总分from 成绩表

group by 学号

having sum(成绩)>=150

8、COMPUTE和COMPUTE BY子句的使用

1)在“AdventureWorks”数据库的“SalesOrderHeader”表中,使用COMPUTE子句生成 SalesOrderHeader 表中 SubTotal 与 TotalDue 的和的合计。

SELECT CustomerID, OrderDate, SubTotal, TotalDue

FROM

WHERE SalesPersonID = 275

ORDER BY OrderDate

COMPUTE SUM(SubTotal), SUM(TotalDue)

2)在“AdventureWorks”数据库的“SalesOrderHeader”表中,使用 COMPUTE 子句按销售人员生成 SalesOrderHeader 表中 SubTotal 与 TotalDue 的和的合计。SELECT SalesPersonID, CustomerID, OrderDate, SubTotal, TotalDue

FROM

ORDER BY SalesPersonID, OrderDate

相关主题
相关文档
最新文档