ASP.NET-第七天-数据库知识
第七天
复习:
1.连接查询:
内连接inner join ;
外连接:
左连接(left join)、右连接(right join)
左连接就是把左边的数据都显示出来
2.视图:
Create view vw_student
As
查询
Xp_cmdshell 远程创建文件
3.变量
局部变量、declare @num int
全局变量、@@identity、@@error
Begin 代表VS中的{ }
end
4.索引:
存储过程:
优点1.执行速度更快--在数据库中保存的存储过程语句都是编译过的
2.允许模块化程序设计--类似方法的复用
3.提高系统安全性--防止SQL注入
4.减少网络流通量--只要传输存储过程的名称
系统存储过程:
Sp,xp开头
定义存储过程的语法:
Create procedure 名称
As
存储内容
使用存储过程:exec 名称
如果有默认值,可以不传参数,如果没有,就必须传参数;
创建成功存储过程后,想要改变内容,使用alter
在变量后面加上int output 可以返回值
在调用存储过程时可以这样接收:
创建一个简单的无参数的存储过程
创建一个带普通参数的存储过程
创建一个带参数,并且参数带有默认值的存储过程
创建一个带输出参数的存储过程
使用ado。Net调用存储过程:
需要设置一下command对象的执行类型,默认的都是text
存储过程,必须将commandtype设置为commandtype。storedProcedure,这个枚举
触发器:
触发器的作用,自动化操作,减少了手动操作以及出错的几率;
是一种特殊类型的存储过程
DML触发器:
Insert、delete、update (不支持select)
After触发器(for)、instead of触发器(不支持before触发器)
DDL触发器:
Create table、create database、alter、drop
inserted表包含新数据
insert、update触发器会用到
deleted表包含旧数据
delete、update触发器会用到
为表创建一个触发器:
Create trigger trig_mystudent_delete on mystudent
After delete
As
Begin --当删除mystudent表中记录后触发
Select*from deleted
Insert into mystudentDeleted
Select fname,fage,fgender,fenglish,fclassid,fbirthday from deleted
End
Instead of 替换了一个操作;
游标是过程化思维,而SQL本身是集合化思维