黑马视频-复习

1、创建存储过程

create proc 存储过程名称

@参数名称 参数类型 【output】

...

as

begin

..........................

..........................

end

2、删除  drop proc 存储过程名称

3、修改  alter proc 存储过程名称

4、调用

declare @aa int

exec 存储过程名称 @参数=100,@参数[email protected] output

ADO.Net与存储过程

  1. sql语句变为存储过程“exec 存储过程名称”
  2. CommandType设置为StoredProcedure
  3. 增加参数
  4. 若有输出参数,需要设置Direction属性

5、事务

begin tran

commit

rollback

Sql默认自动提交事务

如何判断事务中哪一个Sql语句出错 ?

原子性 一致性 隔离性

6、触发器

inserted表与deleted表

insert delete update 与inserted表和deleted表之间的关系

触发器中避免耗时操作

7、视图

好处?

复制查询→简单

安全性,看不到表的结构

创建视图【不能使用order by】

create view 视图名

drop view 视图名

8、存储过程的优点

1、效率高【高效性】

2、安全性【安全性】

3、减少网络传输 【存储过程名的字节与Sql语句字节量】

4、模块化开发【模块化】

来自为知笔记(Wiz)

时间: 2024-11-05 22:42:43

黑马视频-复习的相关文章

黑马视频-触发器

触发器inserted表与deleted表 执行insert语句,使用inserted表 执行delete语句,使用deleted表 执行update语句,旧数据放到deleted表,新数据放到inserted表 触发器:自动化,减少手动到来误操作 触发器没有执行完毕,就会一直占用表,其他链接不能使用该表 output.inserted.列名 1.DML触发器:insert delete update(不支持select) after触发器(for) instead of 触发器(不支持befo

黑马视频-子查询

子查询:独立子查询 相关子查询 select * from (select col1,col2 from Tbl) as Tb 1.一个查询结果作为另一个查询的数据源 ,必须将子查询数据源 别名 as Tbs select * from (select fname ,fage,fgender from MyStudent where fage between 18 and 25 and fgender='女') as Tbs where  fname like '%赵' 2.作为列 select

黑马视频-SQL之case

select tscoreId, tsid, tenglish, 评级=case when tenglish>=95 then '优秀' when tenglish>=90 then '良好' when tenglish>=80 then '中' when tenglish is null then '缺考' else '以后的比尔盖茨' end from TblScore then 后面的数据后类型必须一致 是等值判断 select tscoreId, tsid, tenglish,

黑马视频-多条件搜索

StringBuild sql=new StringBuild("select * from tb where 1=1") if(name!=""){ sql.Append("and name like '%"+name+"%'"); } if(sex!=""){ sql.Append("and sex like '%"+sex +"%'"); } 但是1=1对于某些

黑马程序员——【黑马视频笔记】OC语言基础之description方法

    1.description方法的一般用处 1: // 指针变量的地址 2: NSLog(@"%p", &p); 3: // 对象的地址 4: NSLog(@"%p", p); 5: // <类名:对象地址> 6: NSLog(@"%@", p); .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, &

黑马程序员&mdash;&mdash;【黑马视频笔记】OC语言基础之NSString

1.字符串的创建 1: NSString *s1 = @"jack"; 2: 3: //NSString *s2 = [[NSString alloc] initWithString:@"jack"]; 4: 5: NSString *s3 = [[NSString alloc] initWithFormat:@"age is %d", 10]; 6: 7: // C字符串 > C字符串 10: const char *cs = [s4 U

黑马程序员&mdash;&mdash;【黑马视频笔记】OC语言基础之类的本质

  一.类的本质 1: // 类本身也是一个对象,是个Class类型的对象,简称类对象 2: 3: /* 4: 利用Class 创建 Person类对象 5: 6: 利用 Person类对象 创建 Person类型的对象 7: 8: */ .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; back

黑马程序员&mdash;&mdash;【黑马视频笔记】OC语言基础之利用property优化封装

  1.property功能用法 1: // @property:可以自动生成某个成员变量的setter和getter声明 2: @property int age;//可以直接免去变量的声明 3: //- (void)setAge:(int)age; 4: //- (int)age; .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New",

黑马程序员&mdash;&mdash;【黑马视频笔记】OC语言基础之代码的封装

  1.封装的注意点 1: // 成员变量尽量不要用@public 2: // @public 3: int age; .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode p