Goto语句
选择语句。
实操:
DECLARE @ Counter int; ‘定义 SET @Counter = 1; ‘赋值 WHILE @Counter < 10 ‘如果Counter小于10 BENGIN ‘开始 Print @Counter ‘打印 SET @Counter = @Counter + 1 ‘使赋值+1 IF @Counter = 4 GOTO Branch_One ‘跳转到One IF @Counter = 5 GOTO Branch_Two ‘跳转到Two END Branch_One: ‘分支1 Print ‘Jumping To Branch One.’ ‘打印 GOTO Branch_Three; ‘去分支3 Branch_Two: ‘分支2 Print ‘Jumping To Branch Two.’ ‘打印 Branch_Three: ‘分支三 Print ‘Jumping To Branch Three.’ ‘打印 TRY…CATCH错误处理语句
格式:
BEGIN TRY {sql_statement | statemet_block} FND TRY BEGIN CATCH {sql_ statement | statemet_block} END CATCH ‘不出错前,出错后。
实操:
Begin try ‘try语句块 Declare @num int ‘赋值 Set @num=1/0 Select @num ‘查询 End try ‘结束try语句块 Begin catch ‘开始捕捉 Select ERROR_LINE() AS ‘错误行书’,ERROR_MESSAGE() ‘错误消息’ ‘查询 End catch
数学函数
返回函数:ABS(绝对值),EXP(以e为底的指数),OEILING(≥最小整数),FLOOR(≤最大整数),LN(自然对数),LOG(以10为底的对数),POWER(幂运算结果),ROUND(指定长度或精度的数值表达式),SIGN(正负或零),SQUARE(平方),SQRT(平方根).
实操
Declare @i float,@j int,@a decimal(18,2) ‘定义 Set @i = -12.2124 ‘赋值 Set @j=100 Print 返回函数(@i,2) ‘打印结果 2,运算为@i的2次方
字符串函数
返回函数:
ASCII(返回左侧的字符的ASCII代码值),CHAR(ASCII代码转换函数,返回指定ASCII代码的字符),LEFT(左子串函数),LEN(字符串函数,返回指定字符数),LOWER(小写字母),LTRIM(删除前导空格字符串),REPLACE(替换函数),REPLLCATE(复制函数),RICHT(右子串函数),RTRIM(删除尾随空格函数),STR(数字变字符函数),SUBSTRING(子串函数)UPPER(大写函数)
实操:
Declare @str nvarchar(20) Set @str=’hello world!’ Print left(@str,5) ‘打印 截取左前5个 字符串函数使用示例: 查找类的两个,CHARINDEX,不能是TEXT和IMAGE数据类型 PATINDEX指定开始位置
聚合函数:
AVG平均数,COUNT 返回记录 MAX MIN SUM总和
列函数,对列使用
日期和时间函数:
返回函数,间隔,边界,整数,当前,UTC时间。时差。
Year(geantent)
标量值函数:
返回一个确定类型的标量值。
其返回值类型为除TEXT、NTEXT 、IMAGE、CURSOR、 TIMESTAMP 和TABLE 类型外的其它数据类型。
实操:求成绩平均值,比AVG单用的方式更合适大量使用
表值函数
表值函数返回 table。对比数据,查找指定的表内数据,列表显示!
游标概述
一种数据访问机制。只要有,游标结果集,游标位置。可以当做一个指针,允许用户对指定位置的数据进行处理。
游标的声明
DECLARE STUDENT _CURSOR SCROLL CURSR 声明 FOR
操作游标
FETCH ABSOLUTE 10[A9] FROM 游标声明的变量 ‘可以打开指定的行数。 Deallocate 游标声明的变量 ‘释放游标
判断游标提取状态
全局变量判断:
@@FETCH_STATUS 返回值,0,成功。-1,失败或行不在结果集中。-2,提取的行不存在。 可以在检索游标中添加if来判断
事务
语句:
BEGIN TRANSACTION 开始 COMMIT TRANSACTION 提交或结束 ROLLBACK TRANSACTION 回滚 SAVE TRANSACTION 逐步处理 锁
限制访问,并对其解锁才能访问访问访问
类型:共享S锁,独占X锁,更新U锁。
系统与元(原)数据集函数[A10]
BEGNG..END语句块
流程控制语句,把多条语句形成组。在bengin end之间
SQL Server 2008事务模式
自动提交事务。显式事务。隐式事务。批处理级事务
XACT_ABORT选项
死锁
产生条件:
两个以上程序争夺资源造成等待,并非外力不可解决。
由于资源互斥,非外力协助得不到资源而无法继续云心
A锁住了记录1等待记录2,B锁住了记录2等待记录1
必要条件:
互斥,请求与保持条件,不剥夺条件,循环等待条件。死锁发生必然有以上条件。
接触和预防:
按同一顺序访问对象
避免事务中的用户交互
保持事务简短并在一个批处理中
使用低隔离级别
使用绑定连接
死锁建议:
嵌套事务
封装嵌套。间接涉及多个服务器的客户事务。在某些情况下,一个服务器的一个操作可能触发另一个服务器的某个操作,通常后者可能又进一步请求操作,依此类推。处理这种情况时,每个客户事务由一系列嵌套事务构成。
第九章 存储过程
存储过程概述
完成一定操作的一组SQL语句。
为什么为什么为什么要用:
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时,可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
4.安全性高,可设定只有某些用户才具有对指定存储过程的使用权
种类:
用户自定义,系统,扩展。
创建存储过程
可以不需要参数
Create procedure proc_student 创建。
Exec proc_student 调用
使用带默认值的参数
调用
使用输出参数
如何在存储执行输出参数返回值。
存储过程示例
不一样的存储过程方式。
可以实现多种事情。
删除存储过程
DROP PROCEDURE{名称}[,…n] 终止程序 界面删除。代码删除:drop proc proc_student
设计存储过程的规则
存储过程的设计规则-阿里云开发者社区
可以引用临时表。
在存储过程内创建本地临时表,则临时表仅为该存储过程而存在;退出后,临时表将消失。
执行的存储过程将调用另一个存储过程,则被调用的存储过程可以访问由第一个存储过程创建的所有对象,包括临时表在内。
如果执行对远程 Microsoft SQL Server 实例进行更改的远程存储过程,则不能回滚这些更改。远程存储过程不参与事务处理。
存储过程中的参数的最大数目为 2100。
存储过程中的局部变量的最大数目仅受可用内存的限制。
根据可用内存的不同,存储过程最大128 MB。
系统存储过程
记录操作过程,exe sp_who 用户名,查询记录 帮助db, monitor,实时监视占用资源
临时存储过程
与创建临时表相同,局部和全局略有区别。##
嵌套存储过程
最多嵌套32个
查看存储过程
exe sp_helptext get_student
第十章 触发器
什么是触发器
修改数据时的存储过程,通过事件进行触发。
种类:DDL(数据定义语言),DML(数据操作语言)(INSERT,UPDATE ,DELETE)
优点:自动执行。层叠更改。强制限制。
1、触发器可以更快更高效的维护数据,节省人力。
2、触发器可以用于加强数据的完整性约束和业务规则。
缺点:
1、可移植性差。
2、占用服务器资源,给服务器造成压力。
3、执行速度主要取决于数据库服务器的性能与触发器代码的复杂程度。
4、触发器会使编程时源码的结构被迫打乱,为将程序修改、源码阅读带来困难。
创建INSERT触发器
所有的格式。
创建DELETE触发器
删除后返回信息的应用。可以调用其他触发器
创建UPDART触发器
删除数据,新增数据。显示更改成不成功。
创建DDL触发器
与其前边三个有不同之处。
管理触发器
增,删,改,禁用。
嵌套触发器
无法操作本身。
递归触发器
嵌套触发器的特例。任何触发器都可以影响同或另一个表。如果触发,可以通过递归在此执行自己。
复杂特性:
必须经过有条理的设计和全面测试。任意点数据修改,会触发一系列触发器。所有触发器构成的事务。最多递归16层,否则清除。
第十一章 安全机制
安全机制
五个等级:客户机,网络传输(加密),实例级别(用户权限),数据库级别(控制权限),对象级别()。
身份验证模式
Windows。BS结构无法连接。混合模式。BS可以连接。用哪个有网络库决定。修改验证模式,实操。
创建Windows登录账号
创建数据库用户
数据库用户即使用和共享数据库资源的人,有在当前数据库中创建数据库对象及进行数据库备份的权限、用户对数据库表的操作权限及执行存储过程的权限以及用户数据库中指定表字段的操作权限三种权限。
新建登录名,可以访问系统数据,个人做的无法访问。登入属性,用户映射,设置访问。数据库下的登录,只能访问该数据库
固定服务器角色:
进入数据库后,确定角色为固定服务器角色或固定数据库角色
固定数据库角色:
针对数据库用户
单独数据库访问权限。不可更改基础信息,只读。权限可以调整
用户自定义数据库角色:
对于权限可以自由选择,细致到列。 与 固定服务器角色和数据库角色的固定级别不同
应用程序角色:
创建方式与固定角色类似。权限细致到列。用户表不显示应用程序角色。
权限:
管理角色:
增,改,删。
DENY否决优先权:
可以对拥有权限的用户进行否决访问?
第十二章 备份与恢复数据库
备份概述
类型:
完整数据库,差异数据库,事务日志(依赖完整数据库),文件组。
备份恢复模式:
简单恢复模型,完全恢复模式,大容量日志恢复模式
创建备份设备
备份设备类型:磁盘,磁带,其他。
服务器对象下的备份设备
常见完整备份
数据库,任务,备份。
用文件备份需要不断创建文件,备份设备不用。 备份压缩,软件新增功能。
完整备份包括对整个数据库,部分事务日志,数据库结构和文件结构的备份,完整备份代表的是备份完成时刻的数据库,完整备份是备份的基础,他提供了任何其他备份的基准,其他备份如差异备份只是在执行完整备份之后才能被执行的。
1.他备份数据及数据库中所有表的架构和相关的文件结构;
2.备份在备份期间发生的所有活动;
3.备份在事务日志中未确定的事务。
创建其他备份
差异备份,事务备份,确保数据执行过完整备份才能使用。可以备份到备份设备。单文件备份。
常规恢复
根据出错的,从完整恢复基础,然后差异恢复更改,事务日志恢复到出错当天。
时间点恢复
精确时间很重要,时点还原,在数据库还原位置。
其他备份选项
控制备份空间和时间,需要多个备份设备同时使用才能使用。空间靠压缩。
第十三章 自动化概述
自动化概述
用代理实现自动化,在SQL配置管理器。
配置数据库邮件
为了报告给用户。在管理 数据库邮件中有数据库邮件配置向导。
发送测试电子邮件
测试是否正常工作。可以查询错误信息,在新建查询位置。
创建操作员
从代理下创建操作员。
创建方故障操作员
与操作员互补,同时可以增改删。
可以禁用。通知故障需维护。
创建作业
代理下创建自动作业,代码控制:
多步骤创建,形成循环,然后跳出循环结束。
执行创建的作业
类型,代理启动,CPU,执行一次,重复执行(间隔)。警报(触发式,通知操作员)定时启动
警报概述
警报由名称,响应事件(性能),触发事件组成(性能),基本元素:错误号,错误严重级别,性能计算器
级别:
创建警报
类型:事件,性能,WMI事件,错误号的选择,可以自己编译。严重性是系统给划分好的。
数据库维护
优化,管理。
按需执行
维护计划向导
创建维护计划自动化。
和作业执行方式一样。
可以自动化执行项
执行顺序,
完整,差异,事务备份也需要设置。
第十四章 集成服务
SQL Server Business Intelligence Development Studio
集成服务概述应用改换
集成服务(Integration Services)是用于生成高性能数据集成和工作流(包括针对数据仓库的提取、转换和加载 (ETL) 操作)。
创建SSIS项目
SQL BIDS客户端里边创建
运行SSIS项目
在SQL上运行,连接时注意选项。貌似是导入功能?
使用导入和导出向导
创建的包(SSIS)导入导出(复制)数据?
包配置
???
包安装
第十五章 报表服务
报表服务概述
使用报表向导设计报表
SQL Server Business Intelligence Development Studio
与关系设计类似。
使用报表设计器
可以自动化,
设计参数化报表
发布报表
管理报表
可看见报表属性,历史记录,数据,有查找功能,改换到处格式,还可以订阅,可以移动。有管理的基本功能,增改删。
第十六章 分析服务
分析服务概述
创建分析服务项目:
创建多维数据:
以上一项为基础继续深入。
处理和浏览多维数据集:
酒店住房管理系统,从各方面查看欢迎度。
添加筛选条件
通过方式不同,筛选出不同的表,有指定的类型编号,可以直接拖拽。
使用数据挖掘向导
第十七章 使用.NET访问SQL server
ADO.NET基本知识
用-连接数据库。
Sql onnection Sqlcommand SqlDateAdapter SqlDateReader DataSet DataTable
实操为完成
调用存储过程
.NET事务处理
与SQL事务功能一致。
第十八章 监视SQL Server 2008
创建跟踪
SQL server profiler 工具里跟踪属性。
数据库优化向导
数据库引擎优化顾问。工具里
跟踪应用程序
应用监视器。
第十九章 使用CLR访问SQL Server 2008
CLR函数
Microsoft,新建项目,新建数据库引用
CLR存储过程
与其他存储过程有很大差别,应用为Microsoft,在属性页面右键,实操未完。
CLR触发器
与存储过程位置相同。
第二十章 使用SMO访问SQL Server 2008
创建SMO项目
从Microsoft中新建项目,Windows 窗体应用程序。
连接SQL Server
用SMO连接 SQL server数据库。与上节路径相同。需要添加引用。
使用SMO创建数据表
通过编程创建。
使用SMO创建表
用SMO创建SQL的表。
使用SMO创建存储过程
???在SQL显示。
使用SMO创建触发器
用SMO实现SQL上的触发器功能。
第二十一章 SQL Server其他操作
SQL 2008内存分配
属于一个小技巧,可以分别使用,不超限。多线程使用。
PowerShell 1.0
复制概念
创建快照发布
有向导。在SQL 复制,本地发布,发布类型有详细介绍,还有添加筛选器。作业计划属性,快照代理
创建快照订阅
有向导。在SQL 复制,本地订阅
APPLY运算符
SQL 2008四个新的排序函数
SQL 2008的同义词