第八章习题8.4
a).基于“生源情况”表,查询前5%的学生记录,按入学成绩降序 排序。
SELECT TOP 5 PERCENT * FROM 生源情况
ORDER BY 入学成绩DESC
b).基于“生源情况”表,查询表中所有不同的姓。 SELECT DISTINCT left(姓名,1) AS 姓 FROM 生源情况
c).基于“生源情况”表,查询年龄小于等于16岁的学生信息。 SELECT * FROM 生源情况
WHERE year(date())-year(出生日期)<=16
补充说明:基于“生源情况”表,查询年龄小于等于20岁的学生的学号、姓名、年龄,并按照年龄降序排序。
SELECT 学号,姓名,year(date())-year(出生日期) as 年龄 FROM 生源情况
WHERE year(date())-year(出生日期)<=20 order by year(date())-year(出生日期) desc
d).基于“生源情况”表,查询来自湖南的少数民族学生信息。 SELECT * FROM 生源情况
WHERE 地区=\"湖南\" and 民族<>\"汉族\"
e).基于“生源情况”表,查询所有姓名中含有“晓”字且性别为 “女”的学生信息。 SELECT * FROM 生源情况
WHERE 姓名like \"*晓*\" and 性别=\"女\"
f).基于“生源情况”表,查询从今天算起一周内过生日且与自己 来自同一地区的异性学生的信息。 SELECT * FROM 学生
WHERE (Month(Date()+7)=Month(出生日期) AND Day(Date()+7)=Day(出生日期)
or or or or or or
Month(Date()+6)=Month(Month(Date()+5)=Month(Month(Date()+4)=Month(Month(Date()+3)=Month(Month(Date()+2)=Month(Month(Date()+1)=Month(
出出出出出出
生生生生生生
日日日日日日
期期期期期期
) ) ) ) ) )
AND AND AND AND AND AND
Day(Date()+6)=Day(出生日期) Day(Date()+5)=Day(出生日期) Day(Date()+4)=Day(出生日期) Day(Date()+3)=Day(出生日期) Day(Date()+2)=Day(出生日期) Day(Date()+1)=Day(出生日期)
or Month(Date())=Month(出生日期) AND Day(Date())=Day(出生日期))
AND 性别=\"女\" AND 地区=\"安徽\" 补充查询:
1.基于“生源情况”表,查询姓名为三个字的学生的信息。(要求
使用字符匹配方式和len函数两种方法) SELECT * FROM 生源情况 WHERE 姓名like \"\" 或 SELECT * FROM 生源情况
WHERE len(姓名)=3
2.基于“生源情况”表,查询同学的姓名、地区、出生日期,先 按地区升序排序,地区相同时按出生日期降序排序。 SELECT 姓名, 地区, 出生日期 FROM 生源情况
ORDER BY 地区, 出生日期DESC
3.基于“生源情况”表,查询地区字段为空的学生的学号、姓名、 地区。
SELECT 学号, 姓名, 地区 FROM 生源情况 WHERE 地区Is Null
4.基于“生源情况”表,查询学生的学院班级名称、姓名(学院 班级名称是指如将“金融学院071保险0”组合成“金融07保险”)
SELECT left(学院名称,2)&left(班级名称,2)&mid(班级名称,4,2) as 学院班级名称,姓名
from 生源情况
5.基于“生源情况”表,分别查询学生的姓、名。 SELECT left(姓名,1)as 姓,mid(姓名,2)as 名from 生源情况 6.基于“生源情况”表,查询姓名、称呼(男性称为先生,女性 称为女士,采用IIF函数)。
SELECT 姓名,IIF(性别=\"男\先生\女士\")as 称呼from 生源情况 7.基于班级表,查询哪些班级的学生人数大于50的班级名称、班 级人数。
SELECT 班级名称,班级人数FROM 班级where 班级人数>50 8.基于学生表和班级表,查询学生的学号、姓名、班级名称,并 且按照班级名称升序排序。 SELECT 学号, 姓名, 班级名称 FROM 班级, 学生
WHERE 班级.班级编号=学生.班级编号
ORDER BY 班级名称 9.计算5/3,5\\3,5 mod 3 SELECT 5/3,5\\3,5 mod 3
10.计算-3的绝对值、2的平方根。
SELECT abs(-3) as -3的绝对值,sqr(2) as 2的平方根 11.计算int(8.7),fix(8.7),int(-8.7),fix(-8.7)的值 SELECT int(8.7),fix(8.7),int(-8.7),fix(-8.7)
12.计算表达式1.5+3\\2>2 Or 7 Mod 3<4 And Not True的值 SELECT 1.5+3\\2>2 Or 7 Mod 3<4 And Not True AS 运算结果 13.基于“生源情况”表,创建参数查询,查询运行时提示输入性 别。
SELECT 学号,姓名,性别 from 生源情况
where 性别=[请输入性别:]
14.基于“生源情况”表,创建参数查询,查询运行时提示输入姓 名信息。 SELECT * from 生源情况
where 姓名=[请输入完整的姓名:] SELECT * from 生源情况
where 姓名like [请输入姓:]&\"*\" SELECT * from 生源情况
where 姓名like \"*\"&[请输入姓名中的任意一个字]&\"*\" 15.基于“生源情况”表,创建参数查询,查询运行时提示输入出 生日期的范围,并按出生日期升序排序。 SELECT * from 生源情况
where 出生日期>=[请输入起始日期] and 出生日期<=[请输入结
束日期]
order by 出生日期
16.基于“生源情况”表,使用向导查询姓名重复的学生的学号、 姓名、性别。
17.基于“生源情况”表,使用向导查询民族字段填写了错误民族 名称的记录。
因篇幅问题不能全部显示,请点此查看更多更全内容