SQL Server 数据库
1.1 系统数据库
系统自带数据库包括
- master:记录SQL server实例以外的所有系统垃圾,各种各样的配置、登录、元数据等等
- msdb:报警、调度、记录DMA操作等等
- model:用于SQL server创建用例的模板
- tempdb:存放临时数据的数据库,重启SQL server就会重建tempdb
- Resource:只读数据库,包含系统对象
1.2 SQL server数据库组成
1.数据文件
分为主要文件和次要文件
- 主要文件 后缀为.mdf 大小不得小于3MB
- 次要文件 后缀为.ndf(数据文件中可以不包含次要文件)
2.日志文件
日志文件 后缀为.ldf用于存放恢复数据库所有的日志信息。每个数据库必须有至少一个日志文件
3.数据空间分配
- 在创建用户数据库时,model数据库将自动复制到新建用户数据库中,且所在是主要数据文件
- 在SQL server2008 中数据的存储分配单位是数据页(Page ,也简称页)一页是一块8KB(能用来存数据的只有8060B)的的连续磁盘空间,页是存储数据最小的单位,页的大小决定了数据库表中一行数据的最大大小(数据不允许跨页存储)
PS:一行数据是3000B,一页最多存下2行,也就是说有2060B是浪费的,空间利用率约等于75%
1.3 数据库文件组
数据库文件组==操作系统文件夹
文件组分两类:主文件组和用户定义的文件组
1.主文件组
主文件组(PRIMARY)是系统定义的。系统表的所有也均分配在主文件组
2.用户定义文件组
用户可以将次要或主要文件定义并分配到自定义的文件组上,并在创建在文件组上的表,以此提高查询效率
PS:
- 日志文件不包括在文件组之内,数据空间和日志空间是独立存在的
- 一个文件不能是多个文件组的成员
- 当文件组中有多个文件时,只有所有文件都填满后,所有文件才会循环自增长
1.4 数据库文件属性
- 文件名及位置
- 初始大小 不得小于model大小(也就是3MB)
- 增长方式 (默认自增长)
- 最大大小 (默认无限制)
1.5 用T—SQL语句创建数据库
CREATE DATABASE database_name
[ ON
[PRIMARY][<filespec>[,...n]]
[,<filegroup>[,...n] ]
[ LOG ON {<filespec> [,...n] } ]
]
]
<fliespec>::={
(NAME =logical_file_name,
FILENAME={'os_file_name'|'filestream_path'}
[,SIZE=size[KB|MB|GB|TB ] ]
[,MAXSIZE={max_size[KB|MB|GB|TB] |UNLIMITED }]
[,FILEGROWTH=growth_increment[KB|MB|GB|TB|%]]
)[,...n] }
<filegroup>::={
FILEGROUP filegroup_name [DEFAULT]
<filespec> [,...n] }
- 带有name的小写单词就不加以赘述了
- <filespec> 定义文件属性
- <filegroup> 文件组属性
- ON 指定数据文件
- PRIMARY 指定管理数据文件的主文件组
- LOG ON 指定日志文件
1.6 修改数据库
1.扩大数据库空间
2.收缩数据库空间
3.添加删除数据库文件
1.7 分离和附加数据库
2.1架构
1.定义架构
2.删除架构
3.1分区表
3.2创建分区表
1.创建分区函数
2.创建分区方案
4.1索引
1.创建索引
2.删除索引
5.1索引视图
5.2适合建立索引视图的场合
5.3定义索引视图
还没写完哈哈哈》》》》》》》这周写完