SQL Server数据库结构和管理
今天阿猪和大家正式进入SQL Server的第二次学习,所有的学习笔记阿猪都是跟着《大型数据库管理系统 技术、应用于实例分析》和结合(百度文库)总结归纳出来的,在今后的讲解中阿猪只使用SQL命令来编写,好的接下来那就一起学习共同进步
数据库物理存储结构
数据库物理存储是指数据库的数据以什么方式存储在计算机磁盘上,又是怎样在磁盘空间管理器管理下运行的。
1.1数据库文件和文件组
数据库在磁盘上是以文件为单位存储,由数据库文件和事务日志文件组成
×主数据库文件:不许有一个。扩展名.mdf
×次数据库文件:有的有有的没有,还可能多个,扩展名.ndf
×事务日志文件:包含恢复数据库所需要的所有日志信息,至少有一个日志文件,也可多个,扩展名.ldf
1.数据库文件组:多个文件归纳为同一组,控制各个文件的存放位置,减轻单个磁盘驱动器的存储负载,提高数据库存储效率
2.建立数据库文件和文件组应注意:
(1)数据文件不能跨文件组使用,数据文件和文件组不能跨数据库使用
创建数据库
(2)日志文件是独立的,数据库内的数据和日志不能同时存入相同的文件或文件组
3.主文件组和此文件组
数据库逻辑组织
系统数据库
(1)master数据库:由系统表组成,不允许修改
(2)tempdb数据库:记录用户创建所有临时表,临时数据,重启后为空
(3)model数据库:建立新数据库的模板
(4)msdb数据库:用于复制、作业调度等
数据库的创立与管理
阿猪觉得这一部分很重要索引进行了深入学习查阅了百度文库,来更详细的讲解没有弄例题,大家就把课本上的多加练习一下
说明 :[]括起来的内容表示是可选的;
[,…n]表示重复前面的内容
<>表示在实际编写语句时用相应的内容代替
{}表示是必选的
A|B表示AB只能选一个不能同时都选
数据库创立:
语法格式:
CREATE DATABASE database_ name
[ON [PRIMARY] [[, …n]
[, [, …n]] ]
[LOG ON {[ , …n]]
[FOR LOADIFOR ATTACH]
::=
( [NAME=logical_file name , ]
FILENAME= ='os_ file_ name’
[ , SIZE= =size]
[,MAXSIZE= ={max_ sizeIUNLIMITED}]
[ , FILEGROWTH=growth _increment] ) [, …n]
::=
FILEGROUP filegroup _name [, …n]
备注:
1.database_ name :新数据库的名称。数据库名称在 服务器中必须唯- - ,最长为128个字符,并且要符合标 识符的命名规则。每个服务器管理的数据库最多为32767个。
2.ON :指定存放数据库的数据文件信息。列表用于定义主文件组的数据文件,列表用于定义用户文件组及其中的文件。
3.PRIMARY :用于指定主文件组中的文件。主文 件组的第一个由指定的文件是主文件。如果 不指定PRIMARY关键字,则在命令中列出的第- -个 文件将被默认为主文件。
4.LOG ON :指明事务日志文件的明确定义。如果 没有本选项,则系统会自动产生-个文件名前缀与数 据库名相同,容量为所有数据库文件大小1/4的事务日 志文件。
5. FOR LOAD :表示计划将备份直接装入新建的数据库,主要是为了和过去的SQL Server版本兼容。
6.FOR ATTACH :表示在- -组已经存在的操作系统文件中建立-个新的数据库。
7.NAME :指定数据库的逻辑名称。
8.FILENAME :指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名和NAME的逻辑名称- – -对应。
9.SIZE :指定数据库的初始容量大小。如果没有指定主文件的大小,则SQL Server默认其与模板数据库中的主文件大小一致,其它数据库文件和事务日志文件则默认为1MB。指定大小的数字size可以使用KB、MB、GB和TB后缀,默认的后缀为MB。Size中不能使用小数,其最小值为512KB ,默认值为1MB。主文件的size不能小于模板数据库中的主文件。
10.MAXSIZE ;指定操作系统文件可以增长到的最大尺寸。如果没有指定,则文件可以不断增长直到充满磁盘。
11.FILEGROWTH :指定文件每次增加容量的大小,当指定数据为0时,表示文件不增长。增加量可以确定为以KB、MB作后缀的字节数或以%作后缀的被增加容量文件的百分比来表示。默认后缀为MB.如果没有指定FILEGROWTH ,则默认值为10%.每次扩容的最小值为64KB。
修改数据库结构
语法格式:
ALTER DATABASE database
{ ADD FILE < filespec> [, … n] [ TO FILEGROUP filegroup_ name ]
| ADD LOG FILE < filespec> [ ,…n ]
| REMOVE FILE logical_ file_ name
| ADD FILEGROUP filegroup_ name
|REMOVE FILEGROUP filegroup_ name
| MODIFY FILE < filespec>
| MODIFY NAME = new_ dbname
|MODIFY FILEGROUP filegroup_name {filegroup_property | NAME = new_filegroup_nume }
|SET < optionspec> [ ,…n ] [ WITH < termination> ]
| COLLATE < collation_name>
}
备注
1.database是要更改的数据库的名称。
2.ADD FILE 指定要添加文件。
3.TO FILEGROUP指定要将指定文件添加到的文件组。
4.filegroup_ name 是要添加指定文件的文件组名称。
5.ADD LOG FILE指定要将日志文件添加到指定的数据库。
6.REMOVE FILE从数据库系统表中删除文件描述并删除物理文件。只有在 文件为空时才能删除。
7.ADD FILEGROUP指定要添加文件组。
8.MODIFY FILE指定要更改给定的文件,更改选项包括 FILENAME、SIZE、 FILEGROWTH和MAXSIZE。-次只能更改这些属性中的- -种。必须在 中指定NAME ,以标识要更改的文件。如果指定了 SIZE ,那么新大小必须比文件当前大小要大。若要更改数据文件或日志文件的逻辑名称,应在 NAME选项中指定要改名的逻辑文件名称,并在 NEWNAME选项中指定文件的新逻辑名称。
9.MODIFY FILEGROUP filegroup. name{ filegroup property | NAME = new_ filegroup name }指定要修改的文件组和所需的改动。如果指定filegroup_ name 和NAME =new_ filegroup. name,则将此文件组的名称改为 new_ filegroup_ name。如果指定filegroup. name和filegroup. property , 则表示给定文件组属性将应用于此文件组。
filegroup. property的值有:
1.READONLY指定文件组为只读。不允许更新其中的对象。主文件组 不能设置为只读。只有具有排它数据库访问权限的用 户才能将文件组标记为只读。
2.READWRITE逆转READONLY属性。允许更新文件组中的对象。只 有具有排它数据库访问权限的用户才能将文件组标记 为读/写。
3.DEFAULT将文件组指定为默认数据库文件组。只能有一个数据库 文件组是默认的。CREATE DATABASE语句将主文 件组设置为初始的默认文件组。如果在CREATE TABLE、ALTER TABLE或者CREATE INDEX语 包中没有指定文件组,则新表及索引将在默认文件 组一中创建。
查看数据库
语法:
SP_HELPDB 数据库名
删除数据库
语法:
DROP DATABASE 数据库名
好了今天这一章的内容就结束了,如果有错误的地方欢迎大家指出,来共同学习共同交流,如果觉得好给个小赞赞 谢谢啦
原文链接:https://blog.csdn.net/m0_46315852/article/details/104515758