SQL Server2005将数据库映射为一组操作系统文件,数据和日志信息分别存储在不同的文件中 。
文件组:可将多个数据文件集合起来形成一个组,便于进行管理和数据分配。
日志文件不属于任何文件组
SQL Server中最基本的存储单元是页(page)。
系统给数据库文件(.mdf .ndf)分配的磁盘空间逻辑上被分解为从0…n的多个编号连续的页。
磁盘的I/O操作是在页级水平完成的,也就是说,SQL Server每次读或写整个的数据页(data page).
盘区(Extent)是物理上连续的8个页,这样便于有效地管理页,所有的页都存储在盘区。
物理存储结构
数据存储结构
SQL Server 包含系统数据库、示例数据库和用户数据库三类
使用SQL Server Management Studio创建数据库
1、新建数据库
2、查看数据库
3、修改数据库
4、重命名数据库
5、数据库收缩
6、删除数据库
在SQL Server中,用户要创建数据库,必须确定数据库的名称、所有者、大小以及存储该数据库的文件和文件组。数据库名称必须遵循为标识符指定的规则。这些规则包括以下几点
在“对象资源管理器”窗口中选中要查看的数据库,单击鼠标右键,在弹出的快捷菜单上单击“属性”命令,即可进入属性窗口。
打开要修改的数据库属性窗口,在该窗口中对数据库的相关属性进行修改。
数据库收缩的主要目的是为了节约数据库的占用空间,将未使用的一些文件删除。
在讲T-SQL之前,先来了解一下SQL
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
SQL语言是最重要的关系数据库操作语言,并且它的影响已经超出数据库领域,得到其他领域的重视和采用,如人工智能领域的数据检索,软件开发工具中嵌入SQL的语言等。
那么什么是T-SQL语言呢
T-SQL 即 Transact-SQL,是 SQL 在 Microsoft SQL Server 上的增强版。
SQL Server所有操作几乎都能通过SQL Server Management Studio来完成,那么为什么还要学习SQL语言呢?
现在主流的数据库都使用SQL语句进行后台的操作。
数据库一般都要在数据库中进行存储过程的编写,使用的都是标准的SQL语言,没有这些很多工作无法顺利完成,甚至根本不可能完成。
应用程序和数据库连接,使用的也是SQL语言
1.准备创建数据库
(1)确定数据库的名称、所有者(创建数据库的用户)
(2)确定存储该数据库的数据文件的初始大小及文件空间增长方式、日志、备份和系统存储参数等配置。
数据库:教学管理
数据文件逻辑名称:教学管理_data;日志文件逻辑名称:教学管理_log。
数据文件存储:D:\server\MSSQL\Data\教学管理_data.mdf,初始大小3MB,最大空间20MB,增加量2MB,主文件中包含数据库的系统表。
日志文件存储:D:\server\MSSQL\Data\教学管理_data.ldf,初始大小2 MB,最大空间20MB,增加量2MB。
2.创建数据库实例分析
方法一:使用SSMS创建数据库
实例1 创建教学管理数据库。
(1)在SSMS中,在数据库文件夹下数据库图标上单击右键,选择新建数据库选项,就会出现下图所示的下拉菜单。
(2)在常规页框中,要求用户输入数据库名称。输入新建数据库名称:教学管理
方法二:使用Transact-SQL命令创建数据库
语法如下:
CREATE DATABASE 数据库名
[ON [PRIMARY] [<数据库逻辑名> [,…n] [,< 文件组名> [,…n]] ]
[LOG ON {<LOG_NAME > [,…n]}]
FILENAME=‘数据库物理文件名’
[,SIZE=size]
[,MAXSIZE={max_size|UNLIMITED}]
[,FILEGROWTH=growth_increment] ) [,…n]
(1)PRIMARY:该选项是一个关键字,指定主数据库文件,若没有给出这个关键字,则默认文件序列第一个是主数据文件。
(2)LOG ON:指明事务日志文件的明确定义。
数据库逻辑名称:这是在SQL Server系统中使用的名称,是数据库在SQL Server中的标识符。
(3)FILENAME:指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名和NAME的逻辑名称一一对应。
(4)SIZE:指定数据库的初始容量大小。
(5)MAXSIZE:指定操作系统文件可以增长到的最大尺寸。
(6)FILEGROWTH:指定文件每次增加容量的大小,当指定数据为0时,表示文件不增长。
create database 教学练习 --数据库名称:教学练习
on primary --下面主文件属于主文件组
(name= 教学练习_data, --对应数据库第一个逻辑文件名
filename=‘d:\server\mssql\data\教学练习_data.mdf’,
–对应的主文件名和存储位置
size=20, --初始分配的空间
maxsize=150, --指出最大空间为150MB
filegrowth=10%), --空间增长按10%增长
FILEGROUP stugroup --指定新的文件组,
–下面文件属于stugroup文件组
(name= 教学练习_data1, --对应数据库第二个逻辑文件名
filename=‘d:\server\mssql\data\教学练习_data1.ndf’,
–对应的第一个次文件名和存储位置
size=10, --初始分配的空间
maxsize=100, --指出最大空间为100MB
filegrowth=1), --空间增长按1MB增长
(name= 教学练习_data2, --对应数据库第三个逻辑文件名
filename=‘d:\server\mssql\data\教学练习_data2.ndf’,
–对应的第二个次文件名和存储位置
size=10, --初始分配的空间
maxsize=100, --指出最大空间为100MB
filegrowth=1) --空间增长按1MB增长
log on --日志文件
(name= 教学练习_log,
filename=‘d:\server\mssql\data\教学练习_log.ldf’,
size=10,
maxsize=50,
filegrowth=1)
使用系统自带的存储过程sp_helpdb来查看某个或者所有数据库的属性。
sp_helpdb dababase_name
例2 查看数据库sales的属性
sp_helpdb sales
例3 查看所有数据库属性
sp_helpdb
使用系统存储过程sp_renamedb更改某个数据库的名字,其语法格式为:
sp_renamedb ‘old_name’,’new_name’
例如,sp_renamedb ‘business’,‘company’
注意:后续版本的SQL Server 将删除该功能,最好使用ALTER DATABASE MODIFY NAME进行重命名数据库。正在使用的数据库是不能进行重命名的。
自动收缩语法格式
ALTER DATABASE database_name
SET AUTO_SHRINK on/off
手动收缩语法格式
DBCC SHRINKDATABASE
( database_name [ , target_percent ]
[ , { NOTRUNCATE | TRUNCATEONLY } ])
例4 缩小sales数据库的大小,使得该数据库中的文件有20%的可用空间。
例5 将数据库sales中名为sales_data的文件收缩至7MB。
语法格式:DROP DATABASE database_name
例6 删除数据库student
DROP DATABASE student
例7 删除sample和student数据库。
DROP DATABASE sample,student
欢迎大家加我微信交流讨论(请备注csdn上添加)