【书山有路】SQL必知必会 第22课

第15课到21课也看过了,感觉没有什么记笔记的需要。本课很重要,一定要记一下。

本课的主题是“高级SQL特性”,介绍约束、索引和触发器。

概念

  • 约束:管理如何插入或处理数据库数据的规则。

约束

引用完整性

利用键来建立一个从一个表到另一个表的引用,保证只在表中插入合法(存在于引用列)的数据。

主键

保证一列中的值是唯一的,且永不改动。

外键

有助于防止意外删除。

唯一约束

保证一列中的数据是唯一的。

检查约束

用户自定义约束,保证一列中的数据满足一组指定的条件。

  • 检查最大或最小值
  • 指定范围
  • 只允许特定的值

保证插入数据库的数据是你想要的数据。下面的例子施加了约束,保证所有物品的数量大于0:

CREATE TABLE OrderItems
(
    order_num   INTEGER     NOT NULL,
    order_item  INTEGER     NOT NULL,
    prod_id     CHAR(10)    NOT NULL,
    quantity    INTEGER     NOT NULL CHECK(quantity > 0),
    item_price  MONEY       NOT NULL
);

索引

索引用来排序数据以加快搜索和排序操作的速度。

使索引有用的因素是恰当的排序。找出书中词汇的困难不在于必须进行多少搜索,而在于书的内容没有按词汇排序。

关于索引的提示

  • 索引改善检所操作的性能,但降低了数据插入、修改和删除的性能。
  • 索引数据可能要占用大量的存储空间。
  • 取值不多的数据不如取值多的数据能通过索引得到那么多的好处
  • 索引用于数据过滤和数据排序。如果你经常以某些特定的顺序排序数据,则该数据可能适合做索引。
  • 可以在索引中定义多个列(例如,州加上城市)。这样的索引尽在以州加上城市的排序时有用。
  • 定期检查索引,之前创建的索引经过几个月的数据处理后可能变得不再理想。

触发器

触发器可在特定操作执行之前或之后执行。

触发器的常见用途:

  • 保证数据一致
  • 基于某个表的变动在其他表上执行活动。比如,每当更新或删除一行是将审计跟踪记录写入日志表
  • 进行额外的验证并根据需要回退数据
  • 计算计算列的值或更新时间戳
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值