SQL知识整理(1)

  • 存储过程概念,优点
what:存储过程是数据库对象,用于存储用T-SQL编写的程序

why:1)更好的性能。因为sqlserver在它第一次执行时就生成并缓存了存储过程的执行计划。
       2)更好的维护和访问。它集中在一个地方,能够使三层架构的实现更加简单(存储过程将组成数据层)
       3)安全。sqlserver可以为每一个存储过程设置不同的安全许可;而在c#代码中创建的sql查询,更容易受到sql注入攻击
  
  • 视图

what:是虚拟表,实际是一组查询,而不是物理存在的数据表。所以视图嵌套或和视图联接使用可能会造成性能瓶颈
why:1)增加代码重用。特别是联接查询会很方便
         2)可以对不同的视图赋予不同的权限
视图是一组查询, 因此比起普通查询没有性能优势,主要是为了代码复用

视图不能索引,也不能有关联的触发器或默认值
许多DBMS禁止在视图查询中使用ORDER BY子句
有的DBMS要求命名返回所有列,如果列是计算字段,则需要使用别名
有的DBMS把视图视为只读的查询,这表示可以从视图检索数据,但不能将数据写回底层表

  • 索引概念,优点
what 索引

索引是一种特殊的数据库对象,用来提高数据库操作的整体速度。它通过维护特殊的数据结构来映射已索引表的内容,这将大大加速该表的查找操作

why 索引以及它的弊端
优点:
 索引将能够提高从表中读取数据的速度,
缺点:
1)但会降低插入,删除,更新操作的速度,因为使用这些操作,数据服务器不仅需要修改该表,还要修改索引创建的额外的数据结构。在实际的应用程序中,绝大多数的数据库操作都是读取操作,因此使用索引将会明显提高性能
2)占用空间多一些

在一个表中可以创建多个索引,每个索引可以包含一个或多个列。当一个表按某个列创建了索引后,不是行被索引,就是根据该列的值和索引类型被物理索引


对于索引,应该注意以下内容:

1)索引可以加快数据库查询操作,但同时会减慢更改数据库的操作(删除、更新和插入操作)。
2)太多索引会降低数据库性能。通常的做法是,在where,order by 和 group by子句中常用的列,以及常用于表连接、与其他表进行关联的外键列创建索引
3)默认情况下,主题和唯一表列会自动创建索引

  • unique和primary Key的异同
共同点
1)都用来确保数据的唯一性
2)unique和primary key都会自动创建索引
不同:
1)不同于主键,unique不能应用于多字段
2)每个数据表可以有多个unique约束
3)unique允许null值,但只允许一个null值



  • null表示“未定义”或“没有任何输入”,与空字符串(零长度字符串)是两个不同的概念。在T-SQL中用is null来判断,在.net中用DBNULL.Value来判断


  • 写一条SQL查询语句将表中年龄为空的值更新为25。不使用(update)
      select isnull(age, 25)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值