对数据的简介:
数据库是数据存储的仓库,用户在利用数据库管理系统提供的功能时,首先必须将数据保存到用户的数据库中。数据库中存储的对象主要有:表,索引和视图。(SQL Server支持在一个实例中创建多个数据库,且这些数据库在物理和逻辑上都是相互独立的)。
数据库文件(数据文件和日志文件):
1)数据文件可以有多个,但是主数据文件只能有一个;
2)日志文件也可以声明多个;
3)数据库文件的属性(文件名及其位置,初始大小,增长方式,最大大小) 。
数据库的分类:
在SQL Server中数据库可以分为两类:系统数据库和用户数据库。(以下只简单的介绍一下系统数据库)
- >系统数据库(master,msdb,model,tempdb)
master:是SQL Server中最重要的数据库,用于记录系统级信息(该数据库损坏则SQL Server将无法正常工作);
msdb:保存关于调度报警,作业,操作员等信息;
model:用户数据库模板,当用户创建一个数据库时,会将model数据库的全部内容复制到新建数据库中;
tempdb:是临时数据库,用于存储用户创建的临时表(查询操作的表即存储其中),用户声明的变量以及用户定义的游标数据等。
T-SQL之数据库操作
T-SQL之数据库创建
创建数据库主要使用CREATE DATABASE语句
1,创建数据库的语法:
1)、创建数据库的语法:
CREATE DATABASE
[ON [PRIMARY]
(
[NAME = ,]
FILENAME =
[, SIZE = ]
[, MAXSIZE = ]
[, FILEGROWTH = ]
)]
[LOG ON
(
[NAME = ,]
FILENAME =
[, SIZE = ]
[, MAXSIZE = ]
[, FILEGROWTH = ]
)]
[ COLLATE ]
[ FOR ATTACH [WITH ]| FOR ATTACH_REBUILD_LOG| WITH DB_CHAINING {ON|OFF } | TRUSTWORTHY { ON|OFF }]
[AS SNAPSHOT OF ]
[;]
--语法参数说明
--1、CREATE DATABASE :为创建数据库的主要语法,其中Db_name为数据库的名称;
--2、PRIMARY:标识该mdf文件为主文件(系统默认第一个为主数据文件);
--3、NAME:文件的逻辑名称(在同一个数据库中该值必须唯一);
--4、FILENAME:文件的具体存储路径(必须完整且存在);
--5、SIZE:设置数据文件的初始大小(单位:M、G等);
--6、MAXSIZE:设置数据文件的最大容量(单位:M、G等);
--7、FILEGROWTH:设置数据文件的增长量(可以为具体的存储量亦可以为一个百分数);
--8、COLLATE:可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影;(可以不加默认为系统的排序规则);
--9、FOR ATTACH:将已存在的数据库文件附加到当前服务器上;
--10、WITH DB_CHAINING {ON|OFF }:如果该选项为ON,则跨数据库的所有权链有效;否则全链无效;
--11、TRUSTWORTHY { ON|OFF }:控制访问的安全性(默认情况下为关闭状态);
--12、AS SNAPSHOT OF :指定要创建的数据库为source_database_name指定的源数据库的数据库快照(快照和源数据库必须位于同一实例中)。
2,创建数据库的示例
--创建数据库(CREATE DATABASE语句)
--1)创建系统默认的数据库
CREATE DATABASE Demo
GO
--代码说明:
--该语句为创建数据库的最简单形式,所有的参数都为系统默认(数据库文件存储在默认位置)
--2)创建指定的数据库(单数据库、但事务日志)
CREATE DATABASE Demo
ON PRIMARY --PRIMARY指主数据文件(为系统的默认值,可以省略)
( --在这里设置主数据文件mdf
NAME='Demo', --主数据文件的逻辑名称
FILENAME='F:\sql\Demo.mdf', --文件的具体存储路径(路径必须完整存在)
SIZE=3MB, --设置文件的初始大小
MAXSIZE=100MB, --设置文件最大容量 UNLIMITED为不限制大小
--filegrowth=1MB --设置文件的增长量(可以为字节,也可以为百分数)
FILEGROWTH=10%
)
LOG ON --创建数据事务(也可以添加多个事务日志)
( --在这里设置事务日志文件
NAME='Demo_log', --日志的名称
FILENAME='F:\sql\Demo_log.ldf', --日志的完整路径(路径必须完整存在)
SIZE=1MB, --日志文件的初始大小
MAXSIZE=UNLIMITED, --日志文件的最大容量,不设最大限制
FILEGROWTH=1MB --增长速量为1MB
)
GO
--3)创建指定的数据库(多数据库、多事务日志)
CREATE DATABASE DemoTest
ON PRIMARY --PRIMARY指主数据文件(为系统的默认值,可以省略)
( --在这里设置主数据文件mdf
NAME='DemoTest1', --主数据文件的逻辑名称
FILENAME='F:\sql\DemoTest1.mdf', --文件的具体存储路径(路径必须完整存在)
SIZE=3MB, --设置文件的初始大小
MAXSIZE=100MB, --设置文件最大容量 UNLIMITED为不限制大小
FILEGROWTH=10%
),
( --在这里设置次数据文件mdf
NAME='DemoTest2', --数据文件的逻辑名称
FILENAME='F:\sql\DemoTest2.mdf', --文件的具体存储路径(路径必须完整存在)
SIZE=3MB, --设置文件的初始大小
MAXSIZE=100MB, --设置文件最大容量 UNLIMITED为不限制大小
FILEGROWTH=1MB --设置文件的增长量为1MB
)
LOG ON --创建数据事务
( --在这里设置事务日志文件
NAME='DemoTest1_log', --日志的名称
FILENAME='F:\sql\DemoTest1_log.ldf', --日志的完整路径(路径必须完整存在)
SIZE=1MB, --日志文件的初始大小
MAXSIZE=20MB, --日志文件的最大容量,不设最大限制
FILEGROWTH=1MB --增长速量为1MB
),
( --在这里设置事务日志文件
NAME='DemoTest2_log', --日志的名称
FILENAME='F:\sql\DemoTest2_log.ldf', --日志的完整路径(路径必须完整存在)
SIZE=1MB, --日志文件的初始大小
MAXSIZE=UNLIMITED, --日志文件的最大容量,不设最大限制
FILEGROWTH=10% --增长速量为10%
)
GO
T-SQL之数据库修改
修改数据库主要使用ALTER DATABASE语句
对于数据库的修改操作常使用到的有:修改数据库中文件的某些属性,向数据库中添加文件和移除数据库中的文件,下面分别从这三个方面进行说明和代码展示。
1,修改数据库中文件的属性:
--修改数据库中已经定义好的文件属性
ALTER DATABASE Test5
MODIFY FILE --修改指定数据库中的数据文件
(
NAME = "Test5_data", --文件的逻辑名称(必须项)
SIZE = 10MB, --修改文件的大小
MAXSIZE = 50MB, --修改文件的最大容量
FILEGROWTH = 10% --修改文件的增长量
)
ALTER DATABASE Test5
MODIFY FILE --修改数据库中的日志文件
(
NAME = "Test5_log", --日志文件的逻辑名称(必须项)
SIZE = 5MB, --修改日志文件的初始大小
MAXSIZE = 10MB, --修改文件的最大容量
FILEGROWTH = 10% --修改文件的增长量
)
2,向已创建的数据中添加文件:
--向已创建的数据中添加文件
ALTER DATABASE Test5
ADD FILE --向数据库中添加数据文件
(
NAME = "Test5_data1", --数据文件的逻辑名称
FILENAME = "F:\sql\Test5_data1.mdf", --数据文件的物理位置
SIZE = 10MB, --初始容量
MAXSIZE = 50MB, --最大容量
FILEGROWTH = 10% --增长量
)
ALTER DATABASE Test5
ADD LOG FILE --向数据库中添加日志文件
(
NAME = "Test5_log1", --日志文件的逻辑名称
FILENAME = "F:\sql\Test5_log1.mdf", --日志文件的物理存储位置(完整性)
SIZE = 10MB, --初始容量
MAXSIZE = 40MB, --最大容量
FILEGROWTH = 10% --增长量
)
3,移除数据库中的文件
ALTER DATABASE Test5
REMOVE FILE Test5_data1 --移除数据库中的数据文件
GO
ALTER DATABASE Test5
REMOVE FILE Test5_log1 --移除数据库中的日志文件
GO
T-SQL之数据库删除
删除数据常使用DROP DATABASE语句
示例代码:
--删除数据库
DROP DATABASE Test5,Test --删除数据库(将数据库连根拔起)
GO
另:
DELETE FROM Staff --主要用来删除数据记录(一条数据会生成一行日志)
GO
TRUNCATE TABLE Test5 --清空表中的数据(只产生很少的日志记录)
GO