使用SQL语句:CREATE DATABASE语句创建数据库CREATE DATABASE database_name[ON [PRIMARY] [<filespec> [ ,...n][ , <filegroup> [ ,...n ] ][LOG ON { <filespec> [ ,...n ] } ]<filespec>::={(NAME=logical_file_name ,FILENAME = 'os_file_name'[ SIZE=size [KB|MB|GB|TB] ][ MAXSIZE={max_size [KB|MB|GB|TB] | UNLIMITED } ][FILEGROWTH=growth_increment[KB|MB|GB|TB|% ] ]) [ ,...n ]}<filegroup>::={FILEGROUP filegroup_name <filespec> [ ,...n ]}T-SQL语法说明:“[ ]”中的内容表示可以省略,省略时系统取默认值。
“{ }[ ,…n ]”表示花括号中的内容可以重复书写n次,必须用逗号隔开。
“|”表示相邻前后两项只能任取一项。
一条语句可以分成多行书写,但多条语句不允许写在一行。
CREATE DATABASE 数据库名[ ON [PRIMARY]{ ( [NAME=数据文件的逻辑名称,]FILENAME=‘数据文件的物理名称’,[SIZE=数据文件的初始大小[ MB(默认) | KB | GB ] , ][MAXSIZE={ 数据文件的最大容量[ MB | KB | GB]|UNLIMITED(不受限制) } ,][FILEGROWTH=数据文件的增长量[ MB | KB | GB | % ] ])} [ , …n ][ FILEGROUP 文件组名{ ( [NAME=数据文件的逻辑名称,][FILENAME=‘数据文件的物理名称’, ][SIZE=数据文件的初始大小[ MB | KB | GB ] ,][MAXSIZE={ 数据文件的最大容量[ MB | KB | GB ]| UNLIMITED } ,][FILEGROWTH=数据文件的增长量[ MB | KB | GB | % ] ])} [ , …n ]]LOG ON{ ( [NAME=事务日志文件的逻辑名称,][FILENAME=‘事务日志文件的物理名称’,][SIZE=事务日志文件的初始大小[MB | KB | GB ] ,] [MAXSIZE={ 事务日志文件的最大容量[ MB | KB | GB ]| UNLIMITED } ,][FILEGROWTH=事务日志文件的增长量[ MB|KB|GB| % ]])} [ , …n ]]说明:ON 表示需根据后面的参数创建该数据库。
LOG ON 子句用于根据后面的参数创建该数据库的事务日志文件。
PRIMARY指定后面定义的数据文件属于主文件组PRIMARY,也可以加入用户自己创建的文件组。
NAME=‘数据文件的逻辑名称’:是该文件在系统中使用的标识名称,相当于别名。
FILENAME=‘数据文件的物理名称’:指定文件的实际名称,包括路径和后缀。
UNLIMITED 表示在磁盘容量允许情况下不受限制。
文件容量默认单位为MB字节,也可以使用KB单位。
例题一:用T-SQL语句在C:\DATA\文件夹中创建一个教师信息数据库teacher,该数据库包含:1、一个主数据文件逻辑名‘teacherdata1 ’,物理名‘C:\DATA\tdata1.mdf ’,初始容量1MB,最大容量10MB,每次增长量为15%。
2、一个辅助数据文件逻辑名‘teacherdata2 ’物理名‘C:\DATA\tdata2.ndf ’,初始容量2MB,最大容量15MB,每次增长量为2MB。
3、两个数据文件不单独创建文件组,即使用默认的PRIMARY组;4、一个事务日志文件逻辑名‘teacherlog’物理名‘C:\DATA\teacherlog.ldf ’,初始容量500KB,最大容量不受限制,每次增长量为500KB。
先确认C:\DATA\文件夹已创建,在查询分析器中输入代码:CREATE DATABASE teacherONPRIMARY( NAME = teacherdata1 ,FILENAME = 'C:\DATA\tdata1.mdf' ,SIZE =5MB , -- 默认字节单位MB可以省略MAXSIZE= 10 , -- 文件最大容量10 MBFILEGROWTH = 15% -- 增长量为文件容量15%) ,( NAME = teacherdata2 ,FILENAME = 'C:\DATA\tdata2.ndf' ,SIZE = 2 ,MAXSIZE= 15 ,FILEGROWTH = 2MB -- 增长量为2 MB)LOG ON /* 创建事务日志文件*/( NAME = teacherlog ,FILENAME = 'C:\DATA\teacherlog.LDF',SIZE = 500 KB ,/* 初始容量,KB单位不能省略*/MAXSIZE = UNLIMITED ,/* 日志文件最大容量不受限制*/ FILEGROWTH = 500 KB/* 增长量KB 不能省略*/ )例题2:课本P61例题3:在C:\DATA1\文件夹中创建一个名为:仓库库存管理数据库,要求它有3个数据文件,其中主数据文件逻辑名为epdata1,大小为10MB,最大大小为50MB,每次增长5MB;辅助数据文件属于FGroup文件组,文件逻辑名为epdata2,文件大小为20MB,最大大小不受限制,每次增长10%;事物日志文件eplog,大小为20MB,最大大小为100MB,每次增长10MB。
CREATE DATABASE 仓库库存管理ON PRIMARY( NAME = epdata1,FILENAME = 'C:\DATA1\epdata1.mdf' ,SIZE = 10MB ,MAXSIZE = 50MB ,FILEGROWTH = 5MB ),FILEGROUP FGroup( NAME = epdata2,FILENAME = C:\DATA1\epdata2.ndf , SIZE = 20MB ,MAXSIZE = UNLIMITED, FILEGROWTH = 10%)LOG ON( NAME = eplog,FILENAME = C:\DATA1\eplog.ldf , SIZE = 20MB ,MAXSIZE = 100MB ,FILEGROWTH = 10MB )例题四:阅读下面的SQL语句create database employeeson primary(name=employee1,filename='d:\ data\employee1.mdf', size=10,maxsize=unlimited,filegrowth=10%),FILEGROUP EGroup(name=employee2,filename='d:\data\employee2.ndf', size=20,maxsize=100,filegrowth=1)log on(name=employeelog1,filename='d:\data\employee1.ldf', size=10,maxsize=50,filegrowth=1),(name=employeelog2,filename='d:\data\employee2.ldf',size=10,maxsize=50,filegrowth=1)用ALTER DATABASE语句设置、修改数据库T-SQL设置修改数据库语句ALTER DATABASE的语法格式:ALTER DATABASE 数据库名add file <文件格式> [to filegroup 文件组]| add log file <文件格式>| remove file 逻辑文件名| add filegroup 文件组名| remove filegroup 文件组名| modify file <文件格式>| modify name new_dbname| modify filegroup 文件组名说明:add file为增加一个辅助数据文件[并加入指定文件组];<文件格式>为:( name = 数据文件的逻辑名称[,filename =‘数据文件的物理名称’][,size = 数据文件的初始大小[ MB | KB|GB ] ][,maxsize={ 数据文件的最大容量[ MB | KB|GB ] | UNLIMITED } ][,filegrowth=数据文件的增长量[ MB | KB | GB|% ] ])在例题3的基础上进行数据库的修改。
例题3:在C:\DATA1\文件夹中创建一个名为:仓库库存管理数据库,要求它有3个数据文件,其中主数据文件逻辑名为epdata1,大小为10MB,最大大小为50MB,每次增长5MB;辅助数据文件属于FGroup文件组,文件逻辑名为epdata2,文件大小为20MB,最大大小不受限制,每次增长10%;事物日志文件eplog,大小为20MB,最大大小为100MB,每次增长10MB。
CREATE DATABASE仓库库存管理ON PRIMARY( NAME = epdata1,FILENAME = 'C:\DATA1\epdata1.mdf' ,SIZE = 10MB ,MAXSIZE = 50MB ,FILEGROWTH = 5MB ),FILEGROUP FGroup( NAME = epdata2,FILENAME = C:\DATA1\epdata2.ndf ,SIZE = 20MB ,MAXSIZE = UNLIMITED, FILEGROWTH = 10%)LOG ON( NAME = eplog,FILENAME = C:\DATA1\eplog.ldf , SIZE = 20MB ,MAXSIZE = 100MB , FILEGROWTH = 10MB )增加和删除文件组增加文件组语法:ALTER DATABASE 数据库名add filegroup 文件组名例:ALTER DATABASE 仓库库存管理Add filegroup epp1ALTER DATABASE 仓库库存管理Add filegroup epp2可以写成ALTER DATABASE 仓库库存管理Add filegroup epp1,epp2吗?删除文件组语法:ALTER DATABASE 数据库名Remove filegroup 文件组名例:ALTER DATABASE 仓库库存管理Remove filegroup epp2问:可以删除Fgroup文件组吗?只能删除空文组增加和删除数据文件和日志文件1)增加数据文件和日志文件语法:ALTER DATABASE 数据库名add file <文件格式><文件格式>为:( name = 数据文件的逻辑名称[,filename =‘数据文件的物理名称’][,size = 数据文件的初始大小 [ MB|KB|GB ] ][,maxsize={ 数据文件的最大容量[ MB|KB|GB ]| UNLIMITED } ][,filegrowth=数据文件的增长量 [ MB | KB | GB|% ] ] )例:增加一个辅助数据文件,文件逻辑名为epdata3,文件大小为30MB,最大大小不受限制,每次增长10%;增加一个事物日志文件eplog1,大小为30MB,最大大小为50MB,每次增长10MB。