Sqlserver2012 学习总结笔记
第一节 创建和维护数据库
sqlserver的版本
企业版(Enterprise) 是一种综合的数据平台,可以为运行安全的业务关键应用程序提供企业级可扩展性、性能、高可用性和高级商业智能功能。
标准版(Standard) 是一个提供易用性和可管理性的完整数据平台,部门级的应用提供支持。
开发版(Developer) 支持开发人员构建基于 SQL Server 的任一种类型的应用程序,拥有企业级的特性,但是有限制。
工作组版(Workgroup) 是运行分支位置数据库的理想选择,它提供一个可靠的数据管理和报告平台,其中包括安全的远程同步和管理功能。
网络版(Web) 对于为从小规模至大规模 Web 资产提供可扩展性和可管理性功能的 Web 宿主和网站来说成本低。
移动版(Compact) 3.5 免费提供,是生成用于基于各种 Windows 平台的移动设备、桌面和 Web 客户端的独立和偶尔连接的应用程序的嵌入式数据库理想选择。
免费版(Express) 适用于学习构建小型的应用。、
sqlserver的数据库分类
1.系统数据库
master 数据库:
master 数据库记录 SQL Server 系统的所有系统级别信息。它记录所有的登录帐户和系统配置设置。
master 数据库是这样一个数据库,它记录所有其它的数据库,其中包括数据库文件的位置。
master 数据库记录 SQL Server 的初始化信息,它始终有一个可用的最新 master 数据库备份。
msdb 数据库:
msdb 数据库供 SQL Server 代理程序调度警报和作业以及记录操作员时使用。
tempdb 数据库:
tempdb 数据库保存所有的临时表和临时存储过程。
model 数据库:
model 数据库用作在系统上创建的所有数据库的模板。当发出 CREATE DATABASE 语句时,新数据库的第一部分通过复制 model 数据库中的内容创建,剩余部分由空页填充。由于 SQL Server 每次启动时都要创建 tempdb 数据库,model 数据库必须一直存在于 SQL Server 系统中。
Resource 数据库:
Resource 数据库一个只读数据库,包含 SQL Server 包括的系统对象。系统对象在物理上保留在 Resource 数据库中,但在逻辑上显示在每个数据库的sys 架构中。
2.用户数据库
sqlserver数据库的组成
sqlserver将数据库映射为一组可操作的文件:
数据文件
.mdf文件,主数据文件,只有一个,大小不得小于3Mb。
.ndf文件,次要数据文件,可以0个或多个,可以在一个或者多个磁盘存放。
日志文件
.ldf文件,事务日志文件,至少有一个文件。
数据库存储空间的分配
创建用户数据库时,model数据库会被自动的复制到新建的数据库。
数据库存储的最小单位是,数据页(page 简称 页)。
1页是8KB的连续的磁盘存储空间。
页的大小决定了数据库表一行数据的最大的大小。
行不可以跨页存储。
数据库文件组
俩种类型的文件组:
主文件组
包含主要的数据文件和任何没有明确分配的其他文件组的其他数据文件,系统表的所有表页都分配在主文件组中。
用户定义文件组:
在定义或者修改数据库时用 ‘FILEGROUP’关键字指定。
注意::
1.日志文件不在文件组中,日志文件和数据文件分开。
2.一个文件不可以时多个文件组成员。
3.若文件组含有多个文件,则在所有文件被填满后才会自动循环增长。
4.文件加入数据库后,不能移动到其他文件组。
5.只能指定一个文件组为默认文件组。
数据文件的属性
定义数据文件和日志文件的所有信息:
文件名及位置:
逻辑文件名,物理文件名。
初始大小:
不能小于model数据库主要文件的大小。
增长方式:
可以指定文件是否自动增长(默认)
文件大小:
文件增长的最大限制,默认无限制。
T-sql创建数据库
1.sql server management studio
2.T-sql创建数据库
T-SQL格式语法举例:
create database
db_zhj --数据库名字
on
(
name=‘db_zhj_data’,–逻辑数据文件名
filename=‘E:\gongzuo_hc\db_service_data\sqlserver_2012_home\userdb_data\data\db_zhj_data.mdf’,–主数据库文件逻辑名字
size=3mb,–主数据文件初始化大小
maxsize=50Mb,–主数据文件最大大大小
filegrowth=10% --超过初始化大小后文集自动增长率。
)
log on
(
name=‘db_zhj_log’,–逻辑日志文件名
filename=‘E:\gongzuo_hc\db_service_data\sqlserver_2012_home\userdb_data\log\db_zhj_log.ldf’,–日志存放的逻辑物理名
size=2mb,–日志初始化大小
maxsize=50Mb,–日志最大大小
filegrowth=1mb --超过初始化大小后文集自动增长率。
)
go
修改数据库
收缩数据库空间:
即释放数据库中未使用的空间,
收缩从尾部开始:
自动收缩:auto_shrink 默认 false
手工收缩:收缩数据库中某个文件的大小。
按比例收缩整个数据库大小。
添加删除数据库文件:
扩大指定文件的大小
alter database db_zhj
modify file(name=‘dbz_zhj’,size=8MB)
添加新的数据文件
alter database db_zhj
add file(
name=‘db_zhj_data1’,–逻辑数据文件名
filename=‘E:\gongzuo_hc\db_service_data\sqlserver_2012_home\userdb_data\data\db_zhj_data1.ndf’,–次数据库文件逻辑名字.扩展名字为ndf
size=3mb,–主数据文件初始化大小
maxsize=50Mb,–主数据文件最大大大小
filegrowth=10% --超过初始化大小后文集自动增长率。
)
注意:::
添加文件时候,每个文件组的数据文件是按比例填充,日志文件是依次添加。
收缩整个数据库的大小
dbcc shrinkdatabase(db_zhj,20) 收缩数据库db_zhj所有文件为20%可以空间
收缩指定文件的大小
dbcc shrinkdatabase(db_zhj_data1,4) 收缩数据库的文件db_zhj_data1为4mb
删除数据库文件
alter database db_zhj
remove file db_zhj_data1
注意:::
文件为空才可以被删除。
分离和附加数据库
分离数据库:作用是实现数据库从一台计算机移动到另一台计算机上,不需要重建。
从实例中删除,但是不删除数据文件和日志文件,保持了数据文件和日志文件的完整性。
使用sp_detach_db系统存储过程。
eg: exec sp_detach_db ‘数据库名字’ true
附加数据库:将分离的数据库附加到数据库管理当中去。
必须指定主数据文件的物理存储位置和文件名字。
create databa db_zhj on
(filename='E:\gongzuo_hc\db_service_data\sqlserver_2012_home\userdb_data\data\db_zhj_data.mdf') for attach --for attach 是附加的意思
第二节 架构
架构(Schema ,也称为模式),
是数据库的一个逻辑命名空间,是数据库对象的容器,一个数据库包含多个架构或者一个,同一个数据库架构名字唯一。
创建架构: create schema 架构名字 authorization 用户名字
删除架构: drop schema 架构名字
第三节 分区表
1.基本概念:分区表是把表中的数据水平分割成不同的子集,并将数据子集存放在一个或者多个文件组中。物理上是大表分成几个小表,逻辑上还是一个表。
合理分区可以提高数据库的性能。
是否创建分区表取决于表当前数据量的大小,以及