关系数据库系统的用户自定义完整约束机制在SQL中是怎么体现的
发布网友
发布时间:2022-05-02 06:36
我来回答
共2个回答
热心网友
时间:2022-05-02 08:06
在create table 中定义属性的同时可以根据应用要求,定义属性的约束条件,包括:
1.列值非空(not null 短语);
2.列值唯一(unique短语);
3.检查列值是否满足一个布尔表达式(check 表达式)。
热心网友
时间:2022-05-02 09:24
CREATE TABLE和CREATE TRIGGER语句可以根据应用要求定义完整性约束条件,
CREATE TRIGGER可以定义很复杂的完整性约束条件。
CREATE TABLE中约束包括:
NOT NULL:该列值不能为空
NULL:该列值可以为空
UNIQUE:该列值不能存在相同
DEFAULT:该列某值在未定义时的默认值
基本语句:
CREATE TABLE <基本表名>
(<列名1> <列数据类型> [列完整性约束],
<列名2> <列数据类型> [列完整性约束],
……
[表级完整性约束])
CREATE TRIGGER为创建触发器,一般格式为:
CREATE TRIGGER <触发器名>
ON <表名>
FOR | AFTER | INSTEAD OF
{[DELETE , INSERT , UPDATE]}
AS
[IF UPDATE(<列名>)[{AND | OR} UPDATE(<列名>)]…]
SQL语句[…]
其中:
⑴ 触发器名是要建立的触发器名字;表名是该触发器的操作对象;AFTER和INSTEAD OF是触发事件的两种时间选项,如果仅指定FOR关键字,则AFTER是默认设置;{[DELETE , INSERT , UPDATE]}是激活触发器的触发事件。
⑵ 必须至少指定一个选项,其顺序可以任意组合,如果指定的选项多于一个,需要用逗号分割这些选项。
⑶ [IF UPDATE(<列名>)[{AND | OR} UPDATE(<列名>)]…]测试在指定的列上进行的INSERT或UPDATE操作,不能用于DELETE操作。用AND或OR可以组合指定多列。在INSERT操作中,IF UPDATE将返回TRUE值,因为这些列插入了显式值或隐性(NULL)值。
⑷ SQL语句[…]是触发器的条件和操作。
触发器旨在根据数据修改语句检查或更新数据,它不应将数据返回各用户。
更多帮助可以参考SQL帮助文档,也可以HI我!