数据库

数据库(DATABASE)是按照数据结构来组织,存储,管理数据的仓库,是存储在一起的相关数据的集合
数据库系统(DataBase System,简称DBS)是采用数据库技术的计算机系统,是由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)和软件平台(软件)五部分构成的运行实体


常用数据库对象:

  • 表:
  • 表是包含数据库中所有数据的数据库对象,是SQL Server数据库中最重要的逻辑对象。它由行和列组成,用于组织和存储数据。
  • 字段:
  • 表中每列称为一个字段,字段具有自己的属性,如字段类型、字段大小等,其中字段类型是字段最重要的属性,它决定了字段能够存储哪种数据。 SQL规范支持5种基本字段类型:字符型、文本型、数值型、逻辑型和日期时间型。
  • 索引:
  • 索引是一个单独的、物理的数据库结构。它是依赖于表建立的,在数据库中索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需的数据。
  • 视图:
  • 视图是从一张或多张表中导出的表(也称虚拟表),是用户查看数据表中数据的一种方式。表中包括几个被定义的数据列与数据行,其结构和数据建立在对表的查询基础之上。视图中保存的不是数据,而是表的查询语句select。
  • 存储过程:
  • 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集合(包含查询、插入、删除和更新等操作),经编译后以名称的形式存储在SQL Server服务器端的数据库中,由用户通过指定存储过程的名字来执行。当这个存储过程被调用执行时,这些操作也会同时执行。

系统数据库

1.master数据库
master数据库是SQL Server 2012中最重要的数据库。记录 SQL Server 实例的所有系统级信息,包括实例范围的元数据、端点、链接服务器和系统配置设置。
2.tempdb数据库
tempdb是一个临时数据库,用于保存临时对象或中间结果集。
3.model数据库
用作 SQL Server 实例上创建的所有数据库的模板。对 model 数据库进行的修改(如数据库大小、排序规则、恢复模式和其他数据库选项)将应用于以后创建的所有数据库。
4.msdb数据库
用于 SQL Server 代理计划警报和作业。


数据模型
数据模型是数据库系统的核心与基础,是关于描述数据与数据之间的联系、数据的语义、数据一致性约束的概念性工具的集合。数据模型通常是由数据结构、数据操作和完整性约束3部分组成。

  1. 数据结构:是对系统静态特征的描述,描述对象包括数据的类型、内容、性质和数据之间的相互关系。
  2. 数据操作:是对系统动态特征的描述,是对数据库各种对象实例的操作。
  3. 完整性约束:是完整性规则的集合,它定义了给定数据模型中数据及其联系所具有的制约和依存规则

数据库组成部分
SQL Server 2012数据库主要由文件和文件组组成。
文件:
主要数据文件:存放数据和数据库的初始化信息。每个数据库有且只有一个主要数据文件,默认扩展名是.mdf。
次要数据文件:存放除主要数据文件以外的所有数据文件。有些数据库可能没有次要数据文件,也可能有多个次要数据文件,默认扩展名是.ndf。
事务日志文件:存放用于恢复数据库的所有日志信息。每个数据库至少有一个事务日志文件,也可以有多个事务日志文件,默认扩展名是.ldf。
注意:
SQL Server 2012不强制使用.mdf、.ndf 和.ldf文件扩展名,但使用这些扩展名可以帮助标识文件的用途。
文件组:
主文件组:包含主要数据文件和任何没有明确指派给其它文件组的文件。系统表的所有页都分配在主文件组中。
用户定义文件组:主要是在CREATE DATABASE或ALTER DATABASE语句中,使用FILEGROUP关键字指定的文件组。

创建数据库
1.以界面方式创建数据库
1)启动SQL Server Management Studio,并连接到SQL Server 2012中的数据库。
2)鼠标右键单击“数据库”选项,在弹出的快捷菜单中选择“新建数据库”命令。
3)进入“添加库”对话框,如图所示。在列表框中填写数据库名“db_database”,单击“确定”按钮,添加数据库成功。

2.使用CREATE DATABASE语句创建数据库,代码如下

--创建数据库
CREATE DATABASE table1
ON PRIMARY(
NAME='table1.MDF',
FILENAME='E:\DotNET\34SQL\table',
SIZE=8MB,
FILEGROWTH=10%,
MAXSIZE=UNLIMITED
)
LOG ON(
NAME='table1.LDF',
FILENAME='E:\DotNET\34SQL\table1',
SIZE=8MB,
FILEGROWTH=10%,
MAXSIZE=UNLIMITED
)
--删除数据库
DROP DATABASE table1

对于参数的介绍:
(1) table1:新数据库的名称。数据库名称在 SQL Server 的实例中必须唯一,并且必须符合标识符规则。
(2) ON:指定显式定义用来存储数据库数据部分的磁盘文件(数据文件)。当后面是以逗号分隔的、用以定义主文件组的数据文件的 项列表时,需要使用 ON。主文件组的文件列表可后跟以逗号分隔的、用以定义用户文件组及其文件的 项列表(可选)。
(3) PRIMARY:指定关联的 列表定义主文件。在主文件组的 项中指定的第一个文件将成为主文件。一个数据库只能有一个主文件。有关详细信息,请参阅文件和文件组体系结构。
(4)LOG ON:指定显式定义用来存储数据库日志的磁盘文件(日志文件)。LOG ON 后跟以逗号分隔的用以定义日志文件的 项列表。如果没有指定 LOG ON,将自动创建一个日志文件,其大小为该数据库的所有数据文件大小总和的 25% 或 512 KB,取两者之中的较大者。不能对数据库快照指定 LOG ON。
(5)COLLATE:指明数据库使用的校验方式。collation_name可以是Windows的校验方式名称,也可以是SQL校验方式名称。如果省略此子句,则数据库使用当前的SQL Server校验方式。
(6) NAME:指定文件在SQL Server中的逻辑名称。当使用FOR ATTACH选项时,就不需要使用NAME选项了。
(7) FILENAME:指定文件在操作系统中存储的路径和文件名称。
(8) SIZE:指定数据库的初始容量大小。如果没有指定主文件的大小,则SQL Server默认其与模板数据库中的主文件大小一致,其他数据库文件和事务日志文件则默认为1MB。指定大小的数字SIZE可以使用KB、MB、GB和TB作为后缀,默认的后缀是MB。SIZE中不能使用小数,其最小值为512KB,默认值是1MB。主文件的SIZE不能小于模板数据库中的主文件。
(9) MAXSIZE:指定文件的最大容量。如果没有指定MAXSIZE,则文件可以不断增长直到充满磁盘。
(10)UNLIMITED:指明文件无容量限制。
(11)FILEGROWTH:指定文件每次增容时增加的容量大小。增加量可以用以KB、MB作后缀的字节数或以%作后缀的被增容文件的百分比来表示。默认后缀为MB。如果没有指定FILEGROWTH,则默认值为10%,每次扩容的最小值为64KB。
删除数据库:
DROP DATABASE table1 [ ,…n ] --如果有多个要删除的数据库,用逗号隔开

T-SQL与SQL之间区别:
  T-SQL作为SQL的扩展语言,是SQL程序设计语言的增强版,它是用来让应用程序与SQL Server沟通的主要语言。T-SQL提供标准SQL的DDL和DML功能,加上延伸的函数、系统预存程序以及程式设计结构(如IF和WHILE)让程续设计更有弹性。这里来解释一下“T-SQL提供标准SQL的DDL和DML功能”是什么意思。关系数据库的语言分为三类,它们是数据定义语言,也就是DDL(Data Defining Language);数据操纵语言DML(Data Manufacturing Language)和数据控制语言DCL。而SQL是集DDL、DML、DCL为一体的标准关系数据库语言。其中DDL数据定义语言用于定义和管理SQL数据库中的所有对象的语言;DML数据操纵语言,SQL中处理数据等操作统称为数据操纵语言。