详解 SQL Server数据库学习的9大领域
SQL Server数据库目前是社会当中使用比较广泛的一款数据库,那么SQLServer数据库学习应该关注那些方面呢?中培教育《SQLServer2014数据库管理与性能调优》培训专家臧老师在此进行了详细介绍。 1. SQL基础 SQL Server2000安装、配置,服务器启动、停止,企业管理器、查询分析器。第一代数据库--网状数据库和层次数据库;第二代数据库--关系数据库。数据库(DB);数据库管理系统(DBMS);数据库系统(DBS) 。SQL Server 2000 提供了不同版本:企业版、标准版、个人版、开发版 。SQL Server中的数据类型:整数:int,smallint,tinyint,bigint;浮点数:real,float,decimal;二进制:binary,varbinary;逻辑:bit;字符:char,nchar,varchar,nvarchar;文本和图形:text,ntext,image;日期和时间:datetime,smalldatetime;货币:money,smallmoney 。数据库的创建和删除;数据库表的创建、修改和删除 。 数据完整性:实体完整性:Primary Key,Unique Key,Unique Index,Identity Column;域完整性:Default,Check,Foreign Key,Data type,Rule;参照完整性:Foreign Key,Check,Triggers,Procedure;用户定义完整性:Rule,Triggers,Procedure;Create Table中得全部列级和表级约束 。SQL Server中有5种约束:主键约束(Primary Key Constraint)、默认约束(Default Constraint)、检查约束(Check Constraint)、唯一性约束(Unique Constraint)、外键约束(Foreign Key Constraint)。 关系图 数据库设计的步骤:需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库实施、数据库运行和维护 。 两个实体之间的联系:一对一(1:1)、一对多(1:n)、多对多(m:n) 实体关系模型 -- E-R图 。 数据库规范化:将数据库的结构精简为最简单的形式;从表中删除冗余列;标识所有依赖于其他数据库的数据。 数据库三范式:第一范式就是无重复的列;第二范式就是非主属性非部分依赖于主关键字;第三范式就是属性不依赖于其他非主属性 。 2. SQL语句 SQL全称是“结构化查询语言(Structured Query Language)” SQL的4个部分: 数据定义语言DDL(Data Definition Language)用来定义数据的结构:create、alter、drop。 数据控制语言DCL(Data Control Language)用来控制数据库组件的存取许可、存取权限等得命令:grant、revoke。 数据操纵语言DML(Data Manipulation Language)用来操纵数据库中得数据的命令:insert、update、delete。 数据查询语言DQL(Data Query Language)用来查询数据库中得数据的命令:select。 SQL中得运算符:算术运算符、位运算符、比较运算符、逻辑运算符、通配运算符、字符串连接符、赋值运算符 。 3.查询 简单查询,使用TOP子句 。查询结果排序order by 。带条件的查询where,使用算术表达式,使用逻辑表达式,使用between关键字,使用in关键字 。模糊查询like 。在查询中使用聚合函数:sum(x),avg(x),min(x),max(x),count(x),count(*) 。使用分组查询group by,having子句 。 简单子查询:嵌套子查询、相关子查询;子查询的select语句中不能使用order by子句,roder by子句只能对最终查询结果排序。 嵌套子查询:执行过程,先执行子查询,子查询得到的结果不被显示,而是传给外层查询,作为外层查询的条件,然后执行外层查询,并显示结果。 嵌套子查询的执行不依赖于外层查询,子查询只执行一次。 带有比较运算符的子查询,带有in和not in的子查询,带有any或all的子查询 。相关子查询:子查询为外层查询的每一行执行一次,外层查询将子查询引用的列的值传给了子查询。 相关子查询的执行依赖于外层查询,子查询需要重复的执行。 带有exists和not exists的相关子查询。 多表联接查询:内联接(inner join)、外联接((left、right、full)outer join)、自联接(self join)和交叉联接(cross join) 。 在查询上创建新表:select into语句首先创建一个新表,然后用查询的结果填充新表。 4.视图、索引和事务 视图是由一个或多个数据表(基本表)导出的虚拟表或者查询表,是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制。 视图的好处:能够简化用户的操作;视图能够对机密数据提供安全保护。 创建视图时,视图的名称存在sysobjects表中。有关视图中所定义列的信息添加到syscolumns表中,而有关视图相关性的信息添加到sysdepends表中。另外,create view语句的文本添加到syscomments表中。 在通过视图向表中插入数据时,如果insert语句列表中包含有视图中没有选择的列和不允许为空值的列,这种操作是不允许的。 5. Transact—SQL编程 全局变量:由系统定义和维护,其名称以@@字符开头 。局部变量:由用户定义和赋值,其名称以@字符开头 。输出语句:print 。逻辑控制语句:begin...end ;break ;case ;continue ; goto ; if...else ;return ; while 。常用函数:行集函数,聚合函数,标量函数 。转换函数:convert(dt,e,s),cast() 。数学函数:绝对值abs(n),向上取整ceiling(n),向下取整floor(n),指定次幂power(n,y)。 6.游标 游标是一种能从包含多条数据记录的结果集中每次提取一条记录的机制。将批操作变成行操作,对结果集中得某行进行操作。 7.存储过程 存储过程(stored procedure)类似c语言中的函数,是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字饼给出参数来执行它。 8.触发器 触发器是一种特殊类型的存储过程,主要是通过实践进行触发而被执行。 触发器的主要作用就是能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。其他功能:强化约束,跟踪变化,级联运行,存储过程调用。 SQL Server 2000支持两种类型触发器: after触发器:要求只有执行某一操作之后,触发器才被执行,且只能在表上定义。 instead of触发器:表示并不执行其所定义的操作,而仅是执行触发器本身。既可以在表上定义,也可以在视图上定义,但对同一操作只能定义一个instead of触发器。 工作原理: 当触发insert触发器时,新的数据行就会被插入到触发器表和inserted表中。触发器通过检查inserted表来确定是否执行触发器动作或如何执行。 当在定义有触发器的表上执行update语句时,原始行被移入到deleted表,更新行被移入inserted表。触发器检查deleted表和inserted表以及被更新的表,来确定是否更新了多行以及如何执行触发器动作。 9.数据库高级管理 SQL Server安全体系结构,4个等级:客户机操作系统的安全性,SQL Server的登录安全性,数据库的使用安全性,数据对象的使用安全性 。 SQL Server验证模式:windows身份验证模式和混合模式(windows身份验证和SQL Server身份验证) 登录账户:用户登录(连接)SQL Server服务器的账户和密码。 角色管理:服务器角色(负责管理和维护SQL Server的组);数据库角色(是对某个数据库具有相同访问权限的用户账户和组的集合) 数据库用户:对于每个要求访问数据库的登录账户,必须在要访问的数据库中建立该数据库的访问账户,且与其登录账户链接关联,才可进入该数据库访问。 权限管理:是指用户是否能进行访问数据库资源的相应操作。权限包括:语句权限、对象权限和暗示权限。 备份和恢复: 数据库备份设备,在进行数据库备份之前,首先要创建备份设备。包括:磁盘、磁带和命名管道 。 SQL Server 备份策略:只备份数据库、备份数据库和事务日志、差异备份。 导入导出: DTS(Data Transformation Service)是SQL Server提供的数据传输服务。使用户可以将来自完全不同数据源的数据析取、转换并合并到单个或多个目的。 分离与附加:创建可移动的数据库。