一、SQL Server数据库的相关概念
1、逻辑数据库
从用户的角度看,组成数据库的逻辑成分称为数据库对象,SQL Server数据库由存放数 据的表以及支持这些数据的存储、检索、安全性和完整性的对象所组成。
2、物理数据库
从系统的观点看,数据库是存储逻辑数据的各种对象的实体,它们存放在计算机的存储 介质中,从这个角度称数据库为物理数据库。SQL Server的物理数据库架构包括:页和区、数据 库文件、数据库文件组等。
二、SQL Server数据库的基本操作
1、使用SQL Server Management Studio (创建/修改/删除)数据库
2、使用SQL语句(创建/修改/删除)数据库
下面是代码实现以上功能:
-- 判断数据库是否存在,若存在删除数据库 if exists(select *from sysdatabases where name='std') drop database std -- 创建默认数据库名称 create database std
另查询数据库
-- 查询数据库里面的所有数据库 select *from sysdatabases
结果如下:
【数据库文件的类型】
【主要】
主要数据文件包含数据库的启动信息,并指向数据库中的其他文件。用户数据和对象可存储在此文件中,也可以存储在次要数据文件中。每个数据库只有一个主要数据文件。主要数据文件的建议文件扩展名是 .mdf。
【次要】
次要数据文件是可选的,由用户定义并存储用户数据。通过将每个文件放在不同的磁盘驱动器上,次要文件可用于将数据分散到多个磁盘上。另外,如果数据库超过了单个 Windows 文件的最大大小,可以使用次要数据文件,这样数据库就能继续增长。次要数据文件的建议文件扩展名是 .ndf。
【事务日志】
事务日志文件保存用于恢复数据库的日志信息。每个数据库必须至少有一个日志文件。事务日志的建议文件扩展名是 .ldf。
文件组
SQL Server 为了更好的管理数据文件,提供了文件组概念,分为两种:主文件组(PRIMARY)和用户定义文件组。
1.主文件组(PRIMARY)
存放主数据文件和任何没有明确指定文件组的其他文件。
2.用户定义文件组
是在创建或修改数据库时用FILEGROUP关键字定义的文件组,存放次要数据文件。
每个数据库只有一个主要数据文件,日志文件可以有多个,文件组的作用:可以扩大数据库存储空间,提高查询效率。
【文件组特性】
(1)一个文件只能属于一个文件组。
(2)只有数据文件才能归属于某个文件组,日志文件不属于任何文件组。
(3)每个数据库中都有一个默认的文件组在运行,可以指定默认文件组,没有指定的话,则默认为主文件组。
(4)若没有用户定义文件组,则所有的数据文件都存放在主文件组中。
-- 创建数据库(主数据文件.mdf,次数据文件.ndf,日志文件.ldf) if exists(select *from sysdatabases where name='sdb2') drop database sdb2 create database sdb2 -- 创建数据库名称 on primary -- primary:主要的; 最重要的; (name=sdb2_data, -- 主数据文件逻辑名称 filename='F:\sdb2.mdf', -- 文件路径 size=10, -- 文件大小 maxsize=100, -- 最大值 filegrowth=5) -- 表示增量 , (name='sdb2_datandf', -- 次数据文件逻辑名称 filename='F:\sdb2_datandf', size=10, maxsize=100, filegrowth=5) log on --日志文件,逻辑文件 (name='sdb2_log', filename='F:\sdb2.ldf', size=8mb, maxsize=50mb, filegrowth=8mb ) -- 查找删除数据库 if exists(select *from sysdatabases where name='sdb2') drop database sdb2
其他操作参考:(以后会详细介绍)
create database sdb2 -- 创建数据库名称 -- 修改数据库的逻辑文件名 alter database sdb2 -- 改变,更改,改动; 修改 modify name=studentdb2 alter database sdb2 set offline -- 将数据库设置为脱机状态(离线) alter database sdb2 set online -- 将数据库设置为联机状态 ------------------------------------------------------ create database sdb3 drop database sdb3