1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,回顾数据库的基础知识,数据库文件的组成:,主数据文件:*.mdf,次要数据文件:*.ndf,日志文件:*.ldf,数据库的其他属性:,文件存放位置,分配的初始空间,属于哪个文件组,文件增长:可以按百分比或实际大小指定增长速度,文件容量设置:可以指定文件增长的最大值或不受限,Transact-SQL语法约定,1,、语法约定,下表,3-2,列出了,T-SQL,参考的语法关系图中使用的约定,并进行了说明。,表,3-2 T-SQL,参考的语法约定,约定,用 于,UPPERCASE,(大写),T-SQL 关键字。,Italic,用户提供的T-S
2、QL语法的参数。,bold(粗体),数据库名、表名、列名、索引名、存储过程、实用工具、数据类型名以及必须按所显示的原样键入的文本。,下划线,指示当语句中省略了包含带下划线的值的子句时应用的默认值。,|(竖线),分隔括号或大括号中的语法项。只能选择其中,一项,。,(方括号),可选语法项。不要键入,方括号,。,(大括号),必选语法项。不要键入大括号。,.n,指示前面的项可以重复 n 次。每一项由逗号分隔。,.n,指示前面的项可以重复 n 次。每一项由空格分隔。,;,可选的T-SQL语句终止符。不要键入方括号。,:=,语法块的名称。此约定用于对可在语句中的多个位置使用的过长语法段或语法单元进行分组和
3、标记。可使用的语法块的每个位置由括在尖括号内的标签指示:。,2创建数据库的两种,方法,(2)使用Transact-SQL语言创建数据库,1)命令格式,CREATE DATABASE,ONPRIMARY,,N,,N,LOG ON ,N,其中,N 表示设置文件属性,格式如下:,(NAME=逻辑文件名,,FILENAME=物理文件名称,,SIZE=数据库文件的初始容量值,,MAXSIZE=物理文件的最大容量值|UNLIMITED,,FILEGROWTH=增加容量值),N,其中,N 表示设置文件组属性,格式如下:,FILEGROUP文件组名称 DEFAULT,N,创建数据库,CREATE DATABA
4、SE 数据库名,ON PRIMARY,(,,n ,),LOG ON,(,,n,),T-SQL创建数据库的语法:,主文件组,可选参数,默认,创建数据库示例 1,例1:,创建数据库1,一个数据文件和一个日志文件,CREATE DATABASE stuDB,ON PRIMARY,-默认就属于PRIMARY主文件组,可省略,(,NAME,=stuDB_data,-主数据文件的逻辑名,FILENAME,=D:projectstuDB_data.mdf,-主数据文件的物理名,SIZE,=5mb,-主数据文件初始大小,MAXSIZE,=100mb,-主数据文件增长的最大值,FILEGROWTH,=15%-主
5、数据文件的增长率,),LOG ON,(,NAME,=stuDB_log,FILENAME,=D:projectstuDB_log.ldf,SIZE,=2mb,FILEGROWTH,=1MB,),GO,数据文件的具体描述,日志文件的具体描述,创建数据库示例 2,例2:,创建数据库2,多个数据文件和多个日志文件,CREATE DATABASE,employees,ON,(,/*-主数据文件的具体描述-*/,NAME=employee1,FILENAME=D:projectemployee1_Data.mdf,SIZE=10,FILEGROWTH=10%,),(,/*-次要数据文件的具体描述-*/,
6、NAME,=employee2,FILENAME,=D:projectemployee2_Data.ndf,SIZE,=20,MAXSIZE,=100,FILEGROWTH,=1,),LOG ON,(,/*-日志文件1的具体描述-*/,NAME,=employeelog1,FILENAME,=D:projectemployeelog1_Log.ldf,SIZE,=10,FILEGROWTH,=1,),(,/*-日志文件2的具体描述-*/,NAME,=employeelog2,FILENAME,=D:projectemployeelog2_Log.ldf,SIZE,=10,MAXSIZE,=50
7、FILEGROWTH,=1,),GO,CREATE DATABASE studentcourse -,逻辑数据名称:studentcourse,ON PRIMARY -,ON 子句指出文件属于PRIMARY组,(NAME=studentcourse,-,NAME指出了对应的逻辑文件名,FILENAME=C:DATAstudentcourse.mdf,-,FILENAME指出物理文件名,SIZE=3072KB,-,Size指出了初始分配空间,MAXSIZE=UNLIMITED,-,MAXSIZE指出了最大空间,FILEGROWTH=1024KB),-,FILEGROWTH指出了文件空间的增长量
8、FILEGROUP group1,-,FILEGROUP子句指出次数据文件.NDF,(NAME=secondsc,FILENAME=C:mydb secondsc.ndf ,SIZE=3072KB,MAXSIZE=51200KB,FILEGROWTH=1024KB),LOG ON -,LOG ON 子句指出新建数据库的日志文件.LDF,(NAME=studentcourse_log,FILENAME=C:LOGstudentcourse_log.ldf ,SIZE=1024KB,MAXSIZE=20480KB,FILEGROWTH=10%),修改数据库,(1)用,ALTER DATABASE
9、语句增减数据文件和日志文件。,增加数据文件的语法如下:,ALTER DATABASE,数据库名,ADD FILE,(,NAME,=逻辑数据文件名,FILENAME,=存取路径数据文件名,SIZE,=数据文件初始大小,MAXSIZE,=文件大小最大值,FILEGROWTH,=文件增长率,),ADD FILE,是指增加一个数据文件,还可以是,ADD LOG FILE,、,REMOVE FILE,、,MODIFY FILE,等,分别代表增加日志文件、,删除数据库文件和修改文件信息。,(2)修改数据文件的大小的语法如下:,ALTER DATABASE,数据库名,MODIFY FILE,(,NAME,
10、逻辑数据文件名,SIZE,=数据文件初始大小,MAXSIZE,=文件大小最大值,FILEGROWTH,=文件增长率,),例:,将LWZZ 数据库的第二个数据文件LWZZ_data2的初始大小修改为20MB,ALTER DATABASE,LWZZ,MODIEY FILE,(,NAME,=LWZZ_data2,SIZE,=20MB,),(3),修改数据库名称:,语法格式如下,ALTER DATABASE,数据库名,MODIFY NAME,=新数据库名,修改数据文件名:,ALTER DATABASE studentcourse,MODIFY FILE(name=studentcourse2,new
11、name=studentcourse_2),总结:修改数据库,1)命令,格式,Alter Database,数据库名,Add,File,N To Filegroup 文件组名称,|,Add,Log File,N,|,Remove File,逻辑文件名称 With Delete,|,Modify File,|,Modify Name,=新数据库名称,|,Add Filegroup,新增文件组名称,|,Remove Filegroup,文件组名称,|,Modify Filegroup,原文件组名称,文件组属性|Name=新文件组名称,2)功能,Add File:向数据库添加文件。Add Logfi
12、le:向数据库添加日志文件。Remove File:从数据库中删除文件。Modify File:对文件进行修改,包括SIZE、FILEGROWTH和MAXSIZE,,每次只能对一个属性进行修改,。Modify Name:重新命名数据库。Add|Remove|Modify Filegroup:向数据库中添加删除修改文件组,alter DATABASE,studentcourse,add file,(NAME=studentcourse2,-新增studentcourse2次数据文件,FILENAME=C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLD
13、ATA,studentcourse2.ndf,SIZE=2MB,MAXSIZE=50MB,FILEGROWTH=1MB)to filegroup group2,Go,alter DATABASE studentcourse,modify file,-修改studentcourse主数据文件的文件增长为2MB,(NAME=studentcourse,FILEGROWTH=2MB),Go,alter DATABASE studentcourse,add LOG file,-新增studentcourse_log2日志文件,(NAME=studentcourse_log2,FILENAME=C:Pr
14、ogram FilesMicrosoft SQL ServerMSSQL.1MSSQL DATA studentcourse_log2.ldf,SIZE=1MB,MAXSIZE=100MB,FILEGROWTH=10%),Go,alter DATABASE studentcourse,modify file,(name=studentcourse2,newname=studentcourse_2),-对数据库中studentcourse2次数据文件重命名成studentcourse_2,Go,alter DATABASE studentcourse,remove file studentcourse_2,-从数据库中移除studentcourse_2次要数据文件,删除数据库,DROP DATABASE,数据库名列表,例:,DROP DATABASE,northwind,pubs,压缩数据库,DBCC SHRINKDATABASE,(,数据库名,Target_Percent,),Notruncate|Truncateonly,例:,DBCC,SHRINKDATABASE,(Studentcourse,30),DBCC SHRINKFILE,(,secondsc,2),






