sql语句创建数据库及修改、删除数据库

使用SQL语句:

CREATE DATABASE语句创建数据库

CREATE DATABASE database_name

[ON [PRIMARY] [ [ ,...n]

[ , [ ,...n ] ]

[LOG ON { [ ,...n ] } ]

::=

{

(

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_name [ ,...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 teacher

ON PRIMARY

( NAME = teacherdata1 ,

FILENAME = 'C:\DATA\tdata1.mdf' ,

SIZE =5MB , -- 默认字节单位MB可以省略

MAXSIZE= 10 , -- 文件最大容量10 MB

FILEGROWTH = 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 employees

on 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 epp1

ALTER 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。Alter database 仓库库存管理Alter database 仓库库存管理

Add file Add LOG file

( NAME = epdata3, ( NAME = eplog1,

FILENAME = FILENAME =

'C:\DATA1\epdata3.ndf' , 'C:\DATA1\eplog1.ldf', SIZE = 30MB , SIZE = 30MB, MAXSIZE = UNLIMITED, MAXSIZE = 50MB, FILEGROWTH = 10%)FILEGROWTH = 10MB ) Alter database 仓库库存管理

Add file

( NAME = epdata3,

FILENAME = 'C:\DATA1\epdata3.ndf' ,

SIZE = 30MB ,

MAXSIZE = UNLIMITED,

FILEGROWTH = 10%)

Alter database 仓库库存管理

Add LOG file

( NAME = eplog1,

FILENAME = 'C:\DATA1\eplog1.ldf' ,

SIZE = 30MB ,

MAXSIZE = 50MB ,

FILEGROWTH = 10MB )

错误的写法:

Alter database 仓库库存管理

Add file

( NAME = epdata3,

FILENAME = 'C:\DATA1\epdata3.ndf' ,

SIZE = 30MB ,

MAXSIZE = UNLIMITED,

FILEGROWTH = 10%)

Add LOG file

( NAME = eplog1,

FILENAME = 'C:\DATA1\eplog1.ldf' ,

SIZE = 30MB ,

MAXSIZE = 50MB ,

FILEGROWTH = 10MB )

例:为仓库库存管理数据库,增加2个辅助数据文件,文件逻辑名为epdata4,epdata5,文件大小为30MB,最大大小不受限制,每次增长10%;

Alter database 仓库库存管理

Add file

( NAME = epdata4,

FILENAME = 'C:\DATA1\epdata4.ndf' , SIZE = 30MB ,

MAXSIZE = UNLIMITED, FILEGROWTH = 10%),

( NAME = epdata5,

FILENAME = 'C:\DATA1\epdata5.ndf' , SIZE = 30MB ,

MAXSIZE = UNLIMITED, FILEGROWTH = 10%)

2)删除数据文件和日志文件

语法:

ALTER DATABASE 数据库名

remove file 逻辑文件名

例:删除辅助数据文件epdata5.ndf ALTER DATABASE 仓库库存管理remove file epdata5

例:删除日志文件eplog1.ldf

ALTER DATABASE 仓库库存管理

remove file eplog1

增加数据文件到指定的文件组

语法:

ALTER DATABSE 数据库名

Add file <文件格式>

To Filegroup 文件组名(此文件组应存在)

例:

增加一个辅助数据文件,文件逻辑名为epdata6,文件大小为60MB,最大大小不受限制,每次增长10%,辅文件epdata6属于文件组epp1

ALTER DATABASE 仓库库存管理

Add file--添加数据文件加入文件组

(name=epdata6,

Filename='C:\DATA1\epdata6.ndf',

SIZE = 60MB ,

MAXSIZE = UNLIMITED,

FILEGROWTH = 10%)

to filegroup epp1

更改数据文件和日志文件名称。

语法:

ALTER DATABASE 数据库名

Modify file

(name=逻辑名,

newname=新逻辑名)

例:修改数据库“仓库库存管理”,将辅文件epdata4,文件逻辑名修改为Odata4。

ALTER DATABASE 仓库库存管理

Modify file

(name=epdata4,

newname=odata4)

物理名称修改

ALTER DATABASE 仓库库存管理

Modify file

(name=odata4,

Filename='c:\data2\odata4.ndf')

修改数据文件和日志文件的初始大小和增长方式

语法:

ALTER DATABASE 数据库名

modify file <文件格式>

例:

修改辅助数据文件epdata2,修改文件大小为100MB,最大大小200MB,每次增长10MB。

ALTER DATABASE 仓库库存管理

modify file

(name=epdata2,

Filename='C:\DATA1\epdata2.ndf',

SIZE = 100MB ,

MAXSIZE = 200MB,

FILEGROWTH = 10MB)

修改数据文件大小,能将数据文件初始大小改小吗?

能改变epdata2所归属的文件组吗?

修改数据库名

语法:

alter database 数据库

modify name=newname

例:将数据库“仓库库存管理”改名为“仓库管理”

alter database 仓库库存管理

modify name=仓库管理

EXECUTE sp_helpdb 仓库管理--查看数据库信息

使用sql语句完成下列习题:

1)创建数据库:“text”

2)主数据文件逻辑名称:textdata1,物理位置:‘c:\data\textdata1.mdf’,初始大小1MB,最大10MB,增量1MB。

3)辅助数据库逻辑名称:textdata2,物理位置:c:\data\textdata2.ndf’,初始大小1MB,最大无限制,增量3MB。

4)事务日志文件逻辑名称:textlog,物理位置:‘c:\data\textlog.ldf’,初始大小1MB,最大5MB,增量1MB。

5)完成数据库建立

6)修改数据库“text”,增加一个文件组,文件组名:Gtext

7)增加一个辅助数据文件,文件逻辑名textdata3,物理名为:c:\data\textdata3.ndf’,初始大小为20MB,最大100MB,

增量10MB,归属于文件组“Gtext”。

相关主题
相关文档
最新文档