《 数据库系统 》课程实验报告:实验4:数据查询(上)-简单查询、条件查询、内连接查询、匹配查询

实验目的:

1.掌握SELECT 语句的基本语法格式。

2.掌握SELECT 语句的简单查询、条件查询、内连接查询、匹配查询的语法格式。

实验内容:

实验要求:在JWXT数据库中对数据进行以下查询操作,写出SQL命令:

1.查询所有教师的信息。

2.查询所有教师的姓名、性别、职称和年龄。

3.查询具有“教授”职称的教师姓名和性别。

4.查询部门号为“0001”的男教师的姓名、性别、职称。

5.查询哪些教师已安排有教学任务,显示其教师号。

6.查询职称为空值的教师信息。

7.查询“计科本201”班的学生姓名和性别。

8.查询选修“C语言程序设计”课程的学生姓名。

9.查询“信息学院”教师的姓名、性别和职称。

10.查询“计算机网络”课程的任课教师姓名和性别。

11.查询所有非姓“李”教师的姓名和其所在的院系名称。

12.查询教师姓名中含有“明”字的教师信息。

13.查询20级(班号前两位是20)且专业名中包含“工程”两字的班级信息。

14. 查询单名单姓(即姓名为两个字)的教师的姓名、性别和职称。

15.查询学号中第5、6位是“01”的学生信息。

16.查询专业名中不含“网”和“数”两字的所有班级信息。

实验环境

硬件环境:分辨率至少在1024*768像素之上的显示器;P-III及其兼容处理器,或更高型号;处理器速度至少600MHz,推荐1GHz或更高;内存至少512MB,推荐1GB或更大;2G以上硬盘空间。

软件环境:安装Windows 7/10操作系统和MySQL5.7以上版本、Navicat for MySQL

实验重点及难点

重点:启动服务并登录MySQL 5.7数据库;SQL 语句创建、删除数据库的方法

难点: SQL 语句创建、删除数据库的方法

实验内容过程及结果:

1.查询所有教师的信息。

SELECT * FROM TEACHER

2.查询所有教师的姓名、性别、职称和年龄。

SELECT TNAME 姓名,TSEX 性别,TTITLE 职称,

YEAR(CURRENT_DATE())-YEAR(TBIR) 年龄

FROM TEACHER

3.查询具有“教授”职称的教师姓名和性别。

SELECT TNAME 姓名,TSEX 性别 FROM TEACHER,DEPARTMENT

WHERE TEACHER.DNO=DEPARTMENT.DNO

AND (TTITLE='教授' )

4.查询部门号为“0001”的男教师的姓名、性别、职称。

SELECT  TNAME 姓名,TSEX 性别,TTITLE 职称 FROM  TEACHER

WHERE DNO='0001' AND TSEX='男'

5.查询哪些教师已安排有教学任务,显示其教师号。

SELECT DISTINCT TNO FROM TEACHING

6.查询职称为空值的教师信息。

SELECT * FROM  TEACHER  WHERE TTITLE IS NULL

7.查询“计科本201”班的学生姓名和性别。

SELECT SNAME 姓名,SSEX 性别 FROM STUDENT,CLASS

WHERE  CLNAME='计科本201'

8.查询选修“C语言程序设计”课程的学生姓名。

SELECT SNAME  FROM COURSE,STUDENT WHERE CNO IN

(SELECT CNO FROM  COURSE

WHERE CNAME= 'C语言程序设计' )

9.查询“信息学院”教师的姓名、性别和职称。

SELECT TNAME,TSEX,TTITLE FROM TEACHER,DEPARTMENT

WHERE  TEACHER.DNO=DEPARTMENT.DNO

AND (DNAME='信息学院' )

10.查询“计算机网络”课程的任课教师姓名和性别。

SELECT TNAME,TSEX FROM TEACHER,COURSE,TEACHING

WHERE TEACHER.TNO=TEACHING.TNO

AND COURSE.CNO=TEACHING.CNO

AND CNAME= '计算机网络'

11.查询所有非姓“李”教师的姓名和其所在的院系名称。

SELECT TNAME 姓名,DNAME 院系名称 FROM TEACHER,DEPARTMENT

WHERE TEACHER.DNO=DEPARTMENT.DNO

AND TNAME NOT LIKE '李%'

12.查询教师姓名中含有“明”字的教师信息。

SELECT * FROM TEACHER

WHERE TNAME  LIKE '%明%'

13.查询20级(班号前两位是20)且专业名中包含“工程”两字的班级信息。

SELECT CLNAME FROM CLASS

WHERE CLNO LIKE '20%'

AND SPECIAL LIKE '%工程%'

14. 查询单名单姓(即姓名为两个字)的教师的姓名、性别和职称。

SELECT TNAME,TSEX,TTITLE FROM TEACHER,DEPARTMENT

WHERE  TEACHER.DNO=DEPARTMENT.DNO

AND TNAME LIKE '__'

15.查询学号中第5、6位是“01”的学生信息。

SELECT * FROM STUDENT

WHERE SNO LIKE '____01____'

16.查询专业名中不含“网”和“数”两字的所有班级信息。

SELECT * FROM CLASS

WHERE SPECIAL NOT LIKE '%网%'

AND SPECIAL NOT LIKE'%数%'

思考:

1. LIKE的通配符有哪些?分别代表什么含义?

答:(1)“%”可以代表任意长度的字符串,长度可以为0。

(2)“_”只能表示单个字符。

2. 知道学生的出生日期,如何求出其年龄?

答:用当前日期减去出生日期就可以得出学生的年龄。

3. 查询“空数据”时,IS能用“=”来代替吗?

答:不能。因为IS UNLL是一个整体,不能将IS换成“=”。

4. 关键字DISTINCT有什么含义? 

答:可以去除重复的查询记录。

仅个人实验结果,如发现有错误,欢迎在评论区批评指正!

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值