数据库的创建、修改和删除

数据库
数据库在当代社会可以说是必不可少的,数据库的出现为社会的发展进步起到了推动的作用。那么掌握好数据库的创建、修改和删除就是一门人人都需要知道的知识,下面我将带领大家一起去探索数据库的奥秘。

导读:数据库是企业管理数据信息的一种手段,保护好自己的信息,以防被对手知道。数据库的出现,也大大简便了工作人员的工作,工作人员用数据库可以很轻松的将数据保存而且方便下次查找,下面为大家重点介绍一下数据库的创建、修改和删除。

一、创建数据库

创建数据库需要一定的许可,在默认情况下,只有系统管理员和数据库拥有者可以创建数据库。当然,也可以授权其他用户这种许可。数据库被创建后,创建数据库的用户自动成为该数据库的所有者。

每个数据库都由以下几个部分的数据库对象所组成:关系图、表、视图、存储过程、用户、角色、规则、默认、用户自定义数据类型和用户自定义函数。SQLServer使用这样一个公共模板来创建数据库,每个服务器中最多可以创建32767个数据库。

创建数据库的过程实际上就是为数据库设计名称、设计所占用的存储空间和存放文件位置的过程。数据库的基本信息存储在Master数据库中的sysdatabases系统表中,因而可以使用SELECT语句来查询数据库信息。

创建数据库的方法有以下三种:使用向导创建数据库、使用企业管理器(Enterprise Manager)创建数据库和使用Transact-SQL语句创建数据库。

(a)使用向导

(b)使用企业管理器

(c)使用Transact-SQL语句

使用CREATE DATABASE命令来创建数据库的语法如下:

CREATE DATABASE database_name
[ON [PRIMARY] [<filespec>[,..n] [,<filegroupspec> [,..n] ] ]
[LOG ON {<filespec>[,..n]} ]
[FOR RESTORE]

<filespec>::= ([NAME=logicol_file_name,]
FILENAME='os_file_name'
[,SIZE=size]
[,MAXSIZE={max_size | UNLIMITED}]
[,FILEGROWTH=growth_increment] ) [,..n]

<filegroupspec>::=FILEGROUP filegroup_name <filespec> [,..n]

各参数说明如下

database_name:数据库的名称,最长为128个字符;单个SQL Server系统可以管理的数据库最多为32767个。
PRIMARY:该选项是一个关键字,指定主文件组中的文件。主文件组不仅包含数据库系统表中的全部内容,而且还包含用户文件组中没有包含的全部对象。一个数据库只能有一个主文件,默认情况下,如果不指定时,则在命令中列出的***个文件将被默认为主文件。
LOG ON:指明事务日志文件的明确定义。如果没有时,则系统会自动产生一个文件名前缀与数据库名相同,容量为所有数据库文件大小1/4的事务日志文件。
NAME:指定数据库的逻辑名称,这是在SQL Server系统中使用的名称,是数据库在SQL Server中的标识符。
FILENAME:指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名和NAME的逻辑名称一一对应。
SIZE:指定数据库的初始容量大小。若没有指定主文件的大小,则SQL Server默认其与模板数据库中的主文件大小一致,其他数据库文件和事务日志文件则默认为1MB。指定大小的数字可以使用KB、MB、GB和TB为后缀,默认为MB。不能使用小数,最小值为512KB,默认为1MB。主文件的size不能小于模板数据库中的主文件。
MAXSIZE:指定操作系统文件可以增长到的***尺寸。没有指定时,则文件可以不断增长,直至充满磁盘。
FILEGROWTH:指定文件每次增加容量的大小,当指定为0时,表示文件不增加。增加量可以确定为以KB、MB作后缀的字节数或以%作后缀的被增加容量文件的百分比来表示。默认后缀为MB。如果没有指定时,则默认值为10%,每次扩容的最小值为64KB。
使用CREATE DATABASE命令创建数据库的过程中,SQLServer用模板数据库来初始化新建的数据库。在模板数据库中的所有用户定义的对象和数据库的设置都会被复制到新数据库中。理想的情况下,只有有限的用户被授权可创建数据库。系统安装后,只有系统管理员有这个特权,系统管理员可以通过GRANT CREATE DATABASE语句将这个特权授予其他用户。数据库的创建者被默认为数据库的所有者,可以通过系统存储过程sp_changedbowner来更改数据库所有者。

例:创建了一个Company数据库,该数据库的主数据文件逻辑名称为Company_data,物理名称为Company.mdb,初始大小为10MB,***尺寸为无限,增长速度为10%;数据库的日志文件逻辑名称为Company_log,物理文件名为Company.ldf,初始大小为1MB,***尺寸为5MB,增长速度为1MB。

程序如下:

create database company on primary
(name=company_data,filename='d:\mssql7\data\company.mdf',
size=10,
maxsize=unlimited,
filegrowth=10%)
log on
(name=company_log,
filename='d:\mssql7\data\company.ldf',
size=1,
maxsize=5,
filegrowth=1)

输出为:

The CREATE DATABASE process is allocating 10.00 MB on disk 'company_data'.
The CREATE DATABASE process is allocating 1.00 MB on disk 'company_log'.

例:创建一个指定多个数据文件和日志文件的数据库。该数据库名称为employees,有1个10MB和1个20MB的数据文件和2个10MB的事务日志文件。数据文件逻辑名称为employee1和employee2,物理文件名为employee1.mdf和employee2.mdf。主文件是employee1,由primary指定,两个数据文件的***尺寸分别为无限大和100MB,增长速度分别为10%和1MB。事务日志文件的逻辑名为employeelog1和employeelog2,物理文件名为employeelog1.ldf和employeelog2.ldf,***尺寸均为50MB,文件增长速度为1MB。

程序如下:

create database employees on primary
(name=employee1,
filename='d:\mssql7\data\employee1.mdf',
size=10,
maxsize=unlimited,
filegrowth=10%),
(name=employee2,
filename='d:\mssql7\data\employee2.mdf',
size=20,
maxsize=100,
filegrowth=1)
log on
(name=employeelog1,
filename='d:\mssql7\data\employeelog1.ldf',
size=10,
maxsize=50,
filegrowth=1),
(name=employeelog2,
filename='d:\mssql7\data\employeelog2.ldf',
size=10,
maxsize=50,
filegrowth=1)

输出结果为:

The CREATE DATABASE process is allocating 10.00 MB on disk 'employee1'.
The CREATE DATABASE process is allocating 20.00 MB on disk 'employee2'.
The CREATE DATABASE process is allocating 10.00 MB on disk 'employeelog1'.
The CREATE DATABASE process is allocating 10.00 MB on disk 'employeelog2'.

#p#

二、修改数据库

数据库创建以后,可以在企业管理器中利用数据库的属性设置,来更改创建时的某些设置和创建时无法设置的属性。也可以用ALTER DATABASE语句来修改数据库。

(a)利用企业管理器修改数据库

在企业管理器中,右击所要修改的数据库,从弹出的快捷菜单中选择“属性”选项,出现如图所示的数据库属性设置对话框。各页面内容如下:

常规页框中,可以看到数据库的状态、所有者、创建日期、大小、可用空间、备份和维护等信息。

数据文件和事务日志两个页框中,可以看到类似于创建数据库时的对话框,此时可以象在创建数据库时那样重新指定数据库文件和事务文件的名称、存储位置、初始容量大小等属性。

文件组页框中,可以添加或删除文件组,但是如果文件组中的文件不为空时,则不能被删除,必须先将文件移出文件组后再删除。

选项页框中,可以设置数据库的很多属性,如访问、故障还原、兼容性等。其中限制访问属性中的“db_owner,dbcreator或sysadmin的成员”选项表示只有数据库的所有者、数据库创建者和系统管理员才有权使用数据库。“单用户”表示数据库在同一时间只能供一个用户使用。其中的各项说明如下:

ANSI NULL默认设置:允许在数据库表中的每一列缺省值为空值。
递归触发器:控制是否允许在触发器中启动其他触发器。
自动更新统计信息:任何***化查询所需的统计数据过期后,会在***化时自动更新。
残缺页检测:允许自动检测有损坏的分页。页是数据库内容的基本存储单位,每个页的大小为8KB。由于SQL Server对页的读写单位是大小为512字节的扇区,当每个页的***个扇区被成功写入后,系统认为此页已成功写入。但若写完***个扇区后发生突发事件,产生有损坏的页,则需要通知备份来恢复数据库。
自动关闭:当数据库中无用户使用时,自动关闭该数据库,并将所占用的资源交还给操作系统。对那些不间断使用的数据库不要使用此选项,否则增加系统的开销。
自动收缩:允许定期对数据库进行检查,当数据库文件或日志文件中未用空间超过其大小的25%时,系统将会自动缩减文件的大小,使其未用空间等于25%。当文件大小没有超过其建立时的初始大小时,不会缩减文件。缩减后的文件不小于初始值。
自动创建统计信息:任何***化查询所需的统计数据丢失后,会在***化时自动重新建立。
使用被引用的标识符:使用的标识符必须用双引号括起来,单引号中的文字表示字符串。
权限页框中,可以设置用户对该数据库的使用权限,有关的权限设置将在后面的单节中详细介绍。

(b)使用语句ALTER DATABASE修改数据库

ALTER DATABASE语句可以增加和删除数据库中的文件,也可以修改数据库文件的属性。但必须注意,只有数据库管理员或具有CREATE DATABASE权限的数据库所有者才有权执行该语句。语法形式如下:

ALTER DATABASE databasename
{ add file <filespec>[,..n] [to filegroup filegroupname]
| add log file <filespec>[,..n]
| remove file logical_file_name [with delete]
| modify file <filespec>
| modify name=new_databasename
| add filegroup filegroup_name
| remove filegroup filegroup_name
| modify filegroup filegroup_name
{filegroup_property | name=new_filegroup_name}
}

这个语句允许创建和修改数据库文件、事务日志文件和文件组。三个子句add file,remove file和modify file分别指定创建、删除和修改已有的文件。此外,也可以使用to filegroup选择项把新文件赋给已有的文件组。add filegroup子句创建新的文件组,而remove filegroup从系统中删除文件组。add log file子句创建新的事务日志并将其添加到已有的数据库事务日志中。Filespec,..n表示文件说明,它包含像文件逻辑名和物理名这样的进一步选择项。

例:为sales数据库新增一个逻辑名为“saledata2”的数据文件,其大小及其***值分别为10MB和50MB。输入的SQL语句和执行结果如下:

Alter Database sales
ADD FILE(
NAME=saledata2,
FILENAME='d:\mssql7\data\saledata2.mdf',沈阳数据恢复,
Size=10MB,
Maxsize=50MB,
Filegrowth=5MB
)

例:将一个包含两个数据文件的文件组和一个事务日志文件添加到employees数据库中。

程序清单如下:

Alter database employees
Add filegroup data1
Alter database employees
add file
(name=employee3,
filename='d:\mssql7\data\employee3.ndf',
size=1,
maxsize=50,
filegrowth=1),
(name=employee4,
filename='d:\mssql7\data\employee4.ndf',
size=2,
maxsize=50,
filegrowth=10%)
to filegroup data1
Alter database employees
add log file
(name=employeelog3,
filename='d:\mssql7\data\employeelog3.ldf',
size=1,
maxsize=50,
filegrowth=1)

输出结果为

Extending database by 1.00 MB on disk 'employee3'.
Extending database by 2.00 MB on disk 'employee4'.
Extending database by 1.00 MB on disk 'employeelog3'.

 

三、删除数据库


对于不再需要的数据库,可以删除它,释放其在磁盘上所占用的空间。删除数据库有两种方式,即使用企业管理器和使用Drop语句。

(a)利用企业管理器删除数据库

在企业管理器中,右击所要删除的数据库,从弹出的快捷菜单中选择“删除”或直接按下键盘上的Delete按钮即可删除数据库,也可以选择数据库文件夹或图标后单击工具栏中的图标来删除数据库。

删除数据库时一定要慎重,因为系统无法轻易恢复被删除的数据,除非做过数据库的备份。每次只能删除一个数据库。

(b)利用Drop语句删除数据库

Drop语句可以从SQL Server中一次删除一个或多个数据库。语法如下:

DROP DATABASE database_name[,..n]

例:删除创建的数据库Company

输出结果为:

Deleting database file 'd:\mssql7\data\company.ldf'.
Deleting database file 'd:\mssql7\data\company.mdf'.

并不是所有的数据库在任何时候都是可以被删除,只有处于正常状态下的数据库,才能使用Drop语句删除。当数据库处于以下状态时不能被删除:数据库正在使用;数据库正在恢复;数据库包含用于复制的已经出版的对象。

以上就是我要为大家介绍的有关数据库的创建、修改和删除的全部内容,希望能对大家学习数据库有用。

【编辑推荐】

  1. 浅析SQL Server数据库在项目中的备份与还原
  2. 企业选型数据库系统的五点建议
  3. SQL Server数据库六种数据移动方法
责任编辑:迎迎 来源: 和讯网
相关推荐

2017-09-22 09:20:06

数据库索引

2010-05-21 10:01:11

MySQL数据库

2011-07-20 13:18:01

SQLite数据库修改和删除数据

2009-11-04 12:37:32

ADO.NET SQL

2015-07-23 17:02:55

oracle创建数据库

2011-08-25 11:22:39

SQL Server数据库字段说明

2011-03-30 08:56:42

Zabbix数据库

2009-06-11 13:16:57

JBPM数据库

2023-12-20 12:49:05

索引数据检索数据库

2011-05-26 15:03:47

catalog数据库

2010-05-06 09:30:16

Oracle创建数据库

2010-10-22 15:42:59

SQL Server创

2010-08-19 11:11:17

DB2手工添加数据库

2011-05-24 14:13:20

Oracle数据库

2023-09-05 08:40:57

删除数据库Oracle

2011-04-13 14:58:16

Oracle数据库删除

2011-05-26 14:18:49

Oracle数据库字段属性

2011-05-26 12:54:31

数据库数据库名

2009-05-08 09:56:37

MaxDBMySQL数据库管理

2010-04-14 13:14:46

Oracle数据库
点赞
收藏

51CTO技术栈公众号