DBMS大多数约束是在表定义中完成的。
主键
主键是一种约束,用来保证一列(或一组列)中的值是唯一的,而且永不改动。
换句话说,表中的一列(或一组列)的值唯一标识表的每一行。
外键
外键是表中的一列,其值必须列在另一个表的主键中。
唯一约束
用来保证一列(或一组列)中的数据是唯一的。
与主键有以下区别:
1.表可包含多个约束,但一个表只能有一个主键。
2.唯一约束列可包含NULL值。
3.唯一约束列的值可重复使用。
4.唯一约束列不能定义为外键。
检查约束
用来保证一列的数据满足一组指定的条件。
检查约束的常见用途:
1.检查最小值或最大值。
2.指定范围。例如指定发货日期大于等于今天的日期。
3.只允许特定的值。
索引
例如找出字典中“苹果”的‘苹’字。一种方法是,从第一页开始浏览每一行。这样不是一种好方法。所以
聪明的人相处了使用字母顺序找出“苹”字的位置。
触发器
触发器是特殊的存储过程,它在特定的数据库活动发生时自动执行。触发器可以与特定表的INSERT、UPDATE和DELETE操作关联。
与存储过程不一样的(存储过程只是简单的存储SQL语句),触发器与单个表相关联。
比如与Orders表上的INSERT操作相关联的触发器只在Orders表中“插入行”时执行。
触发器可在特定操作执行之前或之后执行。
1.保持数据一致。
2.跟踪变动情况。例如每当更新或删除一行时,将审计跟踪记录写入某个日志表
3.保证某个顾客的可用资金不超限定,阻塞插入
4.更新时间戳
数据库安全
大多数DBMS给管理员提供了管理机制,利用管理机制授予或限制对数据的访问。
游标
sql检索操作返回一组行称为结果集,这组返回的行都是与SQL语句相匹配的行。
游标的作用就是查看检索出的行的前进行或后退行
游标不是一条SELECT语句,而是被该语句检索出来的结果集。
存储了游标后,应用程序可以根据需要滚动或浏览其中的数据。
游标对基于Web的应用(如ASP、ASP.NET.PHP、Python、Ruby等)用处不大。
事务处理
如果数据库出现故障,此时脚本容易产生不想要的结果,所以,我们可以约定事务让它在故障后必须去执行。