数据库上机实验2 单表查询和嵌套查询

简介: 数据库上机实验2 单表查询和嵌套查询

一、实验目的

1、熟练掌握Select子句中各种用法。

2、熟练掌握Where子句中各种运算符的使用方法。

3、掌握各种嵌套查询的使用方法。

二、实验内容

根据实验1中创建的学生作业管理数据库以及其中的学生表、课程表和学生作业表,进行以下的查询操作(每一个查询都要给出SQL语句,列出查询结果)。

1、查询学时数大于60的课程信息。

select * from course where stime>60

2、查询在1986年出生的学生的学号、姓名和出生日期。

select sno,sname,birth from student where birth like '1986%'

3、查询三次作业的成绩都在80分以上的学号、课程号。

select sno,cno from score where cj1>80 and cj2>80 and cj3>80

4、查询姓张的学生的学号、姓名和专业班级。

select sno,sname,major from student where sname like '张%'

5、查询没有作业成绩的学号和课程号。

select sno,cno from score where cj1 is null or cj2 is null or cj3 is null

6、查询选修了K001课程的学生人数。

select count(*) from score where cno='K001'

7、查询与“张志国”同一班级的学生信息(使用子查询方式)。

1. select * from student
2. where major=(select major from student where sname='张志国')

8、查询比“计算机应用基础”学时多的课程信息(使用子查询方式)。

1. select * from course 
2. where stime>(select stime from course where cname='计算机应用基础')

9、查询选修课程号为K002的学生的学号、姓名(使用exists关键字的相关子查询)。

1. select sno,sname from student 
2. where exists(select sno from score where student.sno=score.sno and cno='K002')

10、查询没有选修K001和M001课程的学号、课程号和三次成绩(使用子查询方式)。

1. select sno,cno,cj1,cj2,cj3 from score
2. where cno not in(select cno from score where cno='K001' or cno='M001')

三、实验指导

1、启动SQL Server2012软件。

2、通过分离附加的方法,将实验1所创建的作业管理数据库恢复到该软件中。

3、SQL Server中,程序不区别大小写,特别要注意程序中的标点符号,一定要在英文半角状态下输入,否则会出错。

4、注意通配符的使用方法,%匹配0个或多个字符,_匹配单个字符。

5、注意运算符的优先级,算术运算符优于比较运算符,比较运算符优于逻辑运算符,逻辑运算符的优先级是非、与、或。

6、判断某个列是否为空值是:列名 is null,而不是:列名=null。

7、子查询要有括号括起来。

目录
相关文章
|
16天前
|
存储 缓存 网络协议
数据库执行查询请求的过程?
客户端发起TCP连接请求,服务端通过连接器验证主机信息、用户名及密码,验证通过后创建专用进程处理交互。服务端进程缓存以减少创建和销毁线程的开销。后续步骤包括缓存查询(8.0版后移除)、语法解析、查询优化及存储引擎调用,最终返回查询结果。
26 6
|
14天前
|
SQL JavaScript 程序员
数据库LIKE查询屡试不爽?揭秘大多数人都忽视的秘密操作符!
本文分析了因数据库中的不可见空白字符导致的数据查询问题,探讨了问题的成因与特性,并提出了使用 SQL 语句修复问题的有效方案。同时,总结了避免类似问题的经验和注意事项。
27 0
|
1月前
|
存储 缓存 固态存储
怎么让数据库查询更快
【10月更文挑战第28天】
37 2
|
1月前
|
存储 缓存 关系型数据库
怎么让数据库查询更快
【10月更文挑战第25天】通过以上综合的方法,可以有效地提高数据库查询的速度,提升应用程序的性能和响应速度。但在优化过程中,需要根据具体的数据库系统、应用场景和数据特点进行合理的调整和测试,以找到最适合的优化方案。
|
22天前
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
238 1
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
94 0
|
11天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
80 15
|
5天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
12天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
下一篇
DataWorks