2.1SQLServer 2012数据库概述
2.1.1数据库文件
2.1.2数据库文件组
2.1.3数据库对象
2.1.4系统数据库
2.2创建数据库(使用create database语句)
2.3修改数据库(使用alter database语句)
2.4删除数据库(使用drop database语句)
2.5查看数据库信息(T-SQL语句)
2.6备份数据库
2.7附加数据库
2.1SQLServer 2012数据库概述
● 数据库是用来存储数据和数据库对象的逻辑实体,数据库管理系统的核心内容。
2.1.1数据库文件
● 主数据文件
○ 每个数据库有且仅有一个主数据文件,他用于存放数据和数据库的启动信息,其默认扩展名为.mdf。
● 次数据文件
○ 如果数据库中的数据量过大,可以将一部分数据存存在此数据文件中,有了此数据文件就可以将数据存在不同的磁盘中,便于操作管理
○ 此数据库是可选的,一个数据库可以没有次数据文件,也可以有多个次数据文件,它的默认扩展名为.ndf。
● 事物日记文件
○ 事物日记文件可以保证数据库操作的一致性和完整性,它使用事物日记文件来记录所有事物及每个事物对数据库所做的操作。
○ 如果数据库损坏了,可用事物日记文件恢复。
○ 一个数据库至少有一个事物日记文件,它的默认扩展名为.ldf。
2.1.2数据库文件组
● 为了方便管理,可以将多个数据文件组织为一组,称为文件组,每个文件组对应一个组名。
● 用户可以将文件组的文件存放在不同的磁盘中,以便提高数据库的访问性能。
● 在SQLSever 2012中,文件组有两种类型
○ 主文件组
■ 主数据文件所在的组称为主文件组,在创建数据库时,如果用户没有定义文件组,
■ 系统会自动建立主文件组,当数据文件没有指定文件组时,默认都在主文件组中
○ 次文件组
■ 用户定义的文件组称为次文件组,在创建表时不能将表放在某个文件中,只能指定将表放在某个文件组中。
○ 数据库文件和文件组遵守以下规则
■ 一个文件或文件组只能被一个数据库使用。
■ 一个数据文件只能属于一个文件组。
■ 事物日记文件不能属于文件组。
2.1.3数据库对象
● 数据库对象的含义
○ SQLSever数据库中的数据在逻辑上被组织成一系列对象,当一个用户连接到数据库中,他所看到的是逻辑对象,而不是物理的数据库文件
○ 数据库对象就是存储、管理和使用数据的不同结构形式,包括数据表、视图、存储过程、触发器、类型、规则、默认值、索引。
● 对象标识符
○ 在SQLSever中的所有对象都需要命名,部分命名对象。命名对象 命名对象 命名对象Database(数据库) Tables(表) Columns(列)Rules(规则) Constras(约束) Defaults(默认值)Indexes(索引) Filegroups(文件组) Roles(角色)
● 对象标识符命名规则
○ 名称长度不能超过128个字符,本地临时表的名称不能超过116个字符。
○ 名称的第一个字符必须是英文字母、下划线、中文、@、#等符号
○ 与SQLSerer关键字相同火包寒内嵌空格的名称必须使用双引号" "或[ ]
2.1.4系统数据库
● 在SQLSever系统中,数据库可分为“系统数据库”(内置)和“用户数据库”(自创)两大类,系统数据库主要是用于系统管理。
● Master数据库
○ 追踪与记录SQL Server相关系统信息,这些信息包括
■ SQL Server的初始化信息。
■ 所有的登录账户信息。
■ 所有的系统配置设置。
■ 其他数据库的相关信息。
○ Master数据库非常重要,如果Master数据库不可用,那么SQL Server数据库无法启动,在使用Master数据库时,进行了数据库的创 建、修改或删除操作,更改了服务器或数据库的配置值,修改或添加了登录账户等操作时,应对Master数据库进行备份.
● Model数据库
○ Model数据库时所有的新建数据库的模板,即所有的数据库中的所有内容都是从模板数据库中复制过来的。
○ 如果Model数据库被修改了,那么以后创建的所有数据库豆浆继承这些修改。
● Msdb数据库
○ Msdb数据库是代理服务器数据库,也是由SQL Sever系统使用的数据库,通常由SQLServer代理用来计划报警和作业,也可由如 Server Broker和数据库邮件等功能来使用。
○ 有关数据库备份和还原的记录也会在该数据库中。● Tempdb数据库
○ Tempdb数据库用于为所有临时表,临时存储过程提供存储空间,也为所有其它临时存储要求提供空间。
○ Tempdb是一个全局资源,所有连接到SQL Server实例用户都可以使用。
○ 每次启动SQL Server时,系统都要重新创建Tempdb,以确保该数据库为空,当SQL Server停止运行时,Tempdb中的数据会自动删除
● Resource数据库
○ Resource数据库用来存储SQL Server所有的系统对象。
○ 该库是只读数据库,他不户存储用户数据或用户的元数据。
○ 他与Master数据库的区别在于Master数据库存放的是系统级的信息,不是所有对象。
2.2创建数据库(使用create database语句)
● 创建简单的数据库
● 创建数据文件和日记文件的数据库create database db2on
#用于定义数据库的数据文件(name=db2_one,filename=‘d:\test\db2.mdf’, #指定数据文件或事物日志文件的文件名和路径size=10, #指定数据文件或事物日志文件的初始容量maxsize=50, #指定数据文件或事物日志文件的最大容量filegrowth=5% #指定数据文件或事物日志文件的增长幅度), #此处有逗号表示继续创建数据文件filegroup fdb1 #创建次文件组,表示后面数据文件保存其中(name=db2_two,filename=‘d:\test\db2.ndf’,size=10,maxsize=50,filegrowth=10%)log on #指定存储数据库日志的磁盘文件列表(name=db2logfilename=‘d:\test\db2.ldf’ ) #此处无逗号,表示阶数创建事物日记文件
2.3修改数据库(使用alter database语句)
2.3.1增加
● 增加数据文件、事物日记文件
● 增加文件组
● 增加数据文件到文件组
2.3.2删除
● 删除数据库文件和事物日记文件
● 删除文件组
2.3.3修改
● 修改数据库名称
● 修改文件组
● 修改数据库文件的名称alter database db2 #在数据库db2中添加数据文件和事物日志文件add file (name=db21, filename=‘d:\test\db2.ndf’)alter database db2add log file(name=dblog1, filename=‘d:\test\db2.ldf’) ------------------------------------------------------------------------------------------------------------ alter database db2 #在数据库db2中添加一个fdb2的文件组add filegroup fdb2 ------------------------------------------------------------------------------------------------------------- alter database db2 #在数据库db2中添加文件到文件组中add file(name=db2, filename=‘d:\test\db2.ndf’)to filegroup fg8goalter database db2 modify filegroup fg8 default #将文件组设为默认文件组 -------------------------------------------------------------------------------------------------------------- alter database db2 #将数据库中的fdb2文件组名改为fdb3modify filegroup fdb2 name=fdb3 ------------------------------------------------------------------------------------------------------------alter database db2 remove file db83alter database db2 remove file db83log ----------------------------------------------------------------------------------------------------------- alter database db2 #db2是默认文件组,先将pri设为默认文件组 modify filegroup [primary] defaultgoalter database db2 #先删除文件组中的数据文件 remove file db83 goalter database db2 #再删除文件组 remove filegroup db233---------------------------------------------------------------------------------------------------------alter database db8modify file(name=db83, newname=db81, filename=‘d:\test\db2.ndf’) ------------------------------------------------------------------------------------------------------------alter database db1 #将数据库名称db1修改为db2modify name=db22.4删除数据库(使用drop database语句)drop database db2 #删除数据库db22.5查看数据库信息(T-SQL语句)[exec] sp_helpdb [[ @dbname= ] ‘name’]例子 sp_helpdb db #查询数据库db2.6备份数据库2.7附加数据库