### SQL Server 达标考试知识点解析
#### 一、填空题知识点解析
1. **数据完整性**
- **实体完整性**: 指的是主键字段必须唯一且不能为空,用以确保每一行记录都能被唯一识别。
- **域完整性**: 限制列中的值必须符合该列的数据类型和定义范围,例如年龄列不能为负数。
- **参照完整性**: 在涉及到两个或多个表的关系时,确保外键引用的主键存在于对应的表中。
- **用户自定义完整性**: 用户可以设置某些特定的规则来限制数据的有效性,比如某列的取值范围。
2. **SQL Server 数据库类型**
- SQL Server 是一种**关系型**数据库管理系统,它基于关系模型进行设计和实现,支持SQL语言标准。
3. **登录身份验证模式**
- **Windows 身份验证**: 只允许Windows用户通过其Windows账户登录到SQL Server。
- **混合验证模式**: 允许用户既可以通过Windows账户登录,也可以通过SQL Server自身管理的用户账户登录。
4. **触发器类型**
- **INSERT 类型**: 当数据插入到表中时触发。
- **DELETE 类型**: 当数据从表中删除时触发。
- **UPDATE 类型**: 当数据更新时触发。
5. **约束的目的**
- **约束**是用来确保数据完整性的机制之一,通过定义表结构中的各种约束来强制执行业务规则。
6. **DATEADD 函数**
- `DATEADD(day, 10, '2005-12-22')` 表示从2005年12月22日开始加上10天的结果日期。
7. **SQL Server 安全性分类**
- **数据访问安全性**: 关注于谁能够访问数据以及如何访问。
- **数据运行安全性**: 涉及到数据处理过程中的安全性问题。
8. **数据库文件和事务日志文件扩展名**
- SQL Server 的**主数据库文件**扩展名为`.mdf`。
- **事务日志文件**扩展名为`.ldf`。
9. **HAVING 子句与 WHERE 子句的区别**
- **WHERE 子句**应用于单行过滤,而**HAVING 子句**用于过滤分组后的结果集。
10. **SQL 查询解析**
- 该查询语句的意思是:查找那些在SC表中成绩等于课程号为“002”的课程的所有成绩之和的学生学号。
11. **NOT NULL 属性**
- 当一个列被定义为**NOT NULL**时,意味着该列不允许为空。
12. **日期和字符串函数**
- `SELECT DAY('2004-4-6')` 返回的是日期的天数部分,即6。
- `LEN('我们快放假了.')` 返回的是字符串长度,即7个字符。
13. **LIKE 运算符**
- 用于模糊匹配字符串,例如`'%娟%'`表示匹配任何包含“娟”的字符串。
14. **SQL Server 提供的五种约束类型**
- **DEFAULT**: 为列设置默认值。
- **CHECK**: 定义列的取值范围或条件。
- **PRIMARY KEY**: 主键约束,用来确保列的唯一性。
- **UNIQUE**: 唯一键约束,与主键类似,但允许有NULL值。
- **FOREIGN KEY**: 外键约束,用于维护表之间的关系。
15. **数据库的三大范式**
- **第一范式(1NF)**: 确保表中的每一列都是不可分割的基本数据项。
- **第二范式(2NF)**: 在满足1NF的基础上,消除非主属性对码的部分依赖。
- **第三范式(3NF)**: 在满足2NF的基础上,消除非主属性对码的传递依赖。
16. **SQL Server 中日期的数据类型**
- SQL Server 支持多种日期时间数据类型,如`DATE`, `TIME`, `DATETIME`, `DATETIME2`等。
#### 二、简答题知识点解析
1. **逻辑运算符 AND 和 OR 的差异**
- **AND 运算符**要求连接的表达式都为真,最终结果才为真。
- **OR 运算符**则只需要其中一个表达式为真,最终结果即为真。
2. **相关子查询概念**
- 相关子查询是在外部查询的每一行上重复执行的子查询,通常与外部查询中的某一行有关联。
3. **主键与外键概念**
- **主键**是一张表中的一个或多个字段组合,用于唯一标识表中的每一条记录。
- **外键**用于建立表与表之间的联系,通常是另一个表的主键。
4. **索引的作用及其优缺点**
- **作用**: 加速数据检索的速度。
- **优点**: 大大提高查询性能。
- **缺点**: 创建和维护索引会占用磁盘空间,同时增加写操作的负担。
#### 三、代码题知识点解析
1. **学校图书馆借书信息管理系统**
- 使用SQL语句进行查询、更新和删除操作。
- 如何构建复杂的多表查询。
- 如何利用聚合函数进行数据汇总。
2. **表操作**
- 更新记录的语法。
- 查询特定条件下的数据。
- 删除符合条件的记录。
- 对数据进行统计分析。