一、结构化查询语言SQL(SQL,Structured Query Language)概述
1. 相关概念
-
基本表:一个关系对应一个基本表。一个或者多个基本表对应一个存储文件。
-
视图(View):视图是从一个或几个基本表中导出的表(无数据,只有定义),是一个虚表。
如S(SN0,SN,Sex,Age,Dept) 。
2. SQL的主要特点
- SQL语言是类似于英语的自然语言,简洁易用
- SQL是一种一体化的语言
- SQL语言是一种非过程化的语言
- SQL语言是一种面向集合的语言
- SQL语言既是自含式语言,又是嵌入式语言
3. 数据库的结构
从逻辑上看,描述信息的数据存在数据库中并由DBMS统一管理;
从物理上看,描述信息的数据是以文件的方式存储在物理磁盘上,由操作系统进行统一管理。
① 数据文件和事物日志文件
- 数据文件1…数据文件n
- 存放数据库数据和数据库对象的文件
- 主要数据文件(.mdf,只有一个)和次要数据文件(.ndf,可有多个),
- 事务日志文件
- 保存用于恢复数据库的日志信息,扩展名为.ldf
- 当数据库破坏时可以用事务日志还原数据内容
② 文件组(File Group):将多个数据文件集合起来形成的一个整体。
- 分为主要文件组和次要文件组。
- 一个数据文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用。
- 日志文件不分组,它不属于任何文件组。
4. SQL Server 2012的系统数据库
SQL Server 2012的系统数据库有master、model、msdb、tempdb、resource。
- master记录所有系统级信息,记录了所有其他数据库的存在。
- model数据库时所有用户数据库的创建模板,系统将model数据库的全部内容复制到新的数据库中,可以简化数据库及其对象的创建及设置工作。
- msdb数据库是计划警报和作业。
- tempdb数据库用作系统的临时存储,主要保存显式创建的临时用户对象和数据库引擎创建的内部对象。
- resource包含所有系统对象,通过resource数据库可以更为轻松快捷的升级到新的SQL Server版本。
二、SQL Server 2012的操作
1. 创建数据库
用Management Studio创建数据库
也可以用SQL命令创建数据库
创建数据库的SQL命令的语法格式如下所示:
CREATE DATABASE 数据库名称
[ON
[FILEGROUP 文件组名称]
(NAME = 数据文件逻辑名称,
FILENAME = '路径+数据文件名',
SIZE = 数据文件初始大小,
MAXSIZE = 数据文件最大容量,
FILEGROWTH = 数据文件自动增长容量,)]
[LOG ON
NAME = 日志文件逻辑名称,
FILENAME = '路径+日志文件名',
SIZE = 日志文件初始大小,
MAXSIZE = 日志文件最大容量,
FILEGROWTH = 日志文件自动增长容量,)]
[COLLATE 数据库校验方式名称]
[FOR ATTACH]
2. 修改用户数据库
用Management Studio修改数据库
- 常规选项卡:包含数据库的状态、所有者、创建日期、大小、可用空间、用户数、备份和维护等信息
- 文件选项卡:包含数据文件和日志文件的名称、存储位置、初始容量大小、文件增长和文件最大限制等信息
- 文件组选项卡:可以添加或删除文件组。但是,如果文件组中有文件则不能删除,必须先将文件移出文件组,才能删除文件
- 选项选项卡:可以设置数据库的许多属性,如排序规则、恢复模式、兼容级别等
- 更改跟踪选项卡:可以设定是否对数据库的修改进行跟踪
- 权限选项卡:可以设定用户或角色对此数据库的操作权限
- 扩展属性选项卡:可以设定表或列的扩展属性。在设计表或列是,通常通过表名或列名来表达含义,当表名或列名无法表达含义时,就需要使用扩展属性
- 镜像选项卡:可以设定是否对数据库启用镜像备份。镜像备份是一种高性能的备份方案,但需要投入一定的设备成本,一般用于高可靠性环境
- 事务日志传送选项卡:设定是否启用事务日志传送。事务日志传送备份是仅次于镜像的高可靠性备份方案,可以达到分钟级的灾难恢复能力,实施成本远小于镜像备份,是一种经济实用的备份方案
也可以用SQL命令修改数据库
可以使用ALTER DATABASE命令修改数据库。注意:只有数据库管理人员(DBA)或者具有CREATE DATABASE权限的人员才有权执行此命令。常用的修改数据库的SQL命令的语法格式如下所示:
ALTER DATABASE数据库名称
ADD FILE(具体文件格式)
[,...n]
[TO FILEGROUP 文件组名]
|ADD LOG FILE(具体文件格式)
[,...n]
|REMOVE FILE 文件逻辑名称 //删除
|MODIFY FILE(具体文件格式) //修改
3. 删除数据库
用Management Studio修改数据库
- 打开“对象资源管理器”,右键单击要删除的数据库,从快捷菜单中选择删除
- 删除数据库后,与此数据库关联的数据文件和日志文件都会被删除,系统数据库中存储的该数据库的所有信息也会被删除,因此务必要慎重。
也可以用SQL命令修改数据库
DROP DATABASE
数据库名称[,…n]