实验四 简单查询——单表无条件和有条件查询
一、实验目的
(1) 掌握SELECT语句的基本用法。 (2) 使用WHERE子句进行有条件的查询。
(3) 掌握使用IN和NOT IN,BETWEEN?AND和NOT BETWEEN?AND来缩小查询范围的方法。
(4) 利用LIKE子句实现字符串匹配查询。 二、实验要求
1、学生做好实验准备,预习并熟悉实验步骤; 2、遵守实验室纪律,在规定的时间内完成要求的内容; 3、实验过程中独立操作、相互学习。 4、完成实验内容,并将实验结果截图保存。 三、实验内容及步骤
在上次实验建立的Grademanager数据库中完成下面查询: (1) 查询所有学生的姓名及年龄。
SELECT DATEDIFF(YEAR,SBIRTHDAY,GETDATE()) FROM STUDENT; select distinct sname from student
(2) 查询所有年龄大于18岁的女生的学号和姓名。 select sno,sname from student
where DATEDIFF(YEAR,SBIRTHDAY,GETDATE())>18; (3) 查询所有男生的信息。
select * from student where ssex='男';
(4) 查询所有任课教师的Tname、Tdept。
select distinct tname,tdept from teacher;
(5) 查询“电子商务”专业的学生姓名、性别和出生日期。
select sname,ssex,sbirthday from student
where speciality='电子商务';
(6) 查询Student表中的所有系名。
select distinct sdept from student;
(7) 查询“C01”课程的课程名称。
select cname from course where cno='C01';
(8) 查询成绩在80~90分之间的学生学号及课号。
select sno,cno from sc
where degree between 80 and 90;
(9) 查询在1970年1月1日之前出生的男教师信息。 Select *from teacher
Where(tsex=’男’ )and(tbirthday<’1997-1-1’); (10) 输出有成绩的学生学号。 Select sno From sc
Where grade is not null;
(11) 查询所有姓“刘”的学生信息。 Select *from student Where sname like =’_刘%’
(12) 查询专业不是计算机应用的学生信息。 Select *from student
Where speciality=‘计算机应用’;
(13) 查询成绩为79分、89分或99分的记录。
(14) 查询名字中第二个字是“立”字的男生的学生姓名和专业。 Select sname,speciality from student Where sname like ’_立%’ and ssex=’男’ (15) 查询名称以“数”开头的课程名称。
(16) 查询计算机应用专业和电子商务专业的学生信息。 Select *from student
Where speciality in =(’电子商务’,’计算机应用’); 四、实验结果 将实验结果截图保存
五、思考题
1、LIKE的通配符有哪些?分别代表什么含义? %任意多个字符,包括0个字符。 -任意单个字符
2、知道学生的出生日期,如何求出其年龄?
(1)SELECT DATEDIFF(YEAR,SBIRTHDAY,GETDATE()) FROM STUDENT; (2)SELECT * FROM STUDENT WHERE DATEDIFF(YEAR,SBIRTHDAY,GETDATE())>26;
3、IS能用“=”来代替吗? 不能。
六、实验总结 1、收获
2、存在的问题