一、创建数据库
创建数据库的语法如下:
CREATE DATABASE [数据库名] --数据库信息
ON(
[新文件信息]
)
LOG ON( --日志文件信息(可选)
[新文件信息]
)
[新文件信息]=[
NAME=[逻辑文件名],
FILENAME=[文件绝对路径名],
SIZE=[文件初始大小],--文件初始大小必须大于512KB
MAXSIZE=[文件最大大小],
FILEGROWTH=[数据库增长方式(按大小或安装百分比)]
]
例如:创建一个名为test的数据库:
CREATE DATABASE test --数据库信息
ON(
NAME=test_db, --数据库逻辑文件名
FILENAME='D:\test_db.mdf', --数据库绝对路径
SIZE=1MB, --文件初始大小必须大于512KB
MAXSIZE=1GB,
FILEGROWTH=1MB
)
LOG ON( --日志文件信息(可选)
NAME=test_log,
FILENAME='D:\test_db.ldf',
SIZE=512KB, --文件初始大小必须大于512KB
MAXSIZE=1GB,
FILEGROWTH=1% --每次增长1%
)
二、删除数据库
删除数据库很简单:
DROP DATABASE [数据库名]
例:
DROP DATABASE test --删除名为test的数据库
三,修改数据库
ALTER DATABASE [数据库名]
MODIFY NAME= [新数据库名] --修改数据库名
| MODIFY FILE [数据库文件信息] --修改数据库文件的信息
| ADD FILE [新文件信息] --为数据库添加新文件
| ADD LOG [新文件信息] --添加新日志文件
| REMOVE FILE [逻辑文件名] --移除数据库指定文件
[数据库文件信息]=[
NAME=[数据库文件的逻辑文件名],
SIZE=[文件被修改后的文件大小], --修改数据库文件的大小,不能比以前的空间小
MAXSIZE=[文件最大大小],
FILEGROWTH=[数据库增长方式(按大小或安装百分比)]
]
ALTER语句每次只能修改一个文件属性。
例:添加新文件
ALTER DATABASE sample_db
ADD FILE(
NAME=sample_db2,
FILENAME='D:\sample_db2',
SIZE=10, --默认为MB
MAXSIZE=1GB,
FILEGROWTH=1%
)
1.缩小数据库占用的空间
DBCC SHRINKDATABASE ([数据库文件名],[剩余可用空间])
例:
DBCC SHRINKDATABASE (UserDB, 10)
减少 UserDB 数据库中数据文件和日志文件的大小并允许数据库中有 10 % 的可用空间。
四、查看数据库信息
1.使用目录视图。

2.使用函数
select DATABASEPROPERTYEX('sample_db','status')
上面将查看sample_db数据库的status信息。
下面是DATABASEPROPERTYEX函数的第二个参数。
| 属性 | 描述 | 返回的值 |
| —————————————– | ———————————————————— | ———————————————————— |
| 排序规则 | 数据库的默认排序规则名称。 | 排序规则名称 NULL:数据库未启动。 基本数据类型:nvarchar(128) |
| ComparisonStyle | 排序规则的 Windows 比较样式。 使用以下样式值生成已完成 ComparisonStyle 值的位图: 忽略大小写:1 忽略重音:2 忽略假名:65536 忽略宽度:131072 例如,196609 的默认值是将忽略大小写、忽略假名和忽略宽度选项合并在一起的结果。 | 返回比较样式。 对所有二进制排序规则均返回 0。 基本数据类型:int |
| 版本 | 数据库版本或服务层。 | 适用范围:Azure SQL Database、SQL 数据仓库。 常规用途 业务关键型 “基本” Standard Premium 系统(针对 master 数据库) NULL:数据库未启动。 基本数据类型:nvarchar(64) |
| IsAnsiNullDefault | 数据库遵循 ISO 规则,允许 Null 值。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsAnsiNullsEnabled | 所有与 Null 的比较将取值为未知。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsAnsiPaddingEnabled | 在比较或插入前,字符串将被填充到相同长度。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsAnsiWarningsEnabled | 发生标准错误条件时,SQL Server 会发出错误消息或警告消息。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsArithmeticAbortEnabled | 如果执行查询时发生溢出或被零除错误,则将结束查询。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsAutoClose | 在最后一个用户退出后,数据库完全关闭并释放资源。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsAutoCreateStatistics | 查询优化器根据需要创建单列统计信息以提高查询性能。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsAutoCreateStatisticsIncremental | 条件允许时,自动创建的单列统计信息递增。 | 适用范围: SQL Server 2014 (12.x) 到 SQL Server 2017。 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsAutoShrink | 可以定期自动收缩数据库文件。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsAutoUpdateStatistics | 查询使用的现有统计信息可能已过期时,查询优化器更新这些统计信息。 | 1:TRUE 0:FALSE NULL:输入无效 基本数据类型:int |
| IsClone | 数据库是使用 DBCC CLONEDATABASE 创建的用户数据库的仅限架构和仅限统计数据副本。 有关详细信息,请参阅 Microsoft 支持文章。 | 适用对象:SQL Server 2014 (12.x) SP2 到 SQL Server 2017。 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsCloseCursorsOnCommitEnabled | 提交事务后,会关闭所有打开的游标。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsFulltextEnabled | 支持对数据库进行全文和语义索引。 | 适用范围: SQL Server 2008 到 SQL Server 2017。 1:TRUE 0:FALSE NULL:输入无效 基本数据类型:int 注意: 此属性的值现在无效。 用户数据库始终启用全文搜索。 SQL Server 的后续版本会删除此属性。 请不要在新的开发工作中使用此属性,并尽快修改当前仍在使用此属性的应用程序。 |
| IsInStandBy | 数据库以只读方式联机,并允许还原日志。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsLocalCursorsDefault | 游标声明默认为 LOCAL。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsMemoryOptimizedElevateToSnapshotEnabled | 在会话设置 TRANSACTION ISOLATION LEVEL 设置为 READ COMMITTED、READ UNCOMMITTED 或较低的隔离级别时,使用 SNAPSHOT 隔离访问内存优化表。 | 适用范围: SQL Server 2014 (12.x) 到 SQL Server 2017。 1:TRUE 0:FALSE 基本数据类型:int |
| IsMergePublished | 如果安装了复制,则 SQL Server 支持发布数据库表供合并复制使用。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsNullConcat | Null 串联操作数产生 NULL。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsNumericRoundAbortEnabled | 表达式中缺少精度时将产生错误。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsParameterizationForced | PARAMETERIZATION 数据库 SET 选项为 FORCED。 | 1:TRUE 0:FALSE NULL:无效输入 |
| IsQuotedIdentifiersEnabled | 允许对标识符使用英文双引号。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsPublished | 如果安装了复制,SQL Server 支持发布数据库表供快照复制或事务复制使用。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsRecursiveTriggersEnabled | 已启用触发器递归触发。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsSubscribed | 数据库已订阅发布。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsSyncWithBackup | 数据库为发布数据库或分发数据库,并且支持在不中断事务复制的情况下还原。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsTornPageDetectionEnabled | SQL Server 数据库引擎检测到因电力故障或其他系统故障造成的不完全 I/O 操作。 | 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsVerifiedClone | 数据库是使用 DBCC CLONEDATABASE 的 WITH VERIFY_CLONEDB 选项创建的用户数据库的仅限架构和仅限统计信息副本。 有关详细信息,请参阅此 Microsoft 支持文章。 | 适用对象:从 SQL Server 2016 (13.x) SP2 开始。 1:TRUE 0:FALSE NULL:无效输入 基本数据类型:int |
| IsXTPSupported | 指示数据库是否支持内存中 OLTP,即创建和使用内存优化表和本机编译模块。 特定于 SQL Server: IsXTPSupported 与任何 MEMORY_OPTIMIZED_DATA 文件组的存在与否无关,创建内存中 OLTP 对象则需要该文件组。 | 适用范围:SQL Server(SQL Server 2016 (13.x) 到 SQL Server 2017)和 Azure SQL Database。 1:TRUE 0:FALSE NULL:输入无效,出现错误或不适用 基本数据类型:int |
| LastGoodCheckDbTime | 在指定数据库上运行的上一成功 DBCC CHECKDB 的日期和时间。1 如果 DBCC CHECKDB 未在数据库上运行,则返回 1900-01-01 00:00:00.000。 | 适用对象:从 SQL Server 2016 (13.x) SP2 开始。 日期时间值。 NULL:无效输入 基本数据类型:datetime |
| LCID | 排序规则的 Windows 区域设置标识符 (LCID)。 | LCID 值(十进制格式)。 基本数据类型:int |
| MaxSizeInBytes | 最大数据库大小(以字节为单位)。 | 适用范围:Azure SQL Database、SQL 数据仓库。 1073741824 5368709120 10737418240 21474836480 32212254720 42949672960 53687091200 NULL:数据库未启动 基本数据类型:bigint |
| 恢复 | 数据库恢复模式 | FULL:完整恢复模式 BULK_LOGGED:大容量日志模型 SIMPLE:简单恢复模式 基本数据类型:nvarchar(128) |
| ServiceObjective | 描述 SQL Database或 SQL 数据仓库 中的数据库的性能级别。 | 可以是以下类型之一: NULL:数据库没有启动 已共享(针对 Web/企业版本) “基本” S0 S1 S2 S3 P1 P2 P3 ElasticPool 系统(针对主数据库) 基本数据类型:nvarchar(32) |
| ServiceObjectiveId | SQL Database 中的服务器目标 ID。 | uniqueidentifier 确定服务目标。 |
| SQLSortOrder | SQL Server 早期版本中支持的 SQL Server 排序顺序 ID。 | 0:数据库使用的是 Windows 排序规则 >0:SQL Server 排序顺序 ID NULL:输入无效或数据库未启动 基本数据类型:tinyint |
| “登录属性” | 数据库状态。 | ONLINE:数据库可用于查询。 注意: 数据库处于打开状态但尚未恢复时,可能返回 ONLINE 状态。 要确定数据库何时可以接受连接,可以查询 DATABASEPROPERTYEX 的 Collation 属性。 在数据库排序规则返回非 Null 值之后,数据库就可以接受连接了。 对于 Always On 数据库,可以查询 sys.dm_hadr_database_replica_states 的 database_state 或 database_state_desc 列。 OFFLINE:已将数据库显式置于脱机状态。 RESTORING:已启动数据库还原。 RECOVERING:已启动数据库还原,且数据库尚未准备好进行查询。 SUSPECT:数据库未恢复。 EMERGENCY:数据库处于紧急只读状态。 只有 sysadmin 成员可进行访问。 基本数据类型:nvarchar(128) |
| Updateability | 指示是否可以修改数据。 | READ_ONLY:数据库支持数据读取,但不支持数据修改。 READ_WRITE:数据库支持数据读取和修改。 基本数据类型:nvarchar(128) |
| UserAccess | 指示哪些用户可以访问数据库。 | SINGLE_USER:一次仅限一个 db_owner、dbcreator 或 sysadmin 用户 RESTRICTED_USER:仅限 db_owner、dbcreator 或 sysadmin 角色的成员 MULTI_USER:所有用户 基本数据类型:nvarchar(128) |
| 版本 | 用于创建数据库的 SQL Server 代码的内部版本号。 标识为仅供参考。 不提供支持。 不保证以后的兼容性。 | 版本号:数据库处于打开状态。 NULL:数据库尚未启动。 基本数据类型:int |
3.使用系统储存过程
| 存储过程 | 作用 | | ———— | ————————– | | sp_spaceused | 显示数据库使用和保留的空间 | | sp_helpdb | 查看所有数据库的基本信息 |