【Sql Server】3.管理数据库

1、数据库组成
    表、视图(对多个表中的数据进行组合)、存储过程、触发器、用户与角色(在‘数据库xx/安全性’下)、其余数据库部分数据库


2、使用管理工具建立数据库
1. 运行Microsoft SQL Server Management Studio
2. 建立数据库:安全

wKioL1N-6peA8tlkAAEpnMCDUWo020.jpg

右键选中“数据库”-->“新建数据库”:服务器

wKioL1N-60KiFEu5AAFEsqttVKI983.jpg

    如上图填写“数据库名称”,“全部者”采用默认,“数据库文件”中刚建立时数据库的初始大小和日志初始大小均可更改;自动增加:随着数据的不断增加,它会自动增加,点旁边的属性按钮,能够更改;路径也可更改。“选项”中有更多的配置信息。
    单击“肯定”即完成数据库的建立,建立好的数据库会建立出2个文件:数据库文件(.mdf)和日志文件(.ldf):
并发

wKioL1N-7iPiT3bkAABdoRKnwFw970.jpg


    数据库新建好后,还可在属性中修改某些设置:如上面新建好的数据库xj,右击选择“属性”,看到所设的“全部者”为默认值即:数据库设计

wKiom1N-8N7QX0q8AAEEWBlQvqE648.jpg


      如今指定‘全部者’为一个本地用户:NT AUTHORITY\SYSTEMide

wKiom1N-8YuxYmc0AAAiFIQJnUk958.jpg

    还能够修改数据库文件和日志文件的‘初始大小’(根据对数据库大小进行估计),“选项”下有更多的配置信息,其中排序规则:SQL Server 2008数据库的排序规则,默认是中文环境(Chinese_PRC_CI_AS);恢复模式:定义数据库备份与恢复的恢复模式。函数

wKioL1N-8oWyelqJAAIg7blbrD0554.jpg

    “文件组”下,数据库文件都须要存放在一个文件组中,在执行数据库备份,优化数据库操做时很是有用。单击“添加”能够建立新的文件组。工具


3、使用语句建立数据库
CREATE DATABASE database_name
[
    ON [PRIMARY]
    [(NAME=logical_name, FILENAME =’path’[,SIZE = database_size] [,MAXSIZE = database_maxsize] [,FILEGROWTH = growth_increment]
     )[, FILEGROUP=filegroup_name[(NAME = datafile_name, FILENAME =’path’ [,SIZE = datafile_size][ ,MAXSIZE =datafile _maxsize][ ,FILEGROWTH = growth_increment]
                                  )
      ]
    ]
]
[
    LOG ON
    [(NAME = logfile_name, FILENAME =’path’[,SIZE = logfile_size] [,MAXSIZE = logfile_maxsize] [,FILEGROWTH = logfile_increment]
     )
    ]
]优化

ON PRIMARY  指定须要关联的数据库的主文件,默认会将第一个建立的数据文件做为主文件。
Name=logical_name 指定数据库文件的逻辑名称
FILENAME=’path’ 指定数据库文件在磁盘上的位置
SIZE=database_size  指定数据库文件的初始大小(MB/TB)
MAXSIZE=database_maxsize  指定数据库文件的最大值,能够不设置,默认为不限制增加
FILEGROWTH=growth_increment 指定文件的增量,按%或MB
FILEGROUP filegroup_name 指定文件所属的文件组
建立的数据文件能够有多个
LOG ON 表示建立日志文件
也能够在联机丛书中找到更详细的语法说明spa

CREATE DATABASE 教务管理系统

ON

(

   NAME = 教务管理系统_DATA,

   FILENAME ='E:\DATA\教务管理系统_DATA.mdf',

   SIZE = 3MB,

   MAXSIZE =20MB,

   FILEGROWTH =5%

)

LOG ON

(

   NAME = 教务管理系统_LOG,

   FILENAME ='E:\DATA\教务管理系统_DATA.ldf',

   SIZE = 2MB,

   MAXSIZE =10MB,

   FILEGROWTH =1MB

)


4、查看数据库状态

    有三种方式:
    1.使用目录视图:即右键数据库名,在属性中查看,可看到数据库文件的位置,文件组,当前数据库文件的剩余空间等。

    2.使用函数:查看数据库的属性取值状况
select DATABASEPROPERTYEX('教务管理系统','Version')   --版本号
select DATABASEPROPERTYEX('教务管理系统','Recovery')  --数据库恢复模式
执行结果:
661   【返回值说明:基本数据类型:int。版本号 = 数据库处于打开状态。NULL = 数据库没有启动】
FULL  【返回值说明:基本数据类型:nvarchar(128)  FULL = 完整恢复模式  BULK_LOGGED = 大容量
日志记录模型   SIMPLE = 简单恢复模式】
能够从联机丛书查看到这个函数包含的属性

    3.使用系统存储过程:在建立数据库时,首先会调用SQL Server2008提供的模板数据库,这个模板数据库包含了一系列的存储过程,利用这些存储过程就能够查看当前数据库的状态。

sp_helpdb  --能够查看服务器上全部数据库的主要状态

执行结果:

wKioL1N--QbiD97bAAI5BA0AwRY796.jpg

    最后一列compatibility_level是SQL Server的兼容级别,SQL Server 2008建立的就是100,SQL Server 2005建立的就是90。


5、修改数据库
1.界面操做修改数据库:
    修改数据库名:先右击数据库/重命名,修更名称,这样仅能更改数据库名称,并不会修改其数据文件和日志文件的名称,可右击数据库/属性/‘文件’选项卡中修改‘逻辑名称’,可是数据文件的路径和物理存储名称是不能更改的。
    若是数据库随着使用的数据量愈来愈大,发现数据库的设计不合理,还能够修改数据库的初始大小。若是不想改变原来的数据文件,则能够添加一个数据文件。

wKioL1N--qzB97E-AAGLNVyugq0136.jpg

也能够在‘选项’下修改‘恢复模式’。

2.T-SQL修改数据库名:

alter database 教务管理系统 modify name=教务管理信息系统


6、删除数据库
    能够右键删除数据库,在删除时能够设置图下边的删除选项。
    用T-SQL语句删除数据库:

drop database 教务管理信息系统


7、分离和附加数据库

    全部的企业都不会将全部的数据库文件放在单一的服务器上,都须要将当前的数据库文件复制几份放在不一样的地方来保证数据的安全性,可是数据库在建立完成以后的运行过程当中是没法复制数据库文件的,因此要想将数据库文件复制到另外的地方,另外的数据库实例中运行的话,就须要使用特殊的操做:对数据库进行分离和附加,来实现对当前的数据库文件部署到不一样的数据库服务器上。

    分离数据库就是指将数据库从SQL Server 2008 的实例中分离出去,可是不会删除该数据库的文件和事务日志文件,这样,该数据库能够再附加到其余的SQL Server 2008 的实例上去。
在下列状态下没法分离数据库:

  • 已复制并发布数据库。

  • 数据库中存在数据库快照。

  • 数据库处于未知状态。

    存在数据库快照表示数据库正在使用中,因此没法分离,要想分离必须先删除快照。

    附加数据库是指将当前数据库之外的数据库附加到当前数据库实例中。在附加数据库时,全部数据库文件(.mdf和.ndf文件)都必须是可用的。若是任何数据文件的路径与建立数据库或上次附加数据库时的路径不一样,则必须指定文件的当前路径。在附加数据库的过程当中,若是没有日志文件,系统将建立一个新的日志文件。

    直接复制xj的数据库文件和日志文件会被告诉数据库正在使用,没法复制,因此:右击数据库名xj/任务/分离:

wKioL1N_CHSS9-RgAAEpB7Hg2S8124.jpg

肯定后,在当前的‘数据库’节点下就看不到这个已分离的数据库了。

    如今就能够将这个xj的数据库文件和日志文件复制到另外一个目录了(E:\DATA1\下)。好比在另外一个数据库实例下,右击‘数据库’/‘附加’:

wKioL1N_CTzBevNXAAGhJTusy8w217.jpg

肯定后就能够看到数据库被附加了进来。


8、收缩数据库

    若是在设计数据库时考虑到数据量很是多,而将数据库设计得很是大,而在实际过程当中发觉要不了那么大的数据库容量,这时就须要将数据库的尺寸收缩一下,因此要执行一下收缩操做。
为了进行收缩操做,先将一数据库demoxj初始大小设大,再进行收缩操做。

wKiom1N_ChujKrC5AACaOgQ8G8I870.jpg

右击数据库demoxj/任务/收缩/数据库,对整个数据库进行收缩:

wKiom1N_DAKRWwZAAAFTBZ7_Ax0442.jpg

收缩后再看demoxj的属性:

wKioL1N_C_ewtZZbAACtNpX2VjY970.jpg

右击数据库demoxj/任务/收缩/文件,也能够对某个数据库文件进行收缩,好比对日志文件进行收缩:

wKioL1N_DN6xS_5VAAGWiahSAMw118.jpg

肯定后,再看这个数据库的属性:

wKiom1N_DUzxjyiHAACo6RO0eGk289.jpg


9、数据库快照

    数据库中的数据是随着操做不断的变化,若是如今有个特定的需求,好比规定一个特定的时间点2012-1-1,查询这个时间点以前的全部数据,有两种方法:    备份与还原:可是还原后2012-1-1之后的数据就会被丢弃,这不是指望的。    数据库快照:在某个时间点,对当前数据库建立快照,包含全部数据的备份。

相关文章
相关标签/搜索