未来教育第七章题目笔记_数据库及数据库对象
2、建立索引是加快查询速度的有效手段,一般格式为:
CREATE [UNIQUE] INDEX<索引名>
ON <表名> (<列名> [<次序>]、<列名> [<次序>]…)INCLUDE(属性名)
WHERE 约束条件
3、数据表中对于某一数据列的唯一性约束有UNIQUE约束和PRIMARY约束
PRIMARY KEY约束多为强调主键不可出现相同元素,但想要强制一列或多列组合(不是主键)的为一项就要使用UNIQUE。UNIQUE约束允许出现空值,PRIMARY KEY约束不允许出现空值
4、创建新的数据库时,用户数据库中主要数据文件的大小不能小于model数据库的大小。
5、聚簇(集)索引是指索引项的顺序与表中记录的物理顺序一致的索引组织
6、在数据库中,常用的一个流水编号通常会使用identity栏位进行设置,好处是不会重复,而且是唯一的。
7、创建索引视图的步骤:
①使用SCHEMABINDIND子句来创建一个视图
它只能引用同一数据库中的基表,而不是其他标准视图
所有引用的函数必须是确定性的,行集函数、派生表、子查询都不能在索引视图中使用。
②在视图上创建一个唯一索引
③在聚集索引的基础上根据需求创建非聚集索引。
④创建并使用索引视图
8、ALTER DATABASE命令中的FILENAME对应的代码需要带上单引号,FILEGROWTH如果加上%则为百分比,如果省略%,数据库系统则默认采用增加单位是MB。
12、索引视图可以提高下列查询类型的性能:
①处理大量行的联接和聚合
②许多查询经常连接和聚合的操作
③决策支持工作负荷
不会提高下列:
①具有大量写操作的OLTP系统
②具有大量更新的数据库
③不涉及聚合或联结的查询
④GROUP by键具有高基数度的聚合。高基数度表示列含有许多不同的值。当GROUP by后跟的列值包含许多不同的值,导致视图图和表的行数相等,那么该列使用索引视图并不能提高
13、如果数据文件中的数据记录的排列顺序与索引文件中索引项的排列顺序相一致,则该索引文件称为聚集索引。索引结构中的记录是由索引列列值和它相应的指针构成。
14、用户数据库的数据文件的主要扩展名是MDF
15、分类和聚类的区别在于,分类事先知道有哪些类别可以分,聚类事先不知道将要分成哪类,需有聚类算法来自动确定。
16、每个数据库有一个主数据文件和若干个从文件。文件是数据库的物理体现。
17、每个数据库必须至少有一个日志文件,也可以有多个日志文件。日志文件不包括在文件组内,一个文件不可以是多个文件组的成员。
18、分离数据库时不仅分离数据库文件,还要一起分离日志文件。日志文件是附加数据库的重要组成部分。日志空间与数据空间是分开管理的,但可以放在相同的磁盘和不同的磁盘上。
19、分区表的本质是把符合不同标准的数据子集存储在某个数据库的一个或多个文件组中,通过原数据来表述数据存储的逻辑地址。
20、CLUSTERED表示建立的是聚簇索引,即索引项的顺序与表中记录的物理顺序一致
NONCLUSTERED是非聚集索引
22、次要数据文件可以放在主文件组中。
24、是否创建分区表主要取决于表当前的数据量大小以及将来的数据量大小,同时还取决于对表中的数据如何进行操作。
25、通过视图创建唯一聚簇索引的方式可使视图的结果集保存到数据库中。这种视图叫做索引视图,也称为索引视图。
27、主要数据文件的推荐扩展名是.mdf,次要数据文件的推荐扩展名是.ndf。如果在定义数据文件时没有指定其所属的文件组,则新建的数据文件将被分配到默认文件组。
28、SQL server实例的作业信息存储在msdb数据库中。作业是在SQLserver中定义的自动执行的一系列操作的集合,作业的执行不需要任何人工干预。
29、创建分区方案时指定的文件组数不得少于分区函数生成的分区数
32、一个数据库的日志文件的大小和数据文件的大小没有联系
37、创建分区表的步骤是创建分区函数、创建分区方案、使用分区方案创建表;
创建分区函数的目的是告诉数据库管理系统以什么方式对表进行分区;
创建分区方案的作用是将分区函数生成的分区映射到文件组中。
不同的分区可以映射到相同的数据库文件中。
40、当表的行数远远大于索引的数目时,使用这种方式可以明显加快表的查询速度。对于复合索引:
①对一张表来说,如果有一个复合索引就没必要同时建立一个单索引
②如果查询条件需要,可以在已有单索引的情况下添加复合索引
③对于复合索引,最好将where条件顺序下作为索引列的顺序
41、在删除架构时,如果使用CASCADE选项,则会将该架构中的所有架构对象一起全部删除,如果使用RESTRICT选项,如果被删除的架构中包含架构对象,则拒绝删除此架构。
同一数据库的不同架构下表名可以相同。
43、每次启动SQLserver时都会重新创建tempdb数据库,因此若被破坏,没必要恢复。
44、主要数据文件大小最小不能小于3MB。
45、主(PRIMARY)文件组是系统定义好的一个文件组,它包含主要数据文件和任何没有明确分配给其他文件组的其他数据文件。系统表的所有页均分配在主文件组中。日志文件不包括在文件组内。
46、CAREATE PARTITION FUNCTION PF1(int) AS RANGE LEFT FOR VALUES(…n),创建的分区数为n+1,LEFT关键字在指定分区间隔是由数据库引擎按升序从左往右排列时,指定边界间隔处于左侧。(0,1],(1,100],(100,200],(20,…)
47、创建数据库用CAREAT,修改用ALTER,删除数据库用DROP
49、当用户创建一个数据库时,系统自动将model数据库中的全部内容复制到新建数据库追。
50、日志文件不包括在文件组内。日志文件和数据文件是分开管理的
53、tempdb数据库用于保存临时对象或中间结果集,用户创建的局部和全局临时表被自动放置在该数据库中。
54、架构(模式)是数据库下一个逻辑命名空间,可以存放表、视图等数据库对象。一个数据库可以包含多个架构,同一数据库中架构名必须相同,架构名可以是显示的也可以是DBMS提供默认名。
59、一个表只能有一个聚集索引,因为一个表的物理顺序只有一种情况。
聚集索引的目的是加快数据查询的速度
64、删除数据库中的用户语法:DROP User U1
68、在创建存储过程时可以声明一个或多个参数,除非定义了参数的默认值或将参数设置为等于另外一个参数,否则用户在调用存储过程时必须为每个声明的参数提供值。一个存储过程最多可以有2100个参数。
一个存储过程可以有多个输出参数,不能有多个输入参数。
69、如果在创建数据库时没有设置自动增长方式,则数据库在使用一段时间后可能出现数据库空间不足的情况。数据空间不够则不能再插入数据,日志空间不够说明不能再对数据库进行任何修改操作。
扩大数据库空间的方法:
①扩大数据库中已有文件的大小
②为数据库添加新的文件
70、创建分区方案的SQL语句是:
CREATE PARTITION SCHEMA …1
AS PARTITION …2
[ALL] TO ({,…n})
…n指定用来持有…1指定的分区的文件组名。
73、数据库所包含的文件及文件存储位置信息均保存在主要数据文件中。
78、在student表的sname列上看,建立非聚集索引:
CREATE NONCLUSTERED INDEX idx1 ON (student(sname))