1、第2章 数据库创建,2 . 1 SQL Server数据库基本概念,2 . 2 界面方式创建数据库,2 . 3 命令方式创建数据库,2 . 1 SQL Server数据库基本概念,2.1.1 逻辑数据库 SQL Server数据库是存储数据的容器,是一个存放数据的表和支持这些数据的存储、检索、安全性和完整性的逻辑成分所组成的集合。用户观点将数据库称为逻辑数据库,组成数据库的逻辑成分称为数据库对象。SQL Server 2005的数据库对象主要包括表、视图、索引、存储过程、触发器和约束等。 (1) 完全限定名。在SQL Server 2005中,完全限定名是对象的全名,包括4部分:服务器名、数据
2、库名、数据库架构名和对象名,其格式为: server.database.scheme.object,2.1.1 逻辑数据库,(2) 部分限定名。在使用T-SQL编程时,使用全名往往比较烦琐且没有必要,所以常省略全名中的某些部分,对象全名的4个部分中的前3个部分均可以被省略,当省略中间的部分时,圆点符“.”不可省略。把只包含对象完全限定名中的一部分的对象名称为部分限定名。当用户使用对象的部分限定名时,SQL Server可以根据系统的当前工作环境确定对象名称中省略的部分。 在部分限定名中,未指出的部分使用以下默认值: 服务器:默认为本地服务器。 数据库:默认为当前数据库。 数据库架构名:默认为d
3、bo。,2.1.2 物理数据库,1页和区 SQL Server 2005中有两个主要的数据存储单位:页和区。 “页”是SQL Server 2005中用于数据存储的最基本单位。 “区”是用于管理空间的基本单位。 2数据库文件 SQL Server 2005所使用的文件包括3类: (1) 主数据文件。 (2) 次要数据文件。 (3) 日志文件。 3文件组 在SQL Server 2005中有两类文件组: (1) 主文件组。 (2) 用户定义文件组。 一个文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用;日志文件是独立的,它不能作为任何文件组的成员。,数据库文件,主要数据文件(必有、唯
4、一)数据库 次要数据文件(可有、一个或多个)日志文件(必有、一个或多个),数据(文件) .mdf 或 .ndf,日志(文件) .ldf,数据文件,2.1.3 系统数据库和用户数据库,(1) master数据库包含了SQL Server诸如登录账号、系统配置、数据库位置及数据库错误信息等,用于控制用户数据库和SQL Server的运行。 (2) model数据库为新创建的数据库提供模板。 (3) msdb数据库为“SQL Server Agent”调度信息和作业记录提供存储空间。 (4) tempdb数据库为临时表和临时存储过程提供存储空间,所有与系统连接的用户的临时表和临时存储过程都存储于该数
5、据库中。,2 . 2 界面方式创建数据库,2.2.1 数据库的创建 下面以创建学生成绩管理系统的数据库(命名为PXSCJ)为例说明使用“SQL Server Management Studio”窗口图形化向导创建数据库的过程。 【例2.1】 创建数据库PXSCJ,数据文件和日志文件的属性按默认值设置。 创建该数据库的主要过程为: 第1步:以系统管理员身份登录计算机,在桌面上单击“开始”“所有程序”“Microsoft SQL Server 2005”选择并启动“SQL Server Management Studio”。如图2.1所示,使用默认的系统配置连接到数据库服务器。,2.2.1 数据库
6、的创建,第2步:选择“对象资源管理器”中的“数据库”,右击鼠标,在弹出的快捷菜单中选择“新建数据库”菜单项,打开“新建数据库”窗口。 第3步:“新建数据库”窗口的左上方共有三个选项卡:“常规”、“选项”和“文件组”。这里只配置“常规”选项卡,其他选项卡使用系统默认设置。,2.2.1 数据库的创建,到这里数据库PXSCJ已经创建完成了。此时,可以在“对象资源管理器”窗口的“数据库”目录下找到该数据库所对应的图标,如图所示。,1数据库的修改 第1步:选择需要进行修改的数据库PXSCJ,单击鼠标右键,在出现的快捷菜单中选择“属性”菜单项,如图2.5所示。 第2步:选择“属性”菜单项后,出现如图2.6
7、所示的“数据库属性-PXSCJ”窗口。从图中的“选择页”列表中可以看出,它包括8个选项卡。,2.2.2 数据库的修改和删除,(1) 改变数据文件的大小和增长方式。,2.2.2 数据库的修改和删除,(2) 增加或删除数据文件。 【例2.2】 在PXSCJ数据库中增加数据文件PXSCJ_2,其属性均取系统默认值。,2.2.2 数据库的修改和删除,(3) 增加或删除文件组。 【例2.3】 设要在数据库PXSCJ中增加一个名为FGroup的文件组。 (4) 数据库的重命名。,2.2.2 数据库的修改和删除,2数据库系统的删除 数据库系统在长时间使用之后,系统的资源消耗加剧,导致运行效率下降,因此DBA
8、需要适时地对数据库系统进行一定的调整。 【例2.4】 删除PXSCJ数据库。,2 . 3 命令方式创建数据库,2.3.1 创建数据库 使用“CREATE DATABASE”命令创建数据库,创建前要确保用户具有创建数据库的权限。 语法格式: CREATE DATABASE ON /*指定数据库文件和文件组属性*/ PRIMARY ,.n , ,.n LOG ON ,.n /*指定日志文件属性*/ COLLATE ;,2.3.1 创建数据库,其中,和的定义格式如下::= /*指定数据库文件的属性*/ (NAME = ,FILENAME = , SIZE = KB | MB | GB | TB ,
9、MAXSIZE = KB | MB | GB | TB | UNLIMITED , FILEGROWTH = KB | MB | GB | TB | % ) ,.n := /*指定数据库文件组的属性*/ FILEGROUP DEFAULT ,.n ,2.3.1 创建数据库,在解释语法格式之前,应先了解本书Transact-SQL语法格式使用的约定。如表2.1所示,表2.1对Transact-SQL语法格式的约定进行了说明。,2.3.1 创建数据库,【例2.5】 创建一个名为TEST1的数据库,其初始大小为5MB,最大不限制,允许数据库自动增长,增长方式是按10%比例增长。日志文件初始为2MB,
10、最大可增长到5MB,按1MB增长。 在“SQL Server Management Studio”窗口中单击“新建查询”按钮新建一个查询窗口,如图2.12所示。,2.3.1 创建数据库,在“查询分析器”窗口中输入如下Transact-SQL语句: CREATE DATABASE TEST1ON(NAME= TEST1_DATA,FILENAME=C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataTEST1_DATA.mdf,SIZE=5MB,FILEGROWTH=10% )LOG ON(NAME=TEST1_log,FILENAME=C:Pr
11、ogram FilesMicrosoft SQL ServerMSSQL.1MSSQLDataTEST1_log.ldf,SIZE=2MB,MAXSIZE=5MB,FILEGROWTH=1MB),2.3.1 创建数据库,单击“执行”按钮。如图2.13所示,CREATE DATABASE命令执行时,在结果窗口中将显示命令执行的进展情况。,2.3.1 创建数据库,【例2.6】 创建一个名为TEST2的数据库,它有两个数据文件,其中主数据文件为20MB,不限制增长,按10%增长。1个辅助数据文件为20MB,最大不限,按10%增长;有1个日志文件,大小为50MB,最大为100MB,按10MB增长。在“
12、查询分析器”窗口中输入如下Transact-SQL语句并执行。 【例2.7】 创建一个具有2个文件组的数据库TEST3。要求: (1) 主文件组包括文件TEST3_dat1,文件初始大小为20MB,最大为60MB,按5MB增长; (2) 有1个文件组名为TEST3Group1,包括文件TEST3_dat2,文件初始大小为10MB,最大为30MB,按10%增长; (3) 数据库只有一个日志文件,初始大小为20MB,最大为50MB,按5MB增长。 新建一个查询,在“查询分析器”窗口中输入如下Transact-SQL语句并执行。,2.3.2 修改数据库,使用“ALTER DATABASE”命令可以对
13、数据库进行修改。语法格式: ALTER DATABASE ADD FILE ,n TO FILEGROUP /*在文件组中增加数据文件*/| ADD LOG FILE ,n /*增加日志文件*/| REMOVE FILE /*删除数据文件*/| ADD FILEGROUP /*增加文件组*/| REMOVE FILEGROUP /*删除文件组*/| MODIFY FILE /*更改文件属性*/| MODIFY NAME = /*数据库更名*/| MODIFY FILEGROUP NAME = /*修改文件组*/| SET ,.n /*设置数据库属性*/| COLLATE /*指定数据库排序规则
14、*/ ;,2.3.2 修改数据库,【例2.8】 假设已经创建了例2.5中的数据库TEST1,它只有一个主数据文件,其逻辑文件名为TEST1_DATA,大小为5MB,最大为50MB,增长方式为按10%增长。 在“查询分析器”窗口中输入如下Transact-SQL语句: -修改数据文件的最大值和增长方式 ALTER DATABASE TEST1MODIFY FILE (NAME = TEST1_DATA,MAXSIZE =100MB, /*将主数据文件的最大大小改为100MB*/FILEGROWTH = 5MB /*将主数据文件的增长方式改为按5MB增长*/) GO,2.3.2 修改数据库,【例2
15、.9】 首先为数据库TEST1增加数据文件TEST1BAK,然后删除该数据文件。 在“查询分析器”窗口中输入如下Transact-SQL语句并执行: ALTER DATABASE TEST1ADD FILE(NAME = TEST1BAK,FILENAME = E:TEST1BAK.ndf,SIZE = 10MB,MAXSIZE = 50MB,FILEGROWTH = 5%) 删除数据文件TEST1BAK的命令如下: ALTER DATABASE TEST1REMOVE FILE TEST1BAK GO,2.3.2 修改数据库,【例2.10】 为数据库TEST1添加文件组FGROUP,并为此文
16、件组添加两个大小均为10MB的数据文件。 在“查询分析器”窗口中输入如下Transact-SQL语句并执行。 【例2.11】 从数据库中删除文件组,将例2.10中添加到TEST1数据库中的文件组FGROUP删除。 在“查询分析器”窗口中输入如下Transact-SQL语句并执行: ALTER DATABASE TEST1REMOVE FILE TEST1_DATA2 GO ALTER DATABASE TEST1REMOVE FILE TEST1_DATA3 GO ALTER DATABASE TEST1REMOVE FILEGROUP FGROUP GO,2.3.2 修改数据库,【例2.12
17、】 为数据库TEST1添加一个日志文件。 在“查询分析器”窗口中输入如下Transact-SQL语句并执行: ALTER DATABASE TEST1ADD LOG FILE( NAME = TEST1_LOG2,FILENAME = C:TEST1_Log2.ldf,SIZE = 5MB,MAXSIZE =10 MB,FILEGROWTH = 1MB) GO,2.3.2 修改数据库,【例2.13】 从数据库TEST1中删除一个日志文件,将日志文件TEST1_LOG2删除。 在“查询分析器”窗口中输入如下Transact-SQL语句并执行: -删除日志文件 ALTER DATABASE TEST1REMOVE FILE TEST1_LOG2 GO -重命名数据库名 ALTER DATABASE TEST1MODIFY NAME = JUST_TEST GO,2.3.3 删除数据库,删除数据库使用“DROP DATABASE”命令。语法格式: DROP DATABASE ,n; 其中,database_name是要删除的数据库名。例如,要删除数据库TEST2,使用命令: DROP DATABASE TEST2,谢谢您的关注!,