知识点
- 数据模型三要素:数据结构、数据操作和数据完整性约束。
- 数据库系统核心:数据库管理系统。
- 数据完整性约束包括:实体完整性、参照完整性和用户定义的完整性
- 三级模式是指数据库系统的外模式、模式和内模式
- 两极映像:外模式/模式映像:保证了程序数据的逻辑独立性;模式/内模式映像:保证了数据与程序的物理独立性。
- 第一范式:不包含重复组的关系;第二范式:R∈ 1NF,R中的每个非主属性都完全函数依赖于主键;第三范式:R∈ 2NF, 所有非主属性都不传递函数依赖于主键
- SQL Server 2017版本:Enterprise(企业版)、Standard(标准版)、Web、Develop(开发版)、Express(简易版)
- 实例:每在一台计算机上安装一次SQL Server就会生成一个实例。
- 系统数据库:master:用于记录SQL Server实例的所有系统级信息; msdb:用于SQL Server代理计划警报和作业,保存调度报警、作业等; model:用作SQL Server实例上创建的所有数据库的模板; tempdb:全局资源,可连接到SQL Server实例或SQL数据库的所有用户使用。
- 数据存储的基本单位是数据页(Page,页)
- 数据库的组成:数据文件和日志文件
- SQL(Structured Query Language,结构化查询语言)
- 架构:是数据库下的一个逻辑命名空间,可以存放表、视图等数据库对象,它是一个数据库对象容器。
- Top结果集中前几行数据;into找表;group by 分组;order by 排序;
- 局部变量用@开头,全局变量用@@开头
- 自连接:物理上是一张表,逻辑上是两张表。
- 聚集索引与目录类似,非聚集索引与术语表类似。
- 提高数据查询效率:分区表和索引
- 标量函数只返回单个数据值,而表值函数是返回一个表。
- 表值函数分为内联表值函数和语句表值函数。
- 游标(cursor)使用步骤:(1)声明游标:declare cursor_name cursor for select…… (2)打开游标:open cursor_name; (3)提取数据:fetch next from cursor_name; (4)关闭游标:close cursor_name; (5)释放游标:deallocate cursor_name
- SQL Server支持两种类型登录账户:Windows授权用户,来自Windows的用户和组;SQL授权用户,来自非Windows的用户。
- 安全认证过程:连接权、访问权、操作权。
- 用户权限相同,使用角色。
- 数据集成服务SSIS(SQL Server Integration Service)
简答题
- 索引的代价:首先索引在数据库中会占用一定的存储空间。其次,在对数据进行插入、更改和删除操作时,为了使索引与数据保持一致,还需要对索引进行相应的维护。对索引的维护是需要时间成本的,因此利用索引提高查询效率是以空间和时间成本为代价的。
- 非聚集索引与聚集索引有以下2个重要差别:建有非聚集索引的表的数据并不按非聚集索引关键字值的顺序进行物理排序;非聚集索引B树的叶级节点不是存放数据的数据页。
- 视图与表的区别:视图是由从数据库的基本表中选取出来的数据组成的逻辑窗口,是基本表部分行、列数据的组合。与基本表不同的是,视图是一个虚表,数据库中只存储视图的定义,而不存储视图所包含的数据,这些数据仍存放在原来的基本表中。
- 视图好处一:视图数据始终与基本表数据保持一致。当基本表中的数据发生变化时,从视图中查询到的数据也随之变化。因为每次从视图查询数据时都是执行定义视图的查询语句,即最终都是落实到对基本表数据的查询。好处二:节省存储空间。
- 游标两部分内容:游标结果集:由定义游标的SELECT语句返回的结果的集合;游标当前行指针:指向该结果集中的某一行的指针。
- 游标的特点:允许定位结果集中的特定行;允许从结果集的当前位置检索一行或多行;支持对结果集中当前行数据的修改;为由其他用户对显示在结果集中的数据所做的更改提供不同级别的可见性支持。
- 角色分为系统预定义的固定角色和用户根据实际需要定义的用户角色。系统角色根据其作用范围的不同分为固定的服务器角色和固定的数据库角色;服务器角色是为整个服务器设置的,而数据库角色是为具体的数据库设置的。
- 对用户数据库进行备份的情况:创建数据库之后或者在数据库中批量加载数据之后;创建索引之后;执行清理事务日志的操作之后;执行大容量数据操作之后。
- 常用的备份策略:仅使用完整数据库备份;完整数据库备份+日志备份;完整数据库备份+差异数据库备份+日志备份
应用题
1.T-SQL语言实现累加100求和
DECLARE @sum int,@i int;
set @sum=0;
set @i=1;
while @i<=100
begin
set @sum=@sum+@i;
set @i=@i+1;
end
print @sum
2.实现阶乘求和(例:求阶乘5的和)
DECLARE @j int,@sum int,@i int;
set @j=1;
set @sum=0;
set @i=1;
while @i<=5
begin
set @j=@j*@i;
set @sum=@sum+@j;
set @i=@i+1;
end
print @sum
3.将E-R