你的位置:首页 > 数据库

[数据库]5、SQL Server数据库


SQL Server数据库基础

一、安装SQL Server数据库

setup.exe->安装->全新SQL Server独立安装或向现有安装添加功能->输入序列号->下一步->默认实例->混合模式->输入sa密码->实例账号添加当前账号即可。

如果想要其他机器访问这台机器的sqlserver,需要使用windows防火墙中的入站规则,端口写1433.

二、SQL Server配置管理器

包含各个sql服务,连接数据库时,务必保证sql server服务已开启.

三、系统数据库

1、master数据库

主系统数据库,丢失该库,sqlserver将无法启动。

2、tempdb数据库

用来创建临时对象,包括临时表,存储过程,表变量,全局临时表以及游标等。

3、model数据库

sqlserver实例中创建的全部数据库的模型。

4、msdb数据库

主要用于sqlserver代理的支撑后台。

5、resource数据库

资源数据库,隐藏的制度数据库。主要用于改进sqlserver版本升级时的进程功能。

6、distribution数据库

分发数据库,只有将实例配置为复制的分发者时,该库才存在。复制中所有的元数据与各种类型的历史记录都存储在此数据库中。

四、数据库的组成

数据库主要由文件和文件组组成。数据库中的所有数据和对象(表、存储过程和触发器等)都被存储在文件中。

1、文件

主要数据文件:存放数据和数据库的初始化信息。每个数据库只有一个主要数据文件,默认扩展名是.mdf。
次要数据文件:存放除主要数据文件意外的所有数据文件。有些数据库可能没有次要数据文件,也可能有多个次要数据文件,默认扩展名是.ndf。
事物日志文件:存放用于恢复数据库的所有日志信息。每个数据库至少有一个事物日志文件,也可以有多个事物日志文件,默认扩展名是.ldf。

2.文件组
主文件组:包含主要数据文件和任何没有明确指派给其他文件组的文件。系统表的所有页都分配在主文件组中。
用户定义文件组:主要是在create database 或者alter database 语句中,使用filegroup关键字指定的文件组。

五、创建数据库
创建数据库时包括常规、选项和文件组 常规用于设置数据库的名称大小位置等,选项和文件组中定义数据库的一些选项,显示文件和文件组的统计信息,默认即可。
SQL Server 默认创建了一个primary文件组,用于存放若干个数据文件,但日志没有文件组。
SQL Server数据库的数据文件分逻辑名称和屋里名称。逻辑名称是在sql 语句中引用文件时所使用的名称;物理名称用于操作管理系统。

维护SQL Server数据库

一、脱机与联机

数据库->右键脱机,copy之后右键联机->完成

二、分离与附加

分离不是删除数据库而是从服务器中移除。 exec sp_detach_db @dbname='webDB'

数据库->右键分离->需要时再右键附加上。create database webDB on (filename='c:\webDB.mdf'),(c:\webDB.ldf) for attach

三、导入和导出

数据库->右键导入->选择数据源->完成。

数据库->右键导出->输入服务器名称,账号密码->选择导出方式->完成。

四、备份和恢复

数据库->右键备份->完整备份->完成。

数据库->右键恢复->选择bak文件->完全覆盖->完成。

五、收缩数据库和文件

因为数据库空间分配采用的是现分配、后使用的机制,所以数据库使用过程中就可能会存在多余的空间。收缩数据库功能允许对数据库的每个文件进行收缩。
数据库和日志文件都可以收缩,可以手动收缩额自动收缩。
自动收缩:数据库->右键属性->选项->自动收缩->完成。
手动收缩:数据库->右键任务收缩->数据库/文件->确定。

六、生成与执行SQL脚本

将数据库生成SQL脚本:数据库->编写脚本->create database ->完成。
将数据表生成SQL脚本:数据表->编写脚本->create table->完成。
执行SQL脚本:新建查询->输入脚本->执行。

数据表

一个数据库由多张数据表组成,每个数据表由行和列组成

一、数据类型

1、基本数据类型

精确数字类型:bigint、int、smallint、tinyint、bit、decimal、numeric、money、smallmoney。

浮点数据类型:freal、float。

字符数据类型:text、ntext、char、nchar(n)、varchar、nvarchar(n)。

二进制数据类型:binary、varbinary、image。

日期/时间数据类型:time、date、smalldatetime、datetime、datetime2、datetimeoffset。

2、用户自定义数据类型

2.1 可编程性->类型->用户自定义数据类型->右键新增数据类型。

2.2 exec sp_addtype code_name,'char(8)','not null'

二、数据表的数据完整性

表中的每一列都有一组属性,如名称、数据类型、数据长度和是否为空等。

1.空与非空值(null/not null):定义是否允许为空

2.默认值(default):默认指定值。

3.标识属性(identity):自动为表中插入新行生成连续递增的编号,因标识值通常唯一,所以标识列通常定义为主键(整型数据类型,标识列不能为空)。

4.约束:用来定义自动强制数据库完整性的方式,约束优先于使用触发器、规则和默认值。

非空:用户必须输入一个值。可以有多个非空约束。

检查:用来指定一个布尔操作,限制输入到表中的值。

唯一性:用户的应用程序向列中输入一个唯一的值,值不能重复,但可以为空。

主键:可以保证实体完整性,一个表只能有一个主键,主键不能为空。

外键:控制存储在外键表中的数据。一个表可以有多个外键。

三、企业管理器管理数据表

创建表:数据库->表->右键新建表->输入列名->选择数据类型->是否允许空->保存输入表名。

修改表:数据库->表->右键设计。

重命名:数据库->表->f2。

删除表:数据库->表->右键删除。

非空约束->列->列属性->允许NULL -> 是/否。

主键约束->列->右键->设为主键->完成。

唯一约束->列->索引/键->唯一->是->完成。

检查约束->列->右键->check约束->表达式->完成。

默认约束->列->列属性->默认值。

外键约束->列->右键->关系->表和列规范->选择外键表列。

四、关系的创建与维护

SQL Server 是一个关系数据库管理系统(Relational Datable Management System,RDBMS),当数据库中包含多个表时,需要通过主关键字来建立表之间的关系。

主表user 从表work 主表wid右键->关系->主键work id 外键 user wid。

五、计算列

列属性->计算列规范->公式。