实验四 单表查询 下载本文

实验四 简单查询——单表无条件和有条件查询

一、实验目的

(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、存在的问题