DML:
1、一个文件的基本框架为:文件名、文件地址、文件大小、文件最大的大小、文件的增量(Filegrowth)。
2、文件有mdf、ndf、ldf 三种文件的区别。
3、文件组可以进行文件的管理 FileGroup 默认的文件组是 Primary 日志文件无文件组的概念,存在Log文件中。
4、 alter database 数据库名 add fileGroup 文件组名 --添加文件组
(文件)
to filegroup 文件组名 --将文件添加到相关的文件组中去
5、修改文件组为默认的文件组;
alter database 数据库名 modify filegroup 文件组名 default
6、修改文件组的名字
alter database 数据库名 modify filegroup 文件组名 name =新的文件组名
7.1、设置文件组为只读
alter database 数据库名 modify filegroup 文件组名 Readonly
7.2:设置文件组为可读写;
alter database 数据库名 modify filegroup 文件组名 readwrite
8、删除文件组
alter database 数据库名 remove filegroup 文件组名
*注意,删除文件组要确保文件组中没有数据文件。
9、查看数据库的大小:
exec/execute sp_spaceused
10、查看数据中文件的详细信息:
exec sp_helpdb 数据库名
10_1_1、 sp_configure 使用sp_configure存储过程可设置实例范围内的配置选项
11、删除数据库;
drop database 数据库名
12、修改数据库的名字;
alter database 数据库名 modify name=新的数据库名
13、如果数据库的空间不足,则可以通过以下的方法进行设置;
13.1.1、添加新的次要文件或次要的日志文件
13.1.2、修改增量和文件大小:
实例; alter database 数据库名
modify file
(
name=Onedb, --要修改的文件名
size=20, --文件大小
filegrowth=10% --文件的增量
)
14、收缩数据库
14.1.1、直接修改增量和文件大小,参考以上,只是把文件大小改小了。
14.2.1、设置数据库为自动收缩;
alter database 数据库名 set auto_shrink on --不是最优的方法
14.3.1、DBCC shrinkdatabase('要收缩的数据库名',可用空间的比例) 收缩数据库
**注意,如果收缩的是当前使用的数据库,则可以用0代替该数据库名。
14.4.1、DBCC shrinkfile('要收缩的数据库文件名',收缩文件大小) 收缩数据库文件
15、数据库快照
15.1.1、创建数据库快照;
create database 快照名称
On
(
name=数据库中的文件名,
filename='快照文件的存放地址'
),
( --如果数据库中有多个文件的话,
要一一的将每个文件进行指定
)
as snapshot of 数据库名
15.2.1、查询数据库快照:
select*from 数据库快照名
15.3.1、数据快照是只读的,所以不能为其添加文件和数据
15.3.1、用快照对数据库进行恢复;
restore database 数据库名 from database_snapshot='数据库快照名'
16、分离数据库:
exec sp_detach_db 数据库名
17、附加数据库;
create database 新的数据库名
on
( filename='文件地址'
--可以选择的附加数据库中的相关文件,建议全部附加),
(filename='')
for attach --attach:附加
18、如果附加的日志文件无法使用,则可以指定系统重新构建新的日志文件;
create database 数据库名 on
(filename='数据库文件所在的路径')
for attach_rebuild_log --注意是attach_rebuild_log的使用
19、移动数据库文件:
19.1.1、首先要讲数据库状态设为offline
19.2.1、alter database 数据库名 modify file(name=文件名,filename='新路径')
19.3.1、再将数据库的状态设置为online
20.1.1、完全备份数据库:
backup database 要备份的数据库名 --backup
to disk='备份文件存放的位置'
with name='备份集名称',
description='数据库描述【数据库完全备份/数据库差异备份】',
init|noinit --init指定重写所有备份集noinit 不覆盖现有的备份
20.2.1、差异备份数据库;
back database 要备份的数据库名
to disk ='备份文件存放的位置'
with differential,
--注意差异备份没有备份集的名字[differential表示这是差异备份]
description='数据库差异备份',
init|noinit --init指定重写所有备份集noinit 不覆盖现有的备份
21、还原数据库:
第一步:还原完全备份的数据:
restore database 数据库名 from disk='文件地址.bak' with file=1 --备份设备中的第一个备份集,
norecovery , --不对数据库执行任何操作
nounload, --不对数据库做任何操作,不回滚相关的事物
replace, --覆盖现有的数据库
第二步:还原差异备份的数据:
restore database 数据库名 from disk='文件地址' with file=1 --备份设备中的第一个备份集,
norecovery , --不对数据库执行任何操作
nounload, --不对数据库做任何操作,不回滚未提交的事物
replace, --覆盖现有的数据库
特别注意:如果还有差异备份的话,还要将差异备份中的数据进行还原,否则还原的过程会出错。
DDL:
1、在数据库中创建表;
create table 表明(列名 类型, ...)
2、在表中插入数据:
insert into 表名(列名1,列名2.、、、) values(对应列的值)
3、为表中更新数据:
updata 表名 set 列名 where 条件。
4、删除表/表中的数据【列/行】
delete 表名/表中数据 --同时可以在删除的时候通过where来限定删除的条件
5、在sever sql 中变量分为局部变量和全局变量 ,声明局部变量用declare,变量名称的前面要有@字符。
6、全局变量: 见表格:全局变量。
7.1.1、其中数据类型要注意:decimal 和numeric
语法: decimal(p,s) --其中p:代表数的总位数,s:代表小数点后的小数位数。
numeric的语法与decimal类似的。
7.2.1、货币类型:
money/smallmoney
7.3.1、日期和时间数据类型; 见表格;
7.4.1、二进制数据类型;
binary[n] :如果没有指定n的值,则默认为1
7.5.1:其他数据类型:
timestamp:行版本,在创建表的时候无需给出列名,插入数据的时候也不用管。
DCL: 【crant deny revoke】