数据库原理与应用(SQL Server)练习题 - 16 -
操作6.8:查询11系和12系的学生信息 SELECT * FROM student
WHERE st_dpid='11' OR st_dpid='12'
操作6.9:查询11系和12系所有2007年入学的学生信息 SELECT * FROM student WHERE
(st_dpid='11'
OR
st_dpid='12')
AND
DATEPART(yy,st_date)=2007 3.使用LIKE关键字进行模糊查询
操作6.10:查询所有“计算机”开头的课程信息 SELECT * FROM couse WHERE cs_nm LIKE '计算机%' 操作6.11:查询所有由三个字组成的“王”姓学生信息 SELECT * FROM student WHERE st_nm LIKE '王__' 操作6.12:查询所有课程名中包含“信息”的课程信息 SELECT * FROM couse WHERE cs_nm LIKE '%信息%' 操作6.13:查询学生姓名介于王姓到张姓的信息 SELECT * FROM student WHERE st_nm LIKE '[王-张]%' 4.使用Between?And关键字进行查询
操作6.14:查询在1989.7.1到1990.6.30之间出生的学生信息 SELECT st_id, st_nm, st_sex, st_birth FROM student WHERE st_birth BETWEEN '1981.7.1' AND '1999.6.30' 操作6.15:查询选修了1001号课程且成绩在60到80之间的学
数据库原理与应用(SQL Server)练习题 - 17 -
生选课信息
SELECT * FROM slt_couse
WHERE cs_id='1001' AND (score BETWEEN 60 AND 80) 5.使用IN关键字进行查询
操作6.16:查询11系、12系、13系的学生信息
SELECT * FROM student WHERE st_dpid IN ('11', '12','13') 操作6.17:查询所有张,王,李,赵姓的学生的学号、姓名、性别
SELECT st_id, st_nm, st_sex FROM student WHERE Left(st_nm,1) IN ('张','王','李','赵') 6.使用[NOT] NULL关键字进行查询
操作6.18:查询所有生源为非空的学生信息
SELECT * FROM student WHERE st_from IS NOT NULL 操作6.19:查询选修了1001号课程且成绩为空的学生选课信息 SELECT * FROM slt_couse
WHERE cs_id='1001' AND score IS NULL
实验7 数据查询(3)——查询排序与查询结果存储 操作7.1:查询课程信息,按课程名称降序排序 SELECT * FROM couse ORDER BY cs_nm DESC
操作7.2:查询选修了1001号课程成绩非空的学生学号和成绩,
数据库原理与应用(SQL Server)练习题 - 18 -
并按成绩降序排序
SELECT st_id, score FROM slt_corse WHERE cs_id='1001' AND score IS NOT NULL ORDER BY score DESC
操作7.3:查询11系学生学号、姓名和年龄,按年龄升序排序 SELECT
st_id,st_nm,DATEPART(yy,GETDATE( ))-DATEPART(yy,st_birth) AS age FROM student ORDER BY age ASC
操作7.4:查询学生信息,按姓名升序排序,再按系号降序排序 SELECT * FROM student ORDER BY st_nm, st_dpid DESC 操作7.5:创建学生表副本student01,仅保留学生学号、姓名和性别
SELECT st_id, st_nm, st_sex INTO student01 FROM student
操作7.6:查询陕西籍学生,将结果保存在新表st_shanxi SELECT * INTO st_shanxi FROM student
WHERE st_from='陕西省'
操作7.7:查询选修了1001号课程学生的选课信息,按学号升序排序,将结果保存在新表slt1001
SELECT * INTO slt1001 FROM slt_corse
数据库原理与应用(SQL Server)练习题 - 19 -
WHERE cs_id='1001' ORDER BY st_id
操作7.8:用局部变量@stage保存学生张三的年龄 DECLARE @stage int SELECT
@stage
=
DATEPART(yy,GETDATE())-DATEPART(yy,st_birth) FROM student WHERE st_nm='张三'
操作7.9:用局部变量@name和@stscore保存070101班按学号排序后最后一个学生的姓名和入学成绩
DECLARE @name nVarChar(8), @stscore int SELECT @name = st_nm, @stscore = st_score FROM student
WHERE LEFT(st_id,6)='070101' ORDER BY st_id
实验8 数据查询(4)——查询统计与汇总
操作8.1:查询课程总数
SELECT COUNT( * ) FROM couse 操作8.2:查询选修1001号课程的学生人数 SELECT COUNT(st_id) FROM slt_couse Where cs_id = '1001'
数据库原理与应用(SQL Server)练习题 - 20 -
操作8.3:查询被选修课程的数量
SELECT COUNT( DISTINCT cs_id ) FROM slt_couse 操作8.4:查询选修070101班学生的平均入学成绩 SELECT AVG(st_score) FROM student
WHERE LEFT(st_id,6)='070101'
操作8.5:查询070101001号学生选修课程的数量、总分以及平均分
SELECT COUNT(cs_id) AS 课程数量,SUM(score) AS 总分,AVG(score) AS 平均分 FROM slt_couse
WHERE st_id='070101001'
操作8.6:查询选修1001号课程的学生人数、最高分、最低分和平均分
SELECT COUNT(*) AS 学生人数, MAX(score) AS 最高分, MIN(score) AS 最低分, AVG (score) AS 平均分 FROM slt_couse WHERE cs_id='1001'
操作8.7:求各个课程号和相应的选课人数 SELECT cs_id, COUNT(st_id) FROM slt_couse GROUP BY cs_id 操作8.8:统计各班人数
SELECT LEFT(st_id,6) AS 班级, COUNT(st_id) AS 人数