数据库对象和
- 数据库的基本概念
数据库的逻辑结构: SQL Server的数据库逻辑结构可以理解为在运行SQL Server软件中观察到的数据库组成。例如,展开SQL Server 2016的本书示例数据库teaching,如图3-1所示。
server.database.schema.object
--即服务器.数据库.架构.数据库对象
数据库文件
- 数据库的基本概念
基本概念
数据库的物理文件:
每个 SQL Server 2016 数据库至少具有两个操作系统文件:
-
一个主数据文件
数据文件包含数据和数据库对象, -
一个日志文件
日志文件包含恢复数据库中的所有事务所需的信息。
SQL Server 2016 数据库具有3种类型的文件。
主数据文件包含数据库的启动信息,并指向数据库中的其他文件。用户数据和对象可存储在此文件中,也可以存储在次要数据文件中。每个数据库有一个主要数据文件,建议文件扩展名是 .mdf。
SQL Server 2016 数据库具有3种类型的文件。
次要数据文件是可选的,由用户定义并存储用户数据。通过将每个文件放在不同的磁盘驱动器上,次要文件可用于将数据分散到多个磁盘上,建议文件扩展名是 .ndf。
事务日志文件保存用于恢复数据库的日志信息。每个数据库必须至少有一个日志文件,建议文件扩展名是 .ldf。
默认情况下,数据和事务日志被放在同一个驱动器的同一个路径下。这是为处理单磁盘系统而采用的方法。但是,在生产环境中,建议将数据和日志文件放在不同的磁盘上。
数据库的常用对象
表:
数据库中的表与日常生活中使用的表格类似,由行(Row)和列(Column)组成。
其中,列由同类的信息组成,每列又称为一个字段,每列的标题称为字段名。行包括若干列的信息项。一个数据库表由一条或多条记录组成,没有记录的表称为空表。每个表中通常都有一个主关键字,用于唯一地确定一条记录。
索引:
索引是根据指定的数据库表列建立起来的顺序。它提供了快速查询大量数据的方法。有的索引还可以限制表,使其指定的列数据不重复。
视图
是一个虚拟的表,在数据库中并不实际存在。视图是由查询数据表产生的。
作用:
- 可以用来控制用户对数据的访问,并能简化数据的显示,
- 提高数据的安全性管理水平。
数据库关系图:
是本数据库中的表之间的关系示意图,利用图表可以编辑表与表之间的关系,以及表的行列属性。
默认值(逐渐淘汰):
默认值是当在表中创建列或插入数据时,对没有指定其具体值的列或列数据项赋予事先设定好的值。
规则(逐渐淘汰):
是对数据库表中数据信息的限制,其限定的是表的列。
存储过程:
是为完成特定的功能而汇集在一起的一组SQL 程序语句,经编译后存储在数据库中的SQL 程序。
(在SQL中,没有返回值的函数)
触发器:
是一个用户定义的SQL 事务命令的集合。当对一个表进行插入、更改、删除时,这组命令就会自动执行。
用户
所谓用户,就是有权限访问数据库的使用者,同时需要自己登录账号和密码。
一般来说,数据库用户分为管理员用户和普通用户,前者可对数据库进行修改删除,后者只能进行阅读、查看等操作。
注意:
除了如上列出的数据库对象之外,不同的数据库管理系统也有部分自定义的对象,将在具体学习中分别介绍,此处不再赘述。
数据库的存储
SQL Server 2016数据库是以文件的方式存储到磁盘中,其中数据文件和日志文件的文件结构不同,存储方式也不一样,如图:
数据文件的存储结构: 从SQL Server 2016数据库的物理架构上来看,
- SQL Server用于存储数据的基本单位是页,每页容量为8KB。SQL Server 2016在执行底层的磁盘I/O时也是以页级为单位的。
SQL Server将8个物理上连续的页组成一个区,以此可以更加有效地管理数据页。
数据页 SQL Server将8KB的数据划分为一页。即在SQL Server 数据库中的1MB数据中包含128页。包括数据页、索引页、文本/图像页等8种。
每个页的开头为96字节的系统信息。数据区占有8060个字节,页尾的行偏移数组占有36个字节。
扩展盘区是SQL Server数据库读写数据的基本单位,扩展盘区就是管理存储空间的基本单位。
一个扩展盘区由8个物理上连续的页(64 KB)组成。即SQL Server数据库中每1MB包含16个区。
为了提高空间利用率,SQL Server2016在为数据库中的某个数据表分配存储区时采取两种不同的策略。
-
将扩展盘区中所有8个存储页全部分配给一个数据库对象(例如数据表)。
采用这种方法分配的区也被称为“统一区”。统一区中的所有8个存储页只能供所属对象使用。 -
允许扩展盘区中的存储页由1~8个数据对象共同使用。这种分区方式也被称为“混合区”。
采用这种方式的分区,区中的每1页(共8页)都可由不同的对象拥有。
用户数据库创建与修改
一个 SQL Server 实例,可以创建32767个用户数据库。在创建数据库之前,首先用户应该清楚是否有相关的权限。
要创建数据库,必须至少拥有 CREATE DATABASE、CREATE ANY DATABASE 或 ALTER ANY DATABASE 等语句的权限。其次,创建数据库的用户将是该数据库的所有者。
1. 用户数据库的创建
在SQL Server 2016中,用户要创建数据库,必须确定数据库的名称、所有者、大小以及存储该数据库的文件和文件组。
数据库名称必须遵循为标识符指定的规则。这些规则主要包括如下几点:
- 数据库名称长度为1~128个字符。
- 名称首字符必须是一个英文字母或“_ ”、“#”和“@”中的任意字符。
- 在中文版SQL Server 2016中,可以直接使用汉字为数据库命名。
- 名称中不能出现空格,不允许使用SQL Server 2016的保留字。
文件组
每个SQL Server数据库至少具有两个操作系统文件:一个数据文件和一个日志文件。为了便于分配和管理,可以将数据文件集合起来,放到文件组中。
使用SSMS
在SQL Server Management Studio中创建数据库
(1)启动SSMS,在对象资源管理器中,右击“数据库”选项,在弹出的快捷菜单中选择“新建数据库”命令,如图3-3所示,打开“新建数据库”窗口。在“新建数据库”窗口中的“常规”选项卡,如图3-4所示,有以下几个可选项。
① 在“数据库名称”文本框中,输入数据库名称test01。
② 若要通过接受所有的默认值来创建数据库,则单击“确定”按钮;否则,继续后面的可选项目的选择。
③ 若要更改所有者名称,单击“所有者”后的...按钮选择其他所有者。
在SQL Server Management Studio中创建数据库
④ 若要启用数据库的全文搜索,选中“使用全文索引”复选框。
⑤ 若要更改主数据文件和事务日志文件的默认值,在“数据库文件”列表中单击相应的单元格,并输入新值。各项的具体含义如下:
逻辑名称 文件类型 文件组 初始大小
自动增长 位置 路径 文件名
(3)切换到“文件组”选项卡进行设置,如图3-6所示。如果要添加文件组,可以单击“添加”按钮,然后输入文件组的名称。
(4)如果单击“脚本”按钮,系统还会在查询窗口自动生成创建数据库test01命令代码,如果执行此代码,系统也会创建数据库test01。
(5)所有参数设置完毕后,单击“确定”按钮,新的数据库就创建成功。
展开对象资源管理器中的数据库文件夹,就可以观察到test01数据库已经创建成功。
SQL语句CREATE DATABASE
利用Transact-SQL语句创建数据库
(1)CREATE DATABASE语句的基本格式
CREATE DATABASE database_name --设置数据库名称
[ ON [ PRIMARY ]
[ <filespec> [ ,...n ] --设置数据文件
[ , <filegroup> [ ,...n ] ] --设置文件组
[ LOG ON { <filespec> [ ,...n ] } ] --设置日志文件
[ COLLATE collation_name ] --设置排序规则名称
[ WITH <external_access_option> ] --设置外部访问
] [;]
例:
【例3.1】 创建数据库student,并指定数据库的数据文件所在位置、初始容量、最大容量和文件增长量。CREATE DATABASE student ON ( NAME='student', FILENAME = >'D:\sqlprogram\student.mdf', SIZE = 5MB, MAXSIZE = 10MB, FILEGROWTH = 5%) GO
【例3.2】 创建数据库teaching,并指定数据库的数据文件和日志文件的所在位置、初始容量、最大容量和文件增长量。
CREATE DATABASE teaching
ON PRIMARY
( NAME = 'teaching',
FILENAME = 'D:\sqlprogram\teaching.mdf',
SIZE = 6MB,
MAXSIZE = 30MB,
FILEGROWTH = 1MB )
LOG ON
( NAME = 'teaching_log',
FILENAME = 'D:\sqlprogram\teaching_log.ldf',
SIZE = 2MB ,
MAXSIZE = 10 MB,
FILEGROWTH = 10%)
COLLATE Chinese_PRC_CI_AS
GO
2. 修改数据库
使用SSMS
使用SQL Server Management Studio修改数据库,其主要步骤如下:
(1)启动SQL Server Management Studio,在对象资源管理器中,用户可以右击所选择的数据库 test01,在弹出的快捷菜单中选择“属性”命令打开“数据库属性”窗口,如图3-7所示。在“数据库属性”窗口的“常规”选项卡中,显示的是数据库的基本信息,这些信息不能修改。
(2)单击“文件”选项卡,如图3-8所示,可以修改数据库的逻辑名称、初始大小、自动增长等属性,也可以根据需要添加数据文件和日志文件,还可以更改数据库的所有者。
(3)在“文件组”选项卡中,可以修改现有的文件组,也可以指定数据库的默认文件组、添加新文件组。
(4)在“选项”选项卡中,修改数据库的排序规则。
“数据库属性”窗口包含的各种属性,只要需要,就可以选择相应的选项卡来修改
SQL语句ALTER DATABASE
(1)ALTER DATABASE语句的语法
ALTER DATABASE database_name --需修改的数据库名
{ <add_or_modify_files> --增加或修改数据库文件
| <add_or_modify_filegroups> --增加或修改数据库文件组
| <set_database_options> --设置数据库选项
| MODIFY NAME = new_database_name --数据库重命名
| COLLATE collation_name --更改排序规则
} [;]
【例3.3】 为student数据库增加一个日志文件。
ALTER DATABASE student ADD LOG FILE ( NAME= stud_log, >FILENAME='D:\sqlprogram\stud_log.LDF', SIZE=2 MB, MAXSIZE=6 MB, FILEGROWTH=1MB ) GO
标签:03,数据文件,文件,--,创建,数据库,Server,SQL From: https://www.cnblogs.com/kingwz/p/16827069.html【例3.4】修改student数据库的排序规则。
ALTER DATABASE student COLLATE Chinese_PRC_CI_AS_KS