数据库常用对象
在SQL Server数据库中,表、字段、索引、视图、存储过程等常用的对象被称为数据库对象。
(1)表
表是包含数据库中所有数据的数据库对象,由行和列组成,用于组织和存储数据。
(2)字段
列被称为字段,字段具有自己的属性,如字段类型、字段大小等,字段类型是字段最重要的属性。
SQL规范支持的5种基本字段类型,包括字符型、文本型、数值型、逻辑型和日期类型。
(3)索引
索引是数据表中一列或多列值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
(4)视图
视图是从一个或多个表导出的表。视图与表不同,视图是虚表,即视图所对应的数据不进行实际存储。
(5)存储过程
存储过程是一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后进行调用,不需要再次编译。
数据库组成
数据库主要由文件、文件组和日志文件组成,数据库中所有数据和对象都被存储在文件中。
(1)文件
文件是指数据库中用来存放数据库数据和数据库对象的文件。一个数据库可以有一个或多个文件,但一个数据文件只属于一个数据库。数据库只有一个主数据文件,其他则为次要数据文件。
主文件:存放数据和数据库初始化信息。默认扩展名为.mdf
次要数据文件:存放除主数据文件以外的所有数据文件。默认扩展名.ndf。
次要文件作用:
- 由于一个mdf太大,当还原到别的机器上时可能一个盘装不下,如果有多个ndf,那么可以分开到别的盘曲。
- 可以把数据和索引分开,这两个分到不同的文件,由于一个db只能有一个mdf(其实这只是命名问题,是可以有多个mdf后缀名的文件的,不过强烈不建议这样做),所以需要用最少一个文件,这就要加多一个ndf,用来存放索引(一般mdf存放数据就可以了)。
- 对于超大的数据库,一个文件会造成很多不便,比如备份,可能要很久,但是如果分开文件组(每个文件组有一个到多个ndf,主文件组有一个mdf),可以使用文件组备份,在某种程度下降低备份文件的存放压力
(2)文件组
文件组是数据库文件的一种逻辑管理单位,它将数据库文件分为不同的文件组,方便对文件的分配和管理。文件组主要分为两种类型,一种是主文件组,另一种是用户自定义文件组。
改善数据库性能
使用文件和文件组可以改善数据库的性能,因为这样允许跨多个磁盘、多个磁盘控制器或 RAID(独立磁盘冗余阵列)系统创建数据库。例如,如果计算机上有四个磁盘,那么可以创建一个由三个数据文件和一个日志文件组成的数据库,每个磁盘上放置一个文件。在对数据进行访问时,四个读/写磁头可以同时并行地访问数据。这样可以加快数据库操作的速度。
主文件组:包含主要数据文件和任何没有明确指派给其他文件组的文件。
用户自定义文件组:主要是在CREATE DATABASE 或ALTER DATABASE语句中,使用FILEGROUP关键字指定的文件组。
(3)日志文件
日志文件种记录了存储数据库的更新情况等事务日志信息。
数据库存储结构
数据库的存储结构分为逻辑存储结构和物理存储结构
(1)逻辑存储结构:说明数据库是由那些性质的信息所组成。数据库不仅仅只是数据的存储,所有与数据处理操作相关的信息都存储在数据库中。
(2)物理存储结构:说明数据库文件在磁盘是如何存储的。数据库在磁盘上是以文件单位存储的,有数据库文化和事务日志文件组成,一个数据库至少应该包含一个数据库文件和一个事务日志文件。
命名规则
在计算机中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。
1.标识符规则
(1)首字母
第一种情况:标识符首字母包括26个英文字母,及其他一些语言字符,如汉字。
第二种情况:下划线''、符号'@'、或数字符号'#'。
(2)首字母后的字符
第一种:26个英文字符
第二种:下划线''、符号'@'、或数字符号'#'。
第三种:数字0-9。
(3)标识符不允许是T-SQL保留字。
(4)标识符内部不允许有空格或特殊字符。
@@开头的标识符为全局变量,以##开头的为全局临时数据库对象。
2.标识符的分类
SQL Server中,标识符共有两种,规则标识符(遵守标识符规则),界定标识符(不符合标识符格式的标识符,需要给标识符加上[]或' ')。
创建数据库
在创建数据库时,用户要提供与数据库有关的数据库名称、数据存储方式、数据库大小、数据库的存储路径等信息。
创建数据库语句:
CREATE DATABASE mydb
ON
(
NAME = my_db, --数据库主数据文件名
FILENAME = 'D:\SQL Server 2016\my_db.mdf', --主数据文件存储位置
SIZE = 10, --数据文件大小,默认单位为MB
MAXSIZE = 12, --最大增长空间为MB
FILEGROWTH = 2 --文件每次的增长大小为MB
)
LOG ON --创建日志文件
(
NAME = mydb_log,
FILENAME = 'D:\SQL Server 2016\mydb_log',
SIZE = 2MB,
MAXSIZE = 4MB,
FILEGROWTH = 2
)
如果直接创建数据库,数据库参数采用系统默认设置。
如CREATE DATABASE MY_db
使用ALTER语句修改数据库
添加samples.mdf行文件
ALTER DATABASE mydb
ADD FILE
(
NAME = 'samples',
FILENAME = 'D:\SQL Server 2016\samples.mdf',
SIZE = 1024kb,
MAXSIZE = 5MB,
FILEGROWTH = 1MB
)
修改数据库名称
ALTER DATABASE oldname
MODIFY NAME = newname
把数据库名为mydb的数据库改为名称为my_db的数据库。
ALTER DATABASE mydb
MODIFY NAME = my_db
修改数据库初始大小
ALTER DATABASE my_db
MODIFY FILE
(
NAME=samples,
SIZE = 20MB --初始大小
MAXSIZE=200 --最大容量大小
);
修改数据库文件的初始大小时,指定的SIZE的大小必须大于或等于当前大小,如果小于当前大小,代码将不能被执行。
删除数据库
DROP DATABASE my_db
如果数据库大小不断增长,则可以指定其增长方式,如果数据库大小基本保存不变,为了提高数据库的使用效率,通常不指定其有自动增长方式。