写在前面

这段时间由于任务需要 SQL Server 2008 R2 数据库,于是便学习了一下,在此记录学习过程中重要的东西。

简单介绍

SQL

  • 全称:Structured Query Language (结构化查询语言)
  • 是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统

T-SQL

  • 全称:Transact-SQL
  • 是标准 SQL 程式设计语言的增强版,它是用来让应用程式与 SQL Server 沟通的主要语言

两者可简单理解为:T-SQL 是 SQL Server 支持的 SQL 语法,非软件。主要是微软对数据库操作增加的新语法

T-SQL 语言主要组成部分

  • DML (数据操作语言) 用于查询、插入、修改和删除数据库中的数据等
SELECT,INSERT,UPDATE,DELETE
复制代码
  • DDL (数据定义语言) 用于在数据库系统中创建数据库、表、视图、索引等
CREATE DATABASE,DROP DATABASE
复制代码
  • DLC (数据控制语言) 用于控制存取许可、权限等
GRANT,REVOKE
复制代码
  • 其他(包括变量说明、内部函数等)

数据库相关

  • 物理存储结构(数据库文件在磁盘上的存储形式) -- 主数据文件:xx.mdf -- 辅助数据文件:xx.ndf -- 日志文件:xx.ldf
  • 逻辑存储结构 由数据表、视图、索引等不同的数据库对象组成,分别用于存储特定信息并支持特定功能
  • 数据库命名规则: -- 第一个字符必须是 字母_ @ #。 -- 数据库名称 不能是 T-SQL 的保留字 -- 不允许嵌入空格或其他特殊字符
  • 数据库分类 -- 系统数据库(中央管理机构) E.g:master,model,msdb,resource -- 用户数据库(老百姓):用户自己创建的数据库
  • 创建数据库需要指定的属性 -- 文件名称、存放位置、初始空间大小、属于哪个文件组 -- 文件增长:按百分比或实际大小制定增长速度 -- 文件容量设置:可以指定文件增长的最大值或不限制 -- 兼容级别:版本号 -- 数据库是否只读:默认 flase -- 限制访问:MULTI_USER (正常状态)、SINGLE_USER (维护操作的状态)、RESTRICTED_USER

数据库基本操作命令

以下全部为使用 SQL 语句操作,无视图操作

  1. 通常,执行命令时,最开始都需要指向操作的对象,并且添加批处理的标志(执行)
USE 对象(数据库名称)

E.g:
- USE master -- 指向当前使用的数据库 master
- USE E_Market -- 指向当前使用的数据库 E_Market

完整实例:
USE E_Market -- 指向当前使用的数据库 E_Market
GO -- 批处理的标志(执行命令最后都需此命令)
复制代码
  1. 创建数据库(包含数据文件和日志文件)
USE master
GO
CREATE DATABASE 数据库名
ON PRIMARY --主文件组
-- 主数据文件
(
	NAME='E_Market_data',	-- 主文件逻辑文件名
	FILENAME='F:\Project\E_Market_data.mdf',	-- 主文件物理文件名,包含存放位置
	SIZE=5MB,	-- 主文件初始大小
	MAXSIZE=100MB, -- 主文件增长的最大值
	FILEGROWTH=15%	--主文件的增长率
),
-- 以上为以第一个文件组(主文件组)

FILEGROUP FG	-- 第二个文件组(辅助数据文件)
(
	NAME='FG_E_Market_data',	-- 辅助文件逻辑文件名
	FILENAME='F:\Project\FG_E_Market_data.ndf',	-- 辅助文件物理文件名,包含存放位置
	SIZE=3MB,	-- 辅助文件初始大小
	MAXSIZE=7MB, -- 辅助文件增长的最大值
	FILEGROWTH=0	--辅助文件不启用自动增长
)

LOG ON	-- 日志文件不属于任何文件组
(
	NAME='E_Market_log', -- 日志文件逻辑文件名
	FILENAME='F:\Project\E_Market_log.ldf',	-- 日志物理文件名,包含存放位置
	SIZE=5MB,	-- 日志文件初始大小
	FILEGROWTH=0 -- 未启用自动增长
)

GO -- 批处理标志
复制代码
> 注意:语言使用的是 **小括号** **()**,不是花括号 {},过程中命令后使用 **逗号** **,**而非分号 ;,命令最后一句不需要逗号
复制代码
  1. 向现有数据库添加文件组和数据文件
USE E_Market	-- 指向当前使用的数据库
ALTER DATABASE E_Market ADD FILEGROUP FG1	-- 向数据库中添加一个名为 FG1 的文件组
GO

-- 给新建的文件组 FG1 添加数据文件
ALTER DATABASE E_Market ADD FILE
(
	NAME='FG1_E_Market_data',
	FILENAME='F:\Project\FG_E_Market_data.ndf',
	SIZE=5MB,
	FILEGROWTH=10%
)TO FILEGROUP FG1
GO

-- 将 FG1 文件组设为默认文件组
ALTER DATABASE E_Market
MODIFY FILEGROUP FG1 DEFAULT
GO
复制代码
> 将选定文件组设置为默认文件组后,添加文件将归属于默认文件组中
复制代码
  1. 删除数据库
DROP DATABASE E_Market

-- 附加:
IF EXISTS (SELECT * FROM sysdatabases WHERE name='E_Market')	-- 检查想要删除的数据库是否存在
DROP DATABASE E_Market

-- 使用判断检查数据库是否存在,若存在执行删除,否则,不执行

复制代码