一、Transact-SQL语言
1.结构化查询语言是SQL的增强版本
基本分类
数据定义语言、数据操纵语言、数据控制语言
常用分类
事务管理语言、流程控制语言、附加的语言元素
2.变量
declare @name nvachar(50)
声明
set @name="李明"
赋值
select @name="王明"
3.运算符
ALL、and、any、beteeen、in、like、not、or、some(逻辑运算符)
4.注释
declare @name --学生姓名
多行注释 /*。。。。。。*/
5.case语句
select * 员工姓名,所在职位,员工职称=
case 所在职位
when '经理' then '高级职称'
when '主管' then '中级职称'
when '职员' then '初级职称'
else '其他职称'
end
6.while语句
declare @i int,@num int
set @i=1
set @num=1
while @i<10
set @i=@i*@num
set @i=@i+1
begin
end
- try...catc
begin try
declare @num int
set @num=1/0
end try
begin catch
select error_link as '错误行数',error_messace()'错误信息'
end earch
8.数学函数
ABS:返回数值表达式的绝对值
EXP:返回制定表达式e为底的指数
CEILING:返回大于或者等于数值表达式的最小整数
。。。
declare @i float,@j int ,@a decimal(18,2)
set @i=12.231
set @j=100
print ceiling(abs(round(@i,2)))
print power(@i,2)
print aqrt(@j) 平方根
9.日期和时间函数
DATEADD,DATEIFF,DATENAME,DATEOART,DAY,GEIDATE,GEIUTVDATE,MOBTH
10.标量值函数
caeate function avgsum varchar(10)
returns table (表值函数)
erturns int
as
begin
return
select vag(分数) from 成绩信息
where 课程编号
11.游标
(1).游标表示一种数据的访问机制,他允许用户访问单独的数据函数,而不是整个行集进行操作。
(2.)游标的特点:游标返回一个完整的结果集,允许定位在结果集的特定行,从结果集的当前位置检索一行或是多行,支持结果集对当前位置进行数据修改
(3).声明
declare student_cursor scroll cursor
for
select * from 学生信息
for update
open student_cursor(打开游标)
close student_cursor(关闭游标)
DEALLOCATE student_cursor(释放游标)
12.事务
begin transaction (开始)
commit transaction
rollback transaction
save transaction
begin transaction
declare @nation varchar(20)
set @nation='满族'
insert into=学生信息 valuse('20180001','李明','男','1999-9-9','2020001')
save transaction
if @nation='满族'
begin
commit transaction
end
else
rollback transaction
事务模式
(1)自动提交
(2)显式事务
(3)隐式事务
(4)批处理级事务
嵌套事务
begin transaction T1
update 班级信息 set 班级名='...'where 班级编号='..'
if exists(select * from 班级信息 where 班级名='...')
begin
begin transcation T2
update 班级信息 set 辅导员='...'where 班级名='..'
if exists(select * from 辅导员信息 where 姓名='')
commit transaction t2
else
begin
rollback transaction t2
end
rollback transaction t1
end
13.锁
一个事务可向系统提出请求,对被操作的数据枷锁
死锁:因争夺资源而造成互相等待的状态
共享(s)锁:用于读操作
独占(x)锁:用于写操作
更新(u)锁
14.原数据函数
declare @str varchar(10),@i int
set @str='12'
set @i=10
if isnumeric(@str)=1
begion
print convert(int,@str)@i
end
15.begin...end语句块
declare @sex varchar(5)
if @sex is not null
begin
select * from 学生信息 where 性别=@sex
print '查询成功'
end
else
begin
print'查询失败'
end
二、存储过程
create procedure porc_student
@sex varchar(10)
as
select * from 学生信息 where 性别=@sex
exec proc(调用存储过程)
临时存储过程
create procedure #get_info
as
selecyt a.分数,b.姓名 from 成绩信息 a , 学生信息 b
where a.学生编号=b.学号
order by b.姓名
drop
三、触发器
1.特殊的存储过程,是一个修改指定表中的数据时执行的存储过程。
优点:
触发器自动执行
触发器可以通过数据库中的相关表进行层叠更改
触发器可以强制限制
种类:DDL触发器、DMI触发器
2.创建INSERT
create trigger T_addnum
on 学生信息
for insert
update 班级信息 set 班级人数=班级人数+1
where 班级编号=(select 所属班级 from inserted)
3.创建DELETE
carate trigger T_deleteteacher
on 教师信息
for delete
as
select 姓名 as 被删除的教师信息
4.创建update触发器
carate trigger T_update
on 教师信息
for delete
as
if (update(姓名) or update(性别))
begin
print '事务不能被处理,基础数据不能被修改'
else'修改成功'
end
update 教师信息 set 姓名='网三' where 教师编号='110'
5.创建DDL触发器(DDL数据源)
create trigger T_notdelete
on database
as
print '事务不能被处理,基础数据表不能修改和删除'
rollback
四、安全机制
1.安全机制的5个等级:
客户机安全机制
网络传输的安全机制
实例级别安全机制
数据库级别安全机制
对象级别安全机制
2.权限
grant all (授予权限)
on 学生成绩管理系统
to teacher
grant select,delete,insert ,update
on 班级信息
to tercher
revoke delete (撤销权限)
on 班级信息
from teacher
deny delete (拒绝权限)
on 班级信息
from teacher
五、备份与恢复数据库
1.备份类型
完整数据库备份
差异数据库备份
事务日志备份
文件组备份
2.备份恢复模式
简单恢复模型
完全恢复模型
大容量日志记录恢复模式
六、自动化SQL servers
自动化管理元素:作业、警报、操作员、计划