sql数据库常见的面试题
根据提供的文件信息,我们可以整理出以下SQL数据库相关的知识点: ### SQL数据库常见面试题解析 #### 1. MSSQL Server数据库信息系统的输出是什么? - A. Asp_dbhelp - B. sp_db - C. sp_help - D. sp_helpdb **正确答案:** D. sp_helpdb - **解析:** 在SQL Server中,`sp_helpdb` 是一个系统存储过程,用于获取关于指定或所有数据库的信息,包括数据库名称、状态、创建时间等。 #### 2. SQL中删除命令是哪个? - A. DELETE - B. DROP - C. CLEAR - D. REMOVE **正确答案:** B. DROP - **解析:** `DROP` 命令用于删除表、视图、索引等数据库对象。而 `DELETE` 命令用于从表中删除行。 #### 3. 关系数据库是什么? - A. 一种识别唯一实体的方法 - B. 唯一值 - C. 只能表示一种关系 - D. 关系集 **正确答案:** A. 一种识别唯一实体的方法 - **解析:** 关系数据库是一种结构化数据存储方式,它通过表格形式来组织数据,并通过主键和其他键来标识唯一的实体。每个表代表一种实体类型,并通过其列来定义实体属性。 #### 4. DBCC SHRINKDATABASE(Sample, 25)中的25表示什么? - A. 25MB - B. 剩余空间占比25% - C. 每个文件组25% - D. 特定值 **正确答案:** B. 剩余空间占比25% - **解析:** `DBCC SHRINKDATABASE` 是SQL Server中的命令,用于减少数据库占用的空间。当指定一个百分比时,如这里的25%,表示目标文件将被收缩到该百分比的剩余空间,即数据库文件将被调整至达到总容量的25%未使用空间。 #### 5. 某公司创建员工保险信息的SQL Server 2000数据库,使用如下命令: ```sql CREATE TABLE Policy ( PolicyNumber int NOT NULL DEFAULT(0), InsuredLastName char(30) NOT NULL, InsuredFirstName char(20) NOT NULL, InsuredBirthDate datetime NOT NULL, PolicyDate datetime NOT NULL, FaceAmount money NOT NULL, CONSTRAINT PK_Policy PRIMARY KEY (PolicyNumber) ); ``` 若每家保险公司只能有一个Policy编号,则应该选择哪种触发器? - A. INSTEAD OF INSERT 触发器 - B. INSTEAD OF UPDATE 触发器 - C. AFTER UPDATE 触发器 - D. AFTER UPDATE DEFAULT 触发器 **正确答案:** A. INSTEAD OF INSERT 触发器 - **解析:** `INSTEAD OF INSERT` 触发器可以在执行插入操作之前拦截并替代该操作。在这里,为了确保每家保险公司只有一个Policy编号,可以使用此类触发器来检查在插入新记录之前是否已经存在相同的Policy编号。如果存在,则可以阻止插入操作。 #### 事务的概念 1. 什么是事务?事务有什么作用? - **事务**是指一系列数据库操作作为一个单元来执行,要么全部成功,要么全部失败。 - **作用**:事务可以确保数据的一致性和完整性。一旦事务启动,其中的所有操作都必须按顺序执行完成,如果过程中有任何一步失败,则整个事务都会回滚到初始状态。 2. 事务的特性(ACID)是什么? - **原子性(Atomicity)**:事务中的所有操作被视为一个不可分割的工作单元,要么全部完成,要么完全不执行。 - **一致性(Consistency)**:事务的执行使数据库从一个一致性的状态转移到另一个一致性的状态。 - **隔离性(Isolation)**:事务之间互相独立,一个事务的操作对其他事务是透明的。 - **持久性(Durability)**:一旦事务提交,它对数据库的更改是永久的,即使数据库发生故障也是如此。 3. 什么是锁?锁的作用是什么? - **锁**是数据库管理系统用来控制并发访问的一种机制。 - **作用**:锁可以防止多个事务同时修改同一数据项,从而避免数据不一致的问题。 4. 如何编写业务逻辑? - **编写业务逻辑**通常涉及定义和实现具体的业务规则,这些规则需要与数据库交互以确保数据的正确处理。 - 使用诸如 `CHECK` 约束和存储过程等数据库特性可以帮助确保数据的一致性和完整性。 - 编写业务逻辑时应考虑事务管理,确保业务操作的一致性和可靠性。 5. 什么是视图?视图有什么作用? - **视图**是一种虚拟表,其内容由存储在基本表中的数据组成。 - **作用**:视图简化了数据检索和操作,提供了一种更安全的数据访问方式,以及隐藏数据库的实际结构。 6. 事务处理示例 假设有一个学生选课系统,包含以下表结构: - S(S#, SN, SD, SA):S#, SN, SD, SA分别表示学号、姓名、所在系、年龄 - C(C#, CN):C#, CN分别表示课程号、课程名 - SC(S#, C#, G):S#, C#, G分别表示学号、课程号、成绩 1. 使用标准SQL查询选修了“计算机网络”课程的学生学号及姓名。 ```sql SELECT S#, SN FROM S WHERE S# IN ( SELECT S# FROM C, SC WHERE C.C# = SC.C# AND CN = '计算机网络' ); ``` 2. 使用标准SQL查询选修了课程号为C2的学生所在系。 ```sql SELECT SN, SD FROM S, SC WHERE S.S# = SC.S# AND SC.C# = 'C2'; ``` 3. 使用标准SQL查询未选修课程号为C5的学生姓名和所在系。 ```sql SELECT SN, SD FROM S WHERE S# NOT IN ( SELECT S# FROM SC WHERE C# = 'C5' ); ``` 4. 查询选修了课程的学生人数。 ```sql SELECT COUNT(DISTINCT S#) AS 学生 FROM SC; ``` 5. 查询选修了超过5门课程的学生姓名和所在系。 ```sql SELECT SN, SD FROM S WHERE S# IN ( SELECT S# FROM SC GROUP BY S# HAVING COUNT(DISTINCT C#) > 5 ); ``` 以上问题覆盖了SQL数据库面试中常见的知识点,包括基础概念、事务处理、数据操作语言(DML)、数据定义语言(DDL)等方面的内容,对于准备SQL数据库面试的人来说是非常有价值的参考资料。
- smile_chizui2012-08-01对于新手挺好的
- 粉丝: 3
- 资源: 58
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助