《锋利的SQL(第2版)》——2.3 修改数据库

2.3 修改数据库

锋利的SQL(第2版)
创建数据库后,可以对其原始定义进行更改,如扩展或收缩数据库、设置数据库选项等。要修改数据库,可以使用ALTER DATABASE等语句。

2.3.1 扩展数据库和文件

默认情况下,SQL Server可根据创建数据库时定义的增长参数自动扩展数据库。也可以通过为现有数据库文件分配更多空间,或者创建新文件来手动扩展数据库。如果未将数据库设置为自动增长或硬盘上没有足够的磁盘空间,数据库已经用完分配给它的空间且不能自动增长,会出现1105错误。

扩展数据库时,必须使数据库的大小至少增加1 MB。如果扩展了数据库,则根据被扩展的文件,数据文件或事务日志文件将可以立即使用新空间。扩展数据库时,应指定允许文件增长到的最大大小。这样可防止文件无限制地增大,以致于用尽整个磁盘空间。

可以使用ALTER DATABASE语句设置数据库大小或向数据库添加文件,其语法格式如下:

ALTER DATABASE database_name
 ADD FILE <filespec> [ ,...n ]
    [ TO FILEGROUP { filegroup_name | DEFAULT } ]
 | ADD LOG FILE <filespec> [ ,...n ]
 | REMOVE FILE logical_file_name
 | MODIFY FILE <filespec>

其中部分用于设置文件组的属性,语法格式如下:

(
  NAME = logical_file_name 
  [ , NEWNAME = new_logical_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| % ] ]
  [ , OFFLINE ]
)

其中的OFFLINE选项用于将文件设置为脱机并使文件组中的所有对象都不可访问,仅在文件已损坏但可以还原时,才能使用该选项。其他参数选项请参考前面CREATE DATABASE语句中的说明。

例如,下面的语句用于将Sales中的SPri1_dat文件扩展到15 MB,并将最大值设置为25 MB。

ALTER DATABASE Sales
MODIFY FILE
(
  NAME = 'SPri1_dat',
  SIZE = 15MB,
  MAXSIZE = 25MB
)

下面的语句向SalesGroup1文件组中添加一个SGrp1Fi3_dat文件。

ALTER DATABASE Sales
ADD FILE
(
  NAME = SGrp1Fi3_dat,
  FILENAME = 'c:\SG1Fi3dt.ndf',
  SIZE = 5MB,
  MAXSIZE = 10MB,
  FILEGROWTH = 5MB
)
TO FILEGROUP SalesGroup1 ;

执行下面的语句则可以删除上面添加的SGrp1Fi3_dat文件。

ALTER DATABASE Sales
REMOVE FILE SGrp1Fi3_dat ;

2.3.2 向数据库中添加、删除和修改文件组

下面是使用ALTER DATABASE语句向数据库中添加、删除和修改文件组时的语法格式:

ALTER DATABASE database_name
  ADD FILEGROUP filegroup_name
  | REMOVE FILEGROUP filegroup_name
  | MODIFY FILEGROUP filegroup_name
    { <filegroup_updatability_option>
    | DEFAULT
    | NAME = new_filegroup_name
    }

部分的语法格式如下:

{ READONLY | READWRITE } | { READ_ONLY | READ_WRITE }

例如,下面的语句用于向Sales数据库中添加一个名为SalesGroup3的文件组。

ALTER DATABASE Sales
ADD FILEGROUP SalesGroup3 ;

下面的语句重命名文件组SalesGroup3为SalesGroup4。

ALTER DATABASE Sales
MODIFY FILEGROUP SalesGroup3
NAME = SalesGroup4 ;

2.3.3 收缩数据库和文件

可以使用DBCC SHRINKDATABASE语句或DBCC SHRINKFILE语句来手动收缩数据库或数据库中的文件。数据库中的每个文件都可以通过删除未使用的页的方法来减小。尽管数据库引擎会有效地重新使用空间,但某个文件多次出现无须原来大小的情况后,收缩文件就变得很有必要了。可以成组或单独地手动收缩数据库文件,也可以设置数据库的AUTO_SHRINK选项为ON来指定按间隔自动收缩。

文件始终从末尾开始收缩。例如,如果有个5 GB的文件,并且在DBCC SHRINKFILE语句中指定为4 GB,则数据库引擎将从文件的最后一个1 GB开始释放尽可能多的空间。如果文件中被释放的部分包含使用过的页,则数据库引擎先将这些页重新放置到文件的保留部分。只能将数据库收缩到没有剩余的可用空间为止。例如,如果某个5 GB的数据库有4 GB的数据,并且在DBCC SHRINKFILE语句中指定为 3 GB,则只能释放1 GB。

在使用DBCC SHRINKDATABASE语句时,无法将整个数据库收缩得比其初始大小更小。例如,如果数据库创建时的大小为10 MB,后来增长到100 MB,则该数据库最小只能收缩到10 MB,即使已经删除数据库的所有数据也是如此。

但是,使用DBCC SHRINKFILE语句时,可以将各个数据库文件收缩得比其初始大小更小。必须对每个文件分别进行收缩,而不能尝试收缩整个数据库。

1.手动收缩数据库
下面是DBCC SHRINKDATABASE语句的语法格式:

DBCC SHRINKDATABASE
( 'database_name' | database_id | 0
   [ ,target_percent ]
   [ , { NOTRUNCATE | TRUNCATEONLY } ]
)
[ WITH NO_INFOMSGS ]

'database_name' | database_id | 0

要收缩的数据库的名称或ID。如果指定0,则使用当前数据库。

target_percent

数据库收缩后的数据库文件中所需的剩余可用空间百分比。

NOTRUNCATE

指定在数据库文件中保留所释放的文件空间。如果未指定,将所释放的文件空间释放给操作系统。

TRUNCATEONLY

将数据文件中任何未使用空间释放给操作系统,并将文件收缩到最后分配的区,从而无须移动任何数据即可减小文件大小。使用TRUNCATEONLY时,将忽略target_percent设置。

WITH NO_INFOMSGS

取消严重级别从0到10的所有信息性消息。

下面的语句使Sales数据库中文件有10%的可用空间。

DBCC SHRINKDATABASE ('Sales', 10)

2.使用ALTER DATABASE设置自动收缩数据库
将数据库的AUTO_SHRINK选项设置为ON后,数据库引擎将自动收缩有可用空间的数据库。下面是使用ALTER DATABASE语句将Sales数据库的AUTO_SHRINK选项设置为ON的方法。

ALTER DATABASE Sales
SET AUTO_SHRINK ON ;

3.收缩文件
下面是DBCC SHRINKFILE语句的语法格式:

DBCC SHRINKFILE
(
  { 'file_name' | file_id }
  { [ , EMPTYFILE ]
  | [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ]
  }
)
[ WITH NO_INFOMSGS ]

'file_name'

要收缩的文件的逻辑名称。

file_id

要收缩的文件的标识(ID)号。可以使用FILE_ID函数获取文件的ID。

target_size

用兆字节表示的文件大小。如果未指定,则DBCC SHRINKFILE将文件大小减少到默认文件大小。

EMPTYFILE

将指定文件中的所有数据迁移到同一文件组中的其他文件。

NOTRUNCATE

将释放的文件空间保留在文件中。当与target_size一起指定NOTRUNCATE时,释放的空间不会释放给操作系统。唯一影响是将已使用的页从target_size行前面重新定位到文件的前面。

TRUNCATEONLY

将文件中的任何未使用空间释放给操作系统,并将文件收缩到最后一次分配的区,从而减小了文件大小,但是没有移动任何数据。不会尝试将行重新定位到未分配的页。使用TRUNCATEONLY时,将忽略target_size。

WITH NO_INFOMSGS

禁止显示所有信息性消息。

例如,下面的语句将Sales数据库中的SPri1_dat文件的大小收缩到8 MB。

USE Sales ;
GO
DBCC SHRINKFILE (SPri1_dat, 8) ;

以下示例演示了清空文件以便从数据库中将其删除的步骤。针对此示例,首先创建一个数据文件,并假设该文件包含数据。

USE AdventureWorks;
GO
-- 创建一个数据文件并假设其包含数据
ALTER DATABASE AdventureWorks
ADD FILE (
  NAME = Test1data,
  FILENAME = 'C:\t1data.ndf',
  SIZE = 5MB
  );
GO
-- 清空数据文件
DBCC SHRINKFILE (Test1data, EMPTYFILE);
GO

-- 从数据库中移除数据文件
ALTER DATABASE AdventureWorks
REMOVE FILE Test1data;
GO

2.3.4 设置数据库选项

可以在新建数据库时或对现有数据库通过“数据库属性”窗口进行部分数据库选项设置,而使用ALTER DATABASE的SET子句则可以进行更加全面的选项设置。可用的设置选项如表2-1所示。
表2-1 可用的数据库设置选项





2.3 修改数据库

创建数据库后,可以对其原始定义进行更改,如扩展或收缩数据库、设置数据库选项等。要修改数据库,可以使用ALTER DATABASE等语句。

2.3.1 扩展数据库和文件

默认情况下,SQL Server可根据创建数据库时定义的增长参数自动扩展数据库。也可以通过为现有数据库文件分配更多空间,或者创建新文件来手动扩展数据库。如果未将数据库设置为自动增长或硬盘上没有足够的磁盘空间,数据库已经用完分配给它的空间且不能自动增长,会出现1105错误。

扩展数据库时,必须使数据库的大小至少增加1 MB。如果扩展了数据库,则根据被扩展的文件,数据文件或事务日志文件将可以立即使用新空间。扩展数据库时,应指定允许文件增长到的最大大小。这样可防止文件无限制地增大,以致于用尽整个磁盘空间。

可以使用ALTER DATABASE语句设置数据库大小或向数据库添加文件,其语法格式如下:

ALTER DATABASE database_name
 ADD FILE <filespec> [ ,...n ]
    [ TO FILEGROUP { filegroup_name | DEFAULT } ]
 | ADD LOG FILE <filespec> [ ,...n ]
 | REMOVE FILE logical_file_name
 | MODIFY FILE <filespec>

其中部分用于设置文件组的属性,语法格式如下:

(
  NAME = logical_file_name 
  [ , NEWNAME = new_logical_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| % ] ]
  [ , OFFLINE ]
)

其中的OFFLINE选项用于将文件设置为脱机并使文件组中的所有对象都不可访问,仅在文件已损坏但可以还原时,才能使用该选项。其他参数选项请参考前面CREATE DATABASE语句中的说明。

例如,下面的语句用于将Sales中的SPri1_dat文件扩展到15 MB,并将最大值设置为25 MB。

ALTER DATABASE Sales
MODIFY FILE
(
  NAME = 'SPri1_dat',
  SIZE = 15MB,
  MAXSIZE = 25MB
)

下面的语句向SalesGroup1文件组中添加一个SGrp1Fi3_dat文件。

ALTER DATABASE Sales
ADD FILE
(
  NAME = SGrp1Fi3_dat,
  FILENAME = 'c:\SG1Fi3dt.ndf',
  SIZE = 5MB,
  MAXSIZE = 10MB,
  FILEGROWTH = 5MB
)
TO FILEGROUP SalesGroup1 ;

执行下面的语句则可以删除上面添加的SGrp1Fi3_dat文件。

ALTER DATABASE Sales
REMOVE FILE SGrp1Fi3_dat ;

2.3.2 向数据库中添加、删除和修改文件组

下面是使用ALTER DATABASE语句向数据库中添加、删除和修改文件组时的语法格式:

ALTER DATABASE database_name
  ADD FILEGROUP filegroup_name
  | REMOVE FILEGROUP filegroup_name
  | MODIFY FILEGROUP filegroup_name
    { <filegroup_updatability_option>
    | DEFAULT
    | NAME = new_filegroup_name
    }

部分的语法格式如下:

{ READONLY | READWRITE } | { READ_ONLY | READ_WRITE }
例如,下面的语句用于向Sales数据库中添加一个名为SalesGroup3的文件组。

ALTER DATABASE Sales
ADD FILEGROUP SalesGroup3 ;

下面的语句重命名文件组SalesGroup3为SalesGroup4。

ALTER DATABASE Sales
MODIFY FILEGROUP SalesGroup3
NAME = SalesGroup4 ;

2.3.3 收缩数据库和文件

可以使用DBCC SHRINKDATABASE语句或DBCC SHRINKFILE语句来手动收缩数据库或数据库中的文件。数据库中的每个文件都可以通过删除未使用的页的方法来减小。尽管数据库引擎会有效地重新使用空间,但某个文件多次出现无须原来大小的情况后,收缩文件就变得很有必要了。可以成组或单独地手动收缩数据库文件,也可以设置数据库的AUTO_SHRINK选项为ON来指定按间隔自动收缩。

文件始终从末尾开始收缩。例如,如果有个5 GB的文件,并且在DBCC SHRINKFILE语句中指定为4 GB,则数据库引擎将从文件的最后一个1 GB开始释放尽可能多的空间。如果文件中被释放的部分包含使用过的页,则数据库引擎先将这些页重新放置到文件的保留部分。只能将数据库收缩到没有剩余的可用空间为止。例如,如果某个5 GB的数据库有4 GB的数据,并且在DBCC SHRINKFILE语句中指定为 3 GB,则只能释放1 GB。

在使用DBCC SHRINKDATABASE语句时,无法将整个数据库收缩得比其初始大小更小。例如,如果数据库创建时的大小为10 MB,后来增长到100 MB,则该数据库最小只能收缩到10 MB,即使已经删除数据库的所有数据也是如此。

但是,使用DBCC SHRINKFILE语句时,可以将各个数据库文件收缩得比其初始大小更小。必须对每个文件分别进行收缩,而不能尝试收缩整个数据库。

1.手动收缩数据库
下面是DBCC SHRINKDATABASE语句的语法格式:

DBCC SHRINKDATABASE
( 'database_name' | database_id | 0
   [ ,target_percent ]
   [ , { NOTRUNCATE | TRUNCATEONLY } ]
)
[ WITH NO_INFOMSGS ]

'database_name' | database_id | 0

要收缩的数据库的名称或ID。如果指定0,则使用当前数据库。

target_percent

数据库收缩后的数据库文件中所需的剩余可用空间百分比。

NOTRUNCATE

指定在数据库文件中保留所释放的文件空间。如果未指定,将所释放的文件空间释放给操作系统。

TRUNCATEONLY

将数据文件中任何未使用空间释放给操作系统,并将文件收缩到最后分配的区,从而无须移动任何数据即可减小文件大小。使用TRUNCATEONLY时,将忽略target_percent设置。

WITH NO_INFOMSGS

取消严重级别从0到10的所有信息性消息。

下面的语句使Sales数据库中文件有10%的可用空间。

DBCC SHRINKDATABASE ('Sales', 10)
2.使用ALTER DATABASE设置自动收缩数据库
将数据库的AUTO_SHRINK选项设置为ON后,数据库引擎将自动收缩有可用空间的数据库。下面是使用ALTER DATABASE语句将Sales数据库的AUTO_SHRINK选项设置为ON的方法。

ALTER DATABASE Sales
SET AUTO_SHRINK ON ;

3.收缩文件
下面是DBCC SHRINKFILE语句的语法格式:

DBCC SHRINKFILE
(
  { 'file_name' | file_id }
  { [ , EMPTYFILE ]
  | [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ]
  }
)
[ WITH NO_INFOMSGS ]

'file_name'

要收缩的文件的逻辑名称。

file_id

要收缩的文件的标识(ID)号。可以使用FILE_ID函数获取文件的ID。

target_size

用兆字节表示的文件大小。如果未指定,则DBCC SHRINKFILE将文件大小减少到默认文件大小。

EMPTYFILE

将指定文件中的所有数据迁移到同一文件组中的其他文件。

NOTRUNCATE

将释放的文件空间保留在文件中。当与target_size一起指定NOTRUNCATE时,释放的空间不会释放给操作系统。唯一影响是将已使用的页从target_size行前面重新定位到文件的前面。

TRUNCATEONLY

将文件中的任何未使用空间释放给操作系统,并将文件收缩到最后一次分配的区,从而减小了文件大小,但是没有移动任何数据。不会尝试将行重新定位到未分配的页。使用TRUNCATEONLY时,将忽略target_size。

WITH NO_INFOMSGS

禁止显示所有信息性消息。

例如,下面的语句将Sales数据库中的SPri1_dat文件的大小收缩到8 MB。

USE Sales ;
GO
DBCC SHRINKFILE (SPri1_dat, 8) ;

以下示例演示了清空文件以便从数据库中将其删除的步骤。针对此示例,首先创建一个数据文件,并假设该文件包含数据。

USE AdventureWorks;
GO
-- 创建一个数据文件并假设其包含数据
ALTER DATABASE AdventureWorks
ADD FILE (
  NAME = Test1data,
  FILENAME = 'C:\t1data.ndf',
  SIZE = 5MB
  );
GO
-- 清空数据文件
DBCC SHRINKFILE (Test1data, EMPTYFILE);
GO
-- 从数据库中移除数据文件
ALTER DATABASE AdventureWorks
REMOVE FILE Test1data;
GO

2.3.4 设置数据库选项

可以在新建数据库时或对现有数据库通过“数据库属性”窗口进行部分数据库选项设置,而使用ALTER DATABASE的SET子句则可以进行更加全面的选项设置。可用的设置选项如表2-1所示。







例如,下面的语句设置Sales数据库的ANSI_NULLS和ANSI_NULL_DEFAULT选项为ON。

ALTER DATABASE Sales
SET ANSI_NULLS ON,ANSI_NULL_DEFAULT ON ;

2.3.5 重命名数据库

在SQL Server中,可以更改数据库的名称。在重命名数据库之前,应该确保没有人使用该数据库,而且该数据库设置为单用户模式。

下面是使用ALTER DATABASE语句重命名数据库时的语法格式:

ALTER DATABASE database_name
MODIFY NAME = new_database_name ;
例如,下面语句将Sales数据库重命名为Sales1。

ALTER DATABASE Sales
SET SINGLE_USER; --设置为单用户
GO
ALTER DATABASE Sales
MODIFY NAME = Sales1;  --重命名为Sales1
GO
ALTER DATABASE Sales1 --重新设置为多用户
SET MULTI_USER;

| SUPPLEMENTAL_LOGGING | 指定为ON时,会将详细信息添加到第三方产品的日志中;指定为OFF时,则不将详细信息添加到日志中 默认值为OFF |

例如,下面的语句设置Sales数据库的ANSI_NULLS和ANSI_NULL_DEFAULT选项为ON。

ALTER DATABASE Sales SET ANSI_NULLS ON,ANSI_NULL_DEFAULT ON ;

2.3.5 重命名数据库

在SQL Server中,可以更改数据库的名称。在重命名数据库之前,应该确保没有人使用该数据库,而且该数据库设置为单用户模式。


下面是使用ALTER DATABASE语句重命名数据库时的语法格式:
ALTER DATABASE database_name MODIFY NAME = new_database_name ;

例如,下面语句将Sales数据库重命名为Sales1。

ALTER DATABASE Sales SET SINGLE_USER; --设置为单用户 GO ALTER DATABASE Sales MODIFY NAME = Sales1;  --重命名为Sales1 GO ALTER DATABASE Sales1 --重新设置为多用户 SET MULTI_USER; ```
时间: 2024-08-02 19:55:45

《锋利的SQL(第2版)》——2.3 修改数据库的相关文章

《锋利的SQL(第2版)》——1.5 常量和变量

1.5 常量和变量 锋利的SQL(第2版) 常量和变量是程序设计过程中必不可少的元素,在前面的内容也涉及了对变量的简单介绍. 1.5.1 常量 常量,也称为文字值或标量值,是表示一个特定数据值的符号.常量的格式取决于它所表示的值的数据类型. 1.字符串常量 字符串常量包含在单引号内,可以由字母数字字符(a-z.A-Z和0-9)以及特殊字符(如!.@和#)组成.例如: '这是我的字符串常量' 如果单引号中的字符串包含一个嵌入的引号,可以使用两个单引号表示嵌入的单引号.对于嵌入在双引号中的字符串则没

《锋利的SQL(第2版)》——1.3 Transact-SQL语言的类型

1.3 Transact-SQL语言的类型 锋利的SQL(第2版) 在介绍了SQL的起源后,来看一下Transact-SQL包括哪些语言类型.首先,为了遵循ANSI SQL标准,Transact-SQL提供了数据定义语言(Data Definition Language,DDL)语句和数据操纵语言(Data Manipulation Language,DML)语句:其次,为了增强灵活性,Transact-SQL还提供了用于编程的流控制语句和其他语句. 对于语言类型,读者仅做大致了解就可以.在实际

《锋利的SQL(第2版)》——1.6 运算符

1.6 运算符 锋利的SQL(第2版) 运算符是一种符号,用来指定要在一个或多个表达式中执行的操作.SQL Server所使用的运算符可以分为算术运算符.赋值运算符.位运算符.比较运算符.逻辑运算符.字符串串联运算符和一元运算符,共7个类别. 1.6.1 算术运算符 算术运算符可以对两个表达式执行数学运算,这两个表达式可以是数值数据类型类别的任何数据类型.可用算术运算符如表1-5所示. 表1-5 算术运算符 加(+)和减(-)运算符也可用于对datetime和smalldatetime型值执行算

《锋利的SQL(第2版)》——1.2 SQL的理论基础

1.2 SQL的理论基础 锋利的SQL(第2版) E. F. Codd博士提出的关系数据库管理系统模型基于两个数学分支:集合理论和谓词逻辑.理解集合理论,对于构建数据库结构,减少数据冗余,保证数据一致性方面具有重要意义.所以,即使你是一个资深的DBA,也建议你重温本节内容. 1.2.1 集合理论 集合理论(集合论)是由数学家Georg Cantor创建的,这是一个基于关系模型的数学分支.Cantor的集合定义如下: 任意集合体M是我们感知或想到的,能够确定的互异对象m(称之为M的元素)的整体.

《锋利的SQL(第2版)》——1.7 常用函数

1.7 常用函数 锋利的SQL(第2版)为满足通常的程序设计需要,Transact-SQL语言提供了非常丰富的函数,包括聚合函数.配置函数.游标函数.日期和时间函数.数学函数等.本节将介绍一些常用的函数类型. 1.7.1 聚合函数 聚合函数对一组值执行计算并返回单个值.除了COUNT以外,聚合函数都会忽略空值.聚合函数经常与SELECT语句的GROUP BY子句一起使用.例如,下面的语句使用COUNT函数来获取Employee表中的员工数量. USE AdventureWorks2014; --

《锋利的SQL(第2版)》——1.8 查询工具

1.8 查询工具 锋利的SQL(第2版)在本章的前面介绍了SQL的语法规则.常量和变量.运算符.函数等基本知识,到底通过什么工具来执行SQL语句呢?对于程序开发人员来而言,可以从客户端应用程序发送SQL语句到服务器端执行.此外,出于服务器管理和SQL测试等需要,SQL Server也提供了Management Studio.sqlcmd.bcp和sqlps工具,可以通过它们执行SQL语句. 其中,bcp用于大量行插入SQL Server表,但该工具不需要具有Transact-SQL知识.sqlp

《锋利的SQL(第2版)》——2.5 架构管理

2.5 架构管理 锋利的SQL(第2版)前面提过,架构是数据库中对象的容器,对于被集体管理的对象子集,通过架构可以简化操作.用户拥有架构和默认架构DBO,默认架构用于解析未使用其完全限定名称引用的对象的名称.这里的意思是,在访问默认架构中的对象时,不需要指定架构的名称.而对于非默认架构,则需要使用下面的格式进行访问,不过,微软建议你一直使用下面的两部分式对象名称. 架构名称.对象名称 2.5.1 创建架构 可以使用CREATE SCHEMA语句创建架构,语法格式如下所示.其中的schema_el

《锋利的SQL(第2版)》——2.2 创建数据库

2.2 创建数据库 锋利的SQL(第2版)在创建数据库之前,必须先确定数据库的名称.所有者.大小以及存储该数据库的文件和文件组.所谓所有者,即是创建数据库的用户.一般情况下,大多数产品对象由数据库所有者拥有. 在创建数据库之前,应注意下列事项. 要创建数据库,必须至少拥有CREATE DATABASE.CREATE ANY DATABASE或ALTER ANY DATABASE权限.创建数据库的用户将成为该数据库的所有者.对于一个SQL Server实例,最多可以创建32767个数据库.数据库名

《锋利的SQL(第2版)》——第1章 SQL简介

第1章 SQL简介 锋利的SQL(第2版)SQL的全称是结构化查询语言(Structured Query Language),是一种在关系数据库管理系统(Relational Database Management Systems,RDBMS)中查询和管理数据的标准语言.这是一种非常易读和易用的语言,只要稍微有一点英语基础,一些简单的数据查询.操作语句几乎都可以理解.但是,要想精通SQL,并不是一件很容易的事情,一是因为在数据处理方面有许许多多的个案,要处理好这些个案,除了具有缜密的逻辑思维,还

《锋利的SQL(第2版)》导读

前言 锋利的SQL(第2版)本书第1版是在4年前出版的,至今仍在被众多的SQL爱好者追捧,甚至有人不辞辛劳地逐页扫描,上传至网络进行分享.本书第1版是基于SQL Server 2008编写的,时光荏苒,目前SQL Server 2014已经发布,窗口函数等新功能不断丰富和发展,先前需要编写很复杂的代码才能完成的工作,现在寥寥几行就能把问题解决.无论是从代码可读性还是执行效率方面看,SQL Server 2014都值得我们去深入学习.因此,我们在第1版的基础上,对书的内容重新进行了补充和完善.此外