SQL基础2
子查询
独立子查询
相关子查询 in(sql) exists(sql)
连接查询
交叉连接 cross join 和 ,
内链接 inner join
外链接 left outer join
right outer join
笛卡儿积 on为筛选
视图 view
查询语句封装
create view 名字 创建
as
语句.....
alter view 名字 修改
as
语句.....
视图的优点 5张表 2个视图 可以分数据库用户视图权限 可以保证安全
视图是不存储数据的 如果在视图上创建了索引 那么索引视图会有数据
视图的查询不可排序 是无序的 排序就不是结果集了
TSql编程
--TSQL编程
--声明变量
declare @n int=1001
--赋值
set @n=100 第一种
select @n=@n+1 第二种
print @n
set @n = (select count(*) from tblStudent) 没问题
select @n=count(*) from tblStudent 没问题
set @n =(select tsAge from tblStudent) 当子查询会返回多个值得时候报错
select @count=tsAge from tblStudent 这种会把最后一个赋值给变量
事务
begin tran
declare @num int = 100
select * from TblStudent
if @num = 100
rollback
else
commit
存储过程
优:
执行速度快 -- 都是编译过的
允许模块化程序设计--类似方法复用
安全 -- 防止注入
减少网络流量--值传输存储过程的名字
缺点:
把过多业务逻辑放到数据库中了
xp sp 开头的为数据库系统的存储过程
执行存储过程 exec sp_database 执行存储过程
create procedure usp_AAA
@param int=0 参数
as
begin
select * from TblArea
end
exec usp_AAA
触发器
触发器是一种特殊类型的存储过程,不能传递参数 事件触发调用
inserted表与deleted表
inserted表 当Insert或者Update的时候会用到
deleted表 当Delete或者Update的时候会用到
After触发器 事后触发器
instead of触发器 替换触发器
create trigger tri_delete on TblClass
after delete
as
begin
--要将刚刚删除的记录,备份到另一个表中
insert into TblClassDelete
select tClassName,tClassDesc from deleted
end
delete TblClass where tClassId=2
select * from TblClass
select * from TblClassDelete
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。