数据库试题
- 格式:doc
- 大小:58.00 KB
- 文档页数:12
数据库期末考试试题及答案一、名词解释(每小题2分,共10分)1. 数据库(Database)2. 数据模型(Data Model)3. 表(Table)4. 字段(Field)5. 记录(Record)6. 主键(Primary Key)7. 外键(Foreign Key)8. 索引(Index)9. 视图(View)10. 存储过程(Stored Procedure)二、选择题(每小题2分,共20分)1. 下列哪个是关系型数据库管理系统?A. OracleB. MyBatisC. MongoDBD. Redis2. 在数据库中,哪个字段用于唯一标识一条记录?A. 字段名B. 数据类型C. 主键D. 索引3. 以下哪个不属于数据库的基本操作?A. 插入B. 删除C. 修改D. 格式化4. 下列哪个SQL语句用于创建表?A. SELECTB. INSERTC. CREATE TABLED. UPDATE5. 在SQL中,哪个关键字用于删除表?A. DROP TABLEB. DELETEC. ALTER TABLED. TRUNCATE TABLE6. 下列哪个SQL语句用于查询所有字段?A. SELECT FROM table_nameB. SELECT table_name FROMC. SELECT FROM table_nameD. SELECT table_name7. 以下哪个函数用于计算两个日期之间的差值?A. DATEDIFFB. TIMESTAMPDIFFC. DATE_ADDD. DATE_SUB8. 下列哪个SQL语句用于修改表的结构?A. MODIFY TABLEB. ALTER TABLEC. CHANGE TABLED. RENAME TABLE9. 下列哪个关键字用于创建外键约束?A. FOREIGN KEYB. CONSTRAINTC. PRIMARY KEYD. INDEX10. 以下哪个存储过程用于备份数据库?A. BACKUP DATABASEB. RESTORE DATABASEC. CREATE DATABASED. DROP DATABASE三、填空题(每小题2分,共20分)1. 在SQL中,用于插入数据的语句是______。
数据库试题及答案一、选择题1. 数据库管理系统(DBMS)的主要功能是______。
A. 数据存储B. 数据处理C. 数据管理D. 数据保护答案:C2. 关系数据库中,表与表之间的关系主要有以下几种类型?A. 一对一B. 一对多C. 多对多D. 所有以上答案:D3. SQL语言中的“SELECT”语句用于执行什么操作?A. 插入数据B. 更新数据C. 查询数据D. 删除数据答案:C二、填空题1. 数据库设计中的规范化理论主要目的是______,以减少数据冗余。
答案:消除数据冗余2. 在SQL中,使用______语句可以删除表中的数据。
答案:DELETE3. 数据库的并发控制主要解决______和______问题。
答案:数据不一致;数据丢失更新三、简答题1. 简述数据库事务的四个基本属性(ACID)。
答案:数据库事务的四个基本属性是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
2. 什么是视图?简述其优点。
答案:视图是一个虚拟表,其内容由SQL查询定义。
优点包括简化复杂的SQL操作、提供数据的逻辑表示和增加安全性。
四、计算题1. 假设有一个学生表(Students),包含字段:学生ID (StudentID),姓名(Name),年龄(Age),专业(Major)。
编写SQL语句,查询所有计算机专业学生的姓名和年龄。
答案:```sqlSELECT Name, AgeFROM StudentsWHERE Major = '计算机';```2. 如果要删除上述学生表中所有年龄大于20岁的学生记录,应使用什么SQL语句?答案:```sqlDELETE FROM StudentsWHERE Age > 20;```五、论述题1. 论述数据库索引的作用及其对查询性能的影响。
答案:数据库索引用于加快数据检索速度,它类似于书籍的目录,可以快速定位到数据存储的位置。
数据库试题及答案一、选择题1. 数据库管理系统(DBMS)的主要功能是()。
A. 只能进行数据存储B. 仅支持数据检索C. 管理数据库中的数据D. 运行操作系统答案:C2. 关系型数据库中,用于描述表与表之间关系的是()。
A. 索引B. 触发器C. 视图D. 外键答案:D3. SQL语言中的SELECT语句用于()。
A. 创建新的数据库表B. 修改已有的数据库表结构C. 删除数据库中的数据D. 查询数据库中的数据答案:D4. 在数据库设计中,规范化理论的主要目的是()。
A. 提高查询速度B. 降低数据冗余C. 提高系统安全性D. 增加数据存储量答案:B5. 数据库事务具有以下哪些特性?()。
A. 原子性B. 一致性C. 隔离性D. 持久性E. 以上都是答案:E二、填空题1. 在关系型数据库中,一个________是用来存储和组织数据的单个单位,由行和列组成。
答案:表2. ________是指在数据库中,对于某个表的特定列的值的唯一性约束。
答案:主键3. ________是一种数据库对象,它允许用户创建自定义的数据类型、存储过程、函数等。
答案:架构4. 在SQL中,使用________语句可以向数据库表中插入新的数据行。
答案:INSERT INTO5. ________是指数据库中存储的数据在物理层面上的实际存储方式。
答案:存储引擎三、简答题1. 请简述数据库的三级模式架构及其作用。
答:数据库的三级模式架构包括概念模式、外模式和内模式。
概念模式是数据库的最高层次,它定义了数据库中所有数据的逻辑结构,是全局的视图。
外模式是针对特定用户或用户组的数据库视图,它描述了数据库系统中用户所看到的那部分数据的逻辑结构。
内模式是数据库的物理层面,描述了数据在存储介质上的存储方式和数据的访问路径。
这三级模式通过映射和转换,实现了数据的独立性和安全性。
2. 请解释什么是数据库的连接(Join)操作,并举例说明其用法。
数据库考试试题及答案一、选择题1. 数据库是指()。
A. 一组相关的数据B. 存储数据的载体C. 管理数据的系统D. 所有选项都正确2. 数据库管理系统(DBMS)的基本功能包括()。
A. 数据的定义B. 数据的查询C. 数据的操作D. 所有选项都正确3. 下列哪种数据库模型能够以图形方式显示实体及其属性之间的联系?A. 层次模型B. 关系模型C. 面向对象模型D. 网状模型4. 在关系数据库中,表的一行称为()。
A. 记录B. 字段C. 主键D. 约束5. 下面哪个SQL语句可以用于将数据插入数据库表中?A. DELETEB. UPDATEC. INSERTD. SELECT二、填空题1. 在关系型数据库中,主键具有()的属性。
2. SQL语句的基本结构由()组成。
3. 数据库中实体之间的关系可以用()表示。
4. 数据库事务的四个特性分别是()。
5. 数据库的一致性由()来保证。
三、简答题1. 什么是数据库的范式?数据库的范式是用来规范关系型数据库中数据结构的一种方法。
它通过一系列的规范化步骤,将数据库中的数据分解成更小的、更规范化的表,以减少数据冗余和数据不一致性,提高数据的存储效率和查询效率。
2. 简述数据库事务的ACID特性。
ACID是指数据库事务应该具备的四个特性,分别是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
- 原子性:事务中的操作要么全部执行成功,要么全部回滚,保证了数据的完整性。
- 一致性:事务在执行前后数据库的状态保持一致,不会破坏数据的完整性和业务规则。
- 隔离性:多个事务同时执行时,每个事务的操作都应该相互隔离,保证数据的并发一致性。
- 持久性:事务一旦提交,对数据库的修改就是永久性的,即使系统发生故障也不会丢失。
3. 什么是数据库索引?它的作用是什么?数据库索引是一种特殊的数据结构,用于提高数据库查找和查询的效率。
数据库试题及答案一、选择题(每题2分,共20分)1. 数据库管理系统(DBMS)的主要功能是______。
A. 存储数据B. 管理数据C. 访问数据D. 以上都是答案:D2. 关系型数据库中,表与表之间的联系称为______。
A. 索引B. 视图C. 关系D. 约束答案:C3. SQL语言中的“SELECT”语句用于执行______。
A. 数据更新B. 数据查询C. 数据删除D. 数据插入答案:B4. 在数据库设计中,规范化的主要目的是______。
A. 提高查询速度B. 减少数据冗余C. 增强数据安全性D. 增加用户界面友好性答案:B5. 数据库事务的四个基本属性通常被称为ACID属性,其中“D”代表的是______。
A. 原子性B. 一致性C. 隔离性D. 持久性答案:D二、填空题(每空2分,共20分)6. 数据库系统由数据库、数据库管理系统、________和________组成。
答案:应用系统;数据库管理员7. 在关系数据库中,表的列称为________,行称为________。
答案:属性;元组8. SQL语言提供了数据定义、数据操纵和数据控制的功能,其中数据定义包括创建、修改和________表。
答案:删除9. 数据库的安全性主要体现在数据的________、________和________。
答案:完整性;机密性;可用性10. 触发器是一种特殊的存储过程,它在数据库中的数据发生变化时自动执行,用于维护数据的________。
答案:一致性三、简答题(每题10分,共20分)11. 简述数据库的三级模式结构。
答案:数据库的三级模式结构包括外模式、概念模式和内模式。
外模式是用户视图,是用户与数据库交互的接口;概念模式是全局逻辑结构,描述了数据库的总体结构;内模式是存储结构,描述了数据在存储介质上的物理存储方式。
12. 什么是数据库的并发控制?为什么需要并发控制?答案:数据库的并发控制是指在多用户环境下,数据库管理系统协调多个用户对数据库的访问,以保证数据的完整性和一致性。
数据库试题及答案一、选择题(每题2分,共20分)1. 数据库管理系统(DBMS)的主要功能是______。
A. 数据存储B. 数据管理C. 数据保护D. 数据备份答案:B2. 在关系数据库中,数据是按照______存储的。
A. 记录B. 表格C. 索引D. 视图答案:B3. SQL语言中的“SELECT”语句用于执行______。
A. 数据更新B. 数据查询C. 数据删除D. 数据插入答案:B4. 以下哪个不是数据库设计中的范式?A. 第一范式(1NF)B. 第二范式(2NF)C. 第三范式(3NF)D. 第四范式(4NF)答案:D5. 在数据库中,事务的ACID属性不包括以下哪一项?A. 原子性(Atomicity)B. 一致性(Consistency)C. 隔离性(Isolation)D. 可扩展性(Scalability)答案:D...(此处省略剩余选择题)二、简答题(每题10分,共30分)1. 简述数据库的三级模式结构是什么?答案:数据库的三级模式结构包括外模式(用户模式)、概念模式(逻辑模式)和内模式(存储模式)。
外模式是用户与数据库交互的视图,概念模式是数据库的全局逻辑结构,内模式是数据库的物理存储结构。
2. 解释什么是数据库的规范化,并说明其目的是什么?答案:数据库的规范化是将数据库设计成一种逻辑上更简单、更一致的形式的过程。
其目的是减少数据冗余,提高数据完整性,以及简化数据的维护。
3. 描述什么是数据库的并发控制,并举例说明其重要性。
答案:数据库的并发控制是指在多用户环境中,数据库管理系统(DBMS)用来确保多个事务可以安全地同时执行的机制。
例如,在银行系统中,多个用户可能同时进行转账操作,正确的并发控制可以确保每笔交易的准确性和一致性。
三、计算题(每题15分,共30分)1. 假设有一个学生表Student,包含字段:学号(S#),姓名(Sname),性别(Sex),年龄(Age)。
数据库语言试题及答案一、单项选择题(每题2分,共20分)1. SQL语言中,用于查询数据的关键字是:A. INSERTB. UPDATEC. DELETED. SELECT答案:D2. 在数据库中,用于存储数据的表的列被称为:A. 行B. 记录C. 字段D. 索引答案:C3. 数据库管理系统(DBMS)的主要功能不包括:A. 数据定义B. 数据操纵C. 数据备份D. 数据加密答案:D4. 关系型数据库中,用于建立表与表之间联系的关键字是:A. PRIMARY KEYB. FOREIGN KEYC. UNIQUED. INDEX答案:B5. 在SQL中,用于创建数据库的关键字是:A. CREATE TABLEB. CREATE DATABASEC. DROP DATABASED. ALTER DATABASE答案:B6. 以下哪个选项不是SQL语句的组成部分?A. SELECTB. FROMC. WHERED. END答案:D7. 在SQL中,用于删除表的关键字是:A. DROP TABLEB. DELETE TABLEC. REMOVE TABLED. REMOVE答案:A8. 数据库中的主键约束用于:A. 确保数据的唯一性B. 确保数据的完整性C. 确保数据的安全性D. 确保数据的顺序性答案:A9. 在SQL中,用于更新数据的关键字是:A. UPDATEB. INSERTC. DELETED. SELECT答案:A10. 数据库设计中,用于定义表结构的语句是:A. CREATE TABLEB. ALTER TABLEC. DROP TABLED. SELECT答案:A二、多项选择题(每题3分,共15分)1. 在数据库中,以下哪些操作可以用于数据的查询?A. SELECTB. INSERTC. UPDATED. DELETE答案:A2. 在数据库中,以下哪些选项用于限制数据的类型和格式?A. CHECKB. NOT NULLC. UNIQUED. PRIMARY KEY答案:A, B, C3. 在数据库中,以下哪些关键字用于数据的插入?A. INSERT INTOB. SELECT INTOC. CREATE TABLED. ALTER TABLE答案:A三、填空题(每题3分,共15分)1. 在SQL中,用于添加新数据行的语句是________。
数据库试题及答案一、选择题(每题2分,共20分)1. 在关系数据库中,用于确保数据完整性的机制是()。
A. 索引B. 触发器C. 视图D. 存储过程答案:B2. SQL语言中的“SELECT”语句用于()。
A. 插入数据B. 更新数据C. 查询数据D. 删除数据答案:C3. 数据库管理系统(DBMS)的主要功能是()。
A. 存储数据B. 管理数据C. 访问数据D. 所有以上选项答案:D4. 在数据库设计中,将一个表的列引用另一个表的主键,这种关系称为()。
A. 一对一关系B. 一对多关系C. 多对多关系D. 无关系答案:B5. 下列哪个不是数据库的三大范式之一?()A. 第一范式(1NF)B. 第二范式(2NF)C. 第三范式(3NF)D. 第四范式(4NF)答案:D二、填空题(每空2分,共20分)6. 在SQL中,用于删除表中数据的命令是________。
答案:DELETE7. 数据库事务具有四个重要的属性,通常被称为ACID属性,其中“D”代表________。
答案:Durability(持久性)8. 在数据库中,一个_______可以包含多个表。
答案:Schema9. 索引用于提高数据库查询的效率,但是过多的索引会降低_______的性能。
答案:INSERT和UPDATE10. 数据库备份是为了防止数据丢失,常见的备份类型包括全备份和________。
答案:增量备份三、简答题(每题10分,共30分)11. 请简述数据库规范化的目的和好处。
答案:数据库规范化的目的是为了减少数据冗余,提高数据的一致性和完整性。
规范化通过分解表来消除数据的重复存储,确保数据的逻辑结构清晰。
这样做的好处包括:减少数据维护成本,提高数据的一致性,避免更新异常,以及提高查询效率。
12. 解释什么是数据库的事务,并说明事务的四个基本特性。
答案:数据库事务是一系列操作,这些操作作为一个整体被执行,以确保数据库的完整性。
事务的四个基本特性是:- 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成,不会结束在中间某个点。
数据库期末考试试题及答案第一部分:选择题(共20题,每题2分,共40分)1. 数据库是用来存储和管理什么类型的数据?a) 文件数据b) 网络数据c) 结构化数据d) 非结构化数据答案:c) 结构化数据2. 数据库系统的基本组成部分包括以下哪几个方面?a) 数据库管理系统(DBMS)b) 数据库应用程序c) 数据库模型d) 数据库管理员答案:a) 数据库管理系统(DBMS),b) 数据库应用程序,c) 数据库模型3. 下面哪个是关系数据库模型的特点?a) 数据以文件形式存储b) 数据以表格形式存储c) 数据以树形结构存储d) 数据以图形结构存储答案:b) 数据以表格形式存储4. 数据库的完整性约束包括以下几种类型?a) 实体完整性b) 参照完整性c) 域完整性d) 属性完整性答案:a) 实体完整性,b) 参照完整性,c) 域完整性,d) 属性完整性5. 数据库事务的ACID特性包括以下哪几个方面?a) 原子性b) 一致性c) 隔离性d) 持久性答案:a) 原子性,b) 一致性,c) 隔离性,d) 持久性6. 关系数据库中,外键用来表示什么类型的关系?a) 一对一关系b) 一对多关系c) 多对多关系d) 多层次关系答案:b) 一对多关系7. 下面哪个是数据库查询语言?a) Javab) C++c) SQLd) HTML答案:c) SQL8. 在数据库中,一个事务的隔离级别有哪几种选择?a) READ COMMITTEDb) REPEATABLE READc) SERIALIZABLEd) READ UNCOMMITTED答案:a) READ COMMITTED,b) REPEATABLE READ,c) SERIALIZABLE,d) READ UNCOMMITTED9. 数据库索引的作用是什么?a) 提高数据访问的速度b) 减少数据存储的空间c) 保证数据的一致性d) 控制数据的权限答案:a) 提高数据访问的速度10. 数据库范式用来做什么?a) 优化数据库查询b) 规范数据库模型c) 压缩数据库存储d) 加密数据库数据答案:b) 规范数据库模型11. 数据库触发器用来做什么?a) 检查数据的有效性b) 定期备份数据库c) 自动执行特定操作d) 创建数据库索引答案:c) 自动执行特定操作12. 数据库备份的作用是什么?a) 保护数据免受损失b) 提高数据库查询速度c) 减少数据存储空间d) 控制数据的权限答案:a) 保护数据免受损失13. 数据库连接是指什么?a) 数据库之间的关系b) 数据库中的数据关系c) 应用程序访问数据库的接口d) 数据库中的表之间的关系答案:c) 应用程序访问数据库的接口14. 数据库主键的作用是什么?a) 提高数据查询速度b) 控制数据的权限c) 唯一标识一条记录d) 加密数据库数据答案:c) 唯一标识一条记录15. 数据库视图是什么?a) 物理存储的数据b) 存储过程c) 虚拟表d) 数据库备份文件答案:c) 虚拟表16. 数据库设计的范式分为几个级别?a) 1NF, 2NF, 3NF, BCNFb) 1NF, 2NF, 3NF, 4NFc) 1NF, 2NF, 3NFd) 1NF, 2NF, 3NF, 5NF答案:b) 1NF, 2NF, 3NF, 4NF17. 数据库连接的类型包括以下哪几种?a) 内连接b) 外连接c) 自连接d) 所有答案都正确答案:d) 所有答案都正确18. 数据库中的事务是?a) 一条SQL语句b) 一组SQL语句c) 一个数据库操作d) 一个用户操作答案:b) 一组SQL语句19. 数据库管理系统(DBMS)的作用是什么?a) 存储和管理数据b) 控制和管理数据库访问c) 进行数据库备份和恢复d) 所有答案都正确答案:d) 所有答案都正确20. 数据库中的事务日志是用来做什么?a) 记录数据库的结构b) 记录数据库的访问权限c) 记录数据库操作的序列d) 记录数据库查询结果答案:c) 记录数据库操作的序列第二部分:填空题(共10题,每题2分,共20分)1. 触发器是通过在数据库中定义______,在特定的数据更新、插入、删除等操作发生时被自动执行。
数据库系统试题及答案一、选择题(每题2分,共20分)1. 数据库管理系统(DBMS)的主要功能不包括以下哪一项?A. 数据定义B. 数据操纵C. 数据传输D. 数据控制答案:C2. 关系型数据库中,关系是指什么?A. 数据库B. 表C. 字段D. 记录答案:B3. 在关系型数据库中,以下哪个概念用于表示表之间的关系?A. 索引B. 视图C. 外键D. 约束答案:C4. SQL语言中的SELECT语句用于执行哪种操作?A. 插入数据B. 删除数据C. 查询数据D. 更新数据答案:C5. 在数据库设计中,规范化的主要目的是?A. 提高查询速度B. 减少存储空间C. 减少数据冗余D. 增加数据安全性答案:C6. 数据库系统中,事务的ACID属性不包括以下哪一项?A. 原子性B. 一致性C. 隔离性D. 持久性答案:D7. 数据库的并发控制主要解决什么问题?A. 数据丢失B. 数据冗余C. 数据不一致D. 数据安全性答案:C8. 在数据库中,索引用于提高哪种操作的效率?A. 插入B. 删除C. 查询D. 更新答案:C9. 数据库的备份和恢复机制主要用于解决什么问题?A. 数据丢失B. 数据冗余C. 数据不一致D. 数据安全性答案:A10. 在数据库系统中,死锁是指什么?A. 数据丢失B. 数据冗余C. 两个或多个事务相互等待对方释放资源D. 数据不一致答案:C二、填空题(每题2分,共20分)1. 数据库系统的核心是________。
答案:数据库管理系统(DBMS)2. 在关系型数据库中,一个表由________和________组成。
答案:行和列3. 数据库的三级模式包括外模式、概念模式和________。
答案:内模式4. SQL语言可以分为数据定义语言(DDL)、数据操纵语言(DML)和________。
答案:数据控制语言(DCL)5. 在数据库设计中,第一范式(1NF)要求表中的每一列都是________。
SQL数据库面试题以及答案(2012-07-26 22:52:54)转载▼分类:程序世界标签:叶平三门c课程学号杂谈Student(S#,Sname,Sage,Ssex) 学生表 S#:学号;Sname:学生姓名;Sage:学生年龄;Ssex:学生性别Course(C#,Cname,T#) 课程表 C#,课程编号;Cname:课程名字;T#:教师编号SC(S#,C#,score) 成绩表 S#:学号;C#,课程编号;score:成绩Teacher(T#,Tname) 教师表 T#:教师编号; Tname:教师名字问题:1、查询“001”课程比“002”课程成绩高的所有学生的学号;select a.S# from (select s#,score from SC where C#='001') a,(select s#,scorefrom SC where C#='002') bwhere a.score>b.score and a.s#=b.s#;2、查询平均成绩大于60分的同学的学号和平均成绩;select S#,avg(score)from scgroup by S# having avg(score) >60;3、查询所有同学的学号、姓名、选课数、总成绩;select Student.S#,Student.Sname,count(SC.C#),sum(score)from Student left Outer join SC on Student.S#=SC.S#group by Student.S#,Sname4、查询姓“李”的老师的个数;select count(distinct(Tname))from Teacherwhere Tname like '李%';5、查询没学过“叶平”老师课的同学的学号、姓名;select Student.S#,Student.Snamefrom Studentwhere S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平');6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;select Student.S#,Student.Sname from Student,SC whereStudent.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002');7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;select S#,Snamefrom Studentwhere S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher whereTeacher.T#=Course.T# and Tname='叶平'));8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;Select S#,Sname from (selectStudent.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 <score;9、查询所有课程成绩小于60分的同学的学号、姓名;select S#,Snamefrom Studentwhere S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);10、查询没有学全所有课的同学的学号、姓名;select Student.S#,Student.Snamefrom Student,SCwhere Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course);11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#='1001';12、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名;select distinct SC.S#,Snamefrom Student,SCwhere Student.S#=SC.S# and C# in (select C# from SC where S#='001');13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;update SC set score=(select avg(SC_2.score)from SC SC_2where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='叶平');14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;select S# from SC where C# in (select C# from SC where S#='1002') group by S# having count(*)=(select count(*) from SC whereS#='1002');15、删除学习“叶平”老师课的SC表记录;Delect SCfrom course ,Teacherwhere Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平';16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号、2、号课的平均成绩;Insert SC select S#,'002',(Select avg(score)from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002');17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,,数据库,企业管理,英语,有效课程数,有效平均分SELECT S# as 学生ID,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 数据库,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企业管理,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英语 ,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均成绩FROM SC AS tGROUP BY S#ORDER BY avg(t.score)18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分SELECT L.C# As 课程ID,L.score AS 最高分,R.score AS 最低分FROM SC L ,SC AS RWHERE L.C# = R.C# andL.score = (SELECT MAX(IL.score)FROM SC AS IL,Student AS IMWHERE L.C# = IL.C# and IM.S#=IL.S#GROUP BY IL.C#)ANDR.Score = (SELECT MIN(IR.score)FROM SC AS IRWHERE R.C# = IR.C#GROUP BY IR.C#);19、按各科平均成绩从低到高和及格率的百分数从高到低顺序SELECT t.C# AS 课程号,max(ame)AS 课程名,isnull(AVG(score),0) AS 平均成绩,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分数FROM SC T,Coursewhere t.C#=course.C#GROUP BY t.C#ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '001' THEN 1 ELSE 0 END) AS 企业管理及格百分数,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 马克思平均分,100 * SUM(CASE WHEN C# = '002' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) AS 马克思及格百分数 ,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分,100 * SUM(CASE WHEN C# = '003' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分数,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 数据库平均分,100 * SUM(CASE WHEN C# = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 数据库及格百分数 FROM SC21、查询不同老师所教不同课程平均分从高到低显示SELECT max(Z.T#) AS 教师ID,MAX(Z.Tname) AS 教师姓名,C.C# AS 课程ID,MAX(ame) AS 课程名称,AVG(Score) AS 平均成绩FROM SC AS T,Course AS C ,Teacher AS Zwhere T.C#=C.C# and C.T#=Z.T#GROUP BY C.C#ORDER BY AVG(Score) DESC22、查询如下课程成绩第 3 名到第 6 名的学生成绩单:企业管理(001),马克思(002),UML (003),数据库(004)[学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩SELECT DISTINCT top 3SC.S# As 学生学号,Student.Sname AS 学生姓名 ,T1.score AS 企业管理,T2.score AS 马克思,T3.score AS UML,T4.score AS 数据库,ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as 总分FROM Student,SC LEFT JOIN SC AS T1ON SC.S# = T1.S# AND T1.C# = '001'LEFT JOIN SC AS T2ON SC.S# = T2.S# AND T2.C# = '002'LEFT JOIN SC AS T3ON SC.S# = T3.S# AND T3.C# = '003'LEFT JOIN SC AS T4ON SC.S# = T4.S# AND T4.C# = '004'WHERE student.S#=SC.S# andISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)NOT IN(SELECTDISTINCTTOP 15 WITH TIESISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)FROM scLEFT JOIN sc AS T1ON sc.S# = T1.S# AND T1.C# = 'k1'LEFT JOIN sc AS T2ON sc.S# = T2.S# AND T2.C# = 'k2'LEFT JOIN sc AS T3ON sc.S# = T3.S# AND T3.C# = 'k3'LEFT JOIN sc AS T4ON sc.S# = T4.S# AND T4.C# = 'k4'ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) +ISNULL(T3.score,0) + ISNULL(T4.score,0) DESC);23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]SELECT SC.C# as 课程ID, Cname as 课程名称,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85],SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70],SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS [70 - 60],SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS [60 -]FROM SC,Coursewhere SC.C#=Course.C#GROUP BY SC.C#,Cname;24、查询学生平均成绩及其名次SELECT 1+(SELECT COUNT( distinct 平均成绩)FROM (SELECT S#,AVG(score) AS 平均成绩FROM SCGROUP BY S#) AS T1WHERE 平均成绩 > T2.平均成绩) as 名次,S# as 学生学号,平均成绩FROM (SELECT S#,AVG(score) 平均成绩FROM SCGROUP BY S#) AS T2ORDER BY 平均成绩 desc;25、查询各科成绩前三名的记录:(不考虑成绩并列情况)SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 3 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#;26、查询每门课程被选修的学生数select c#,count(S#) from sc group by C#;27、查询出只选修了一门课程的全部学生的学号和姓名select SC.S#,Student.Sname,count(C#) AS 选课数from SC ,Studentwhere SC.S#=Student.S# group by SC.S# ,Student.Sname havingcount(C#)=1;28、查询男生、女生人数Select count(Ssex) as 男生人数 from Student group by Ssex having Ssex='男';Select count(Ssex) as 女生人数 from Student group by Ssex having Ssex='女';29、查询姓“张”的学生名单SELECT Sname FROM Student WHERE Sname like '张%';30、查询同名同性学生名单,并统计同名人数select Sname,count(*) from Student group by Sname having count(*)>1;;31、1981年出生的学生名单(注:Student表中Sage列的类型是datetime)select Sname, CONVERT(char (11),DATEPART(year,Sage)) as agefrom studentwhere CONVERT(char(11),DATEPART(year,Sage))='1981';32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列Select C#,Avg(score) from SC group by C# order by Avg(score),C# DESC ;33、查询平均成绩大于85的所有学生的学号、姓名和平均成绩select Sname,SC.S# ,avg(score)from Student,SCwhere Student.S#=SC.S# group by SC.S#,Sname havingavg(score)>85;34、查询课程名称为“数据库”,且分数低于60的学生姓名和分数Select Sname,isnull(score,0)from Student,SC,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# and ame='数据库'and score <60;35、查询所有学生的选课情况;SELECT SC.S#,SC.C#,Sname,CnameFROM SC,Student,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# ;36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数;SELECT distinct student.S#,student.Sname,SC.C#,SC.scoreFROM student,ScWHERE SC.score>=70 AND SC.S#=student.S#;37、查询不及格的课程,并按课程号从大到小排列select c# from sc where scor e <60 order by C# ;38、查询课程编号为003且课程成绩在80分以上的学生的学号和姓名;select SC.S#,Student.Sname from SC,Student where SC.S#=Student.S# and Score>80 and C#='003';39、求选了课程的学生人数select count(*) from sc;40、查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩select Student.Sname,scorefrom Student,SC,Course C,Teacherwhere Student.S#=SC.S# and SC.C#=C.C# and C.T#=Teacher.T# and Teacher.Tname='叶平' and SC.score=(select max(score)from SC where C#=C.C# );41、查询各个课程及相应的选修人数select count(*) from sc group by C#;42、查询不同课程成绩相同的学生的学号、课程号、学生成绩select distinct A.S#,B.score from SC A ,SC B where A.Score=B.Score and A.C# <>B.C# ;43、查询每门功成绩最好的前两名SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 2 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#;44、统计每门课程的学生选修人数(超过10人的课程才统计)。