数据库原理实验2数据查询

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程名称数据库原理

实验序号 2

实验项目数据查询

实验地点

实验学时实验类型验证性

指导教师实验员

专业班级

学号姓名

年月日

成绩:A

教师该学生本次实验的内容丰富,完成的操作步骤详细具体,实验结果正确,在实验报告的填写中态度十分严谨,对数据分析有自己的见解。

四、实验过程(实验步骤、记录、数据、分析)

实验准备:在实验一的基础上(包括数据库的建立、定义表和添加表内容)进行实验,下面分别为depts表、students表、courses表、reports表。

一、简单的选择与投影查询

1、无条件查询

1.1查询全体学生的详细记录。这是一个无条件的选

择查询,其命令为:

其命令为:

select * from students

运行结果如右图,显示整张表的内容。

1.2查询全体学生的姓名(Sname)、学号(Sno)、所在系

(dno)。这是一个无条件的投影查询,其命令为:

select sname,ssex

from students

运行结果如右图,显示了表中的三列。

1.3查询全体学生的姓名(Sname)、出生年份及学号

(Sno)。其命令为:

select sno,sname,2017-sage as birth from students

运行结果如右图,显示了三列内容。

1.4查询全体学生的姓名、出生年份和学号,要求用小写

字母表示学号中的字母。其命令为:

select sname,'birth:' title,YEAR(GETDATE())-sage

birthyear,LOWER(sno) lsno

from students

运行结果如右图,显示了四列内容。

1.5查询选修了课程的学生学号。其命令为:

select distinct sno

from reports

运行结果如右图,distinct短语是为了消去查询结果中的重复值。

2、条件查询

(1)比较条件

1.1查询d03系全体学生的学号(Sno)和姓名(Sname)。其命令为:

select sno,sname

from students

where dno='d03'

运行结果如右图,显示了d03系的全体学生姓名与学号。

1.2查询所有年龄在18~22岁(包括18岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。其命令为:

select sno,sage

from students

where sage >= 18 and sage <=20

运行结果如右图,共有5名在18岁到20岁的学生。

(2)谓语条件

2.1查询年龄在18~22岁(包括18岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。其命令为:

select sno,sage

from students

where sage between 18 and 20

运行结果如右图,结果与比较条件的结果一样。

2.2查询年龄不在18-22岁之间的学生姓名(Sname)及年龄(Sage)。其

命令为:

select sno,sage

from students

where sage not between 18 and 20

运行结果如右图,共有2个人不在18岁到20岁之间。

2.3查询系别编号为d01、d02、d03学生的学号(Sno)、姓名(Sname)

和性别(Ssex)。其命令为:

select sno,sname,ssex

from students

where dno='d01' or dno='d02' or dno='d03'

运行结果如右图,共有6个人。

2.4查询系别编号既不是d01、d02,也不是d03的学生的姓名(Sname)

和性别(Ssex)。其命令为:

select sname,ssex

from students

where dno not in('d01','d02','d03')

运行结果如右图,因为没有其他系别的学生,因此查询出来的是空表。

2.5查询所有姓刘的学生的姓名(Sname)、学号(Sno)和性别(Ssex)。其

命令为:

select sname,sno,ssex

from students

where sname like '刘%'

运行结果如右图,只有一个人姓刘。

2.6查询姓“刘”而且全名不多于3个汉字的学生的姓名(sname)和所在

系(dno),其命令为:

select sname,dno

from students

where sname like '刘__'

运行结果如右图,在英文系统中下横线“_”代表一个英文字符,但在支持汉字的数据库系统中下横线“_”也代表一个汉字,所以匹配串“刘”的后面只需要跟2个“_”(下横线)

2.7查询所有不姓刘的学生姓名(Sname)和年龄(Sage)。其命令为:

select sname,sage

from students

where sname not like '刘%'

运行结果如右图,5个人不姓刘。

2.8查询课程名为“DB_设计”的课程号(Cno)和学分(Credits)。其命令为:

select cno,credits

from courses

相关文档
最新文档