1、一个文件的基本框架为:文件名、文件地址、文件大小、文件最大的大小、文件的增量(Filegrowth)。
2、文件有mdf、ndf、ldf 三种文件的区别。
3、文件组可以进行文件的管理 FileGroup 默认的文件组是 Primary 日志文件无文件组的概念,存在Log文件中。
4、
alter database 数据库名 add fileGroup 文件组名 --添加文件组
(文件) to filegroup 文件组名 --将文件添加到相关的文件组中去
实例:
alter database Stu_db2 add filegroup file_group --向数据库中添加了新的文件组,file_group go alter database Stu_db2 add file ( name=N'new_datafile', filename='D:SQl_ProjectSQL_02 ew_datafile.ndf', size=3072kb, maxsize=unlimited, filegrowth=1024kb ) to filegroup file_group --向文件组中添加文件new_datafile
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 文件组名 Readonly
8、删除文件组
alter database 数据库名 remove filegroup 文件组名 *注意,删除文件组要确保文件组中没有数据文件。
9、查看数据库的大小:
exec/execute sp_spaceused
10、查看数据中文件的详细信息:
exec sp_helpdb 数据库名
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
18、如果附加的日志文件无法使用,则可以指定系统重新构建新的日志文件;
create database 数据库名 on (filename='数据库文件所在的路径') for 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 要备份的数据库名 to disk='备份文件存放的位置' with name='备份集名称', description='数据库描述【数据库完全备份/数据库差异备份】', --init --指定重写所有备份集 noinit 不覆盖现有的备份
20.2.1、差异备份数据库;
back database 要备份的数据库名 to disk ='备份文件存放的位置' with differential [differential表示这是差异备份] , description='数据库差异备份', init
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 表名/表中数据
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:行版本,在创建表的时候无需给出列名,插入数据的时候也不用管。