2018.12 数据库访问及SQL优化+Ado.Net总结

**************MSSQL**************

 

1.表之间的主外键关系参考下图连接建立:

如果一个表A中的某列在另一个表B会出现多次,就是一对多的关系

反之B表中的该列只会在A中有唯一的对应,那么就是一对一的关系

注意:一般2个表之间的关系,也是是针对2个表的主外键而言!

 

2.查询条件的表达式,可以使用口号来改变优先级

 

3.查询优先级

4.连接查询join,一般实际工作中inner  join比较多(2个表需要完全匹配)

5.分步连接多个表:

 

6.count聚合函数,当需要显示的某列的为空null时,不做计数!

 

7.查询的语句的分步顺序:

 

 

 

8.针对分组情况进行,再次筛选:

 

9.Select查询的顺序总结:

 

10.数据库中的空值:

 

11.

 

12. C#自身使用的是托管资源,尤其是比如list、array等,是相对安全的,资源可以由C#自行释放;但是数据库、网络连接、本地文件等是外部资源,不属于c#托管,所以要及时释放!

 

**************Ado.Net**************

1.两种事件书写的方式::使用事件,是为了解耦,是一种发布-订阅模式

 

2.可变数组

 

3. 连接式读取数据库的方式:ExecuteReader的read()方法,它就是读取一个表的记录,即执行读,每次调用都是返回一行的结果集。一般用在判断这行的结果集是否有效果,有的话就执行下面的操作。一句话:一般用于判断返回的结果,读取过程中不能关闭连接。

  • 不是把数据一次性读取到内存,而是逐行读取,期间一直要保持于数据库的连接,是一种长连接的方式!
  • 而且语法与数据库类型有关

 

4. 断开式读取数据库的方式:可以将数据库内容一次性读取到内存中,然后断开数据库连接的方式(语法与数据库类型无关)如下:

①主要类及成员

②操作模式

5. 日常进行增删改查的封装类,如下:

6.广播的形式(其实跨窗口调用触发事件,跨类触发事件,或者跨窗口传递参数,都是这种形式)

 

7.跨窗口触发事件,也可以使用以下方式,(当只是简单传递参数时)

①在传递类中,定义相应的Action(不需要返回值时)

 

 

②在被传递的类中定义方法(参数类型与 Action<T>一致)

 

④在传递类中进行调用:

 

 

10.子查询

 

11.事务:

事务实例:

 

12. sqlDataReader 一般不结合dataTable进行操作,dataTable一般结合dataAdpter进行操作(一般不需要读表的话,只是查询一行数据的话,可以使用长连接sqlDataReader方式

13.索引的使用情形:给表中需要频繁出现在where后的列添加索引,可以加快查询速度,但是不建议所有列添加索引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值