数据库

简介: 断言以及触发器

4.完整性约束命名子句

1.创建

constraint 约束名 约束条件


Sage numeric(3)
    constraint C1 check(Sage < 30)
    
constraint Student_Key primary key(Sno)

2.修改

alter table Student
    drop constraint 名字
    
alter table Student
    add constraint 名字 约束条件

5.域的完整性限制

1.创建

create domain 域名 域的数据类型
    条件

create domain SEX_DOMAIN char(2)    //建立一个性别域
    check (value in ('男','女'))
后序建立性别时可以直接 : Ssex SEX_DOMAIN

6.断言

1.创建

create assertion  断言名 check()子句

数据库课程最多60名同学选修
create assertion ASS_SC 
    check(60>=select count(*)
               from Course,SC
               where SC.Cno=Course.Cno and Course='数据库')

2.删除

drop assertion 断言名

7.触发器

只有创建表的用户才能创建触发器
创建只有一个执行语句的触发器:

create trigger 触发器名                            
                            
before/after 触发事件            //before/after是触发的时机,before是触发事件执行之前激活触发器,after是事件之后激活
                                触发事件:insert(插入),delete(删除),update(修改),insert or delete(二者结合),
                                update of<列名> (修改某列的值)
on 表名

【referencing new/old row as 变量】        //行级触发器时,用户可以在执行语句中使用new和old
                                        new:是update/insert事件之后的新值
                                        old:是update/dlelte事件之前的旧值
                                        例子:
                                        referencing
                                            new row as newname(变量名)
                                            old row as oldname(变量名)
                                        
for each(row/statement)            //触发器类型,row行级触发器
                                            statement语句级触发器

[when 触发条件]执行语句                //当触发条件为真时,执行触发语句。可省略
statement语句级触发器:是删除/修改这个事件本身激活了触发器,跟删几个/修改几个数据没有关系

row行级触发器:当修改或删除多条记录时会触发多次,

而且如果数据没有被修改/删除,即使执行了修改/删除操作都不会激活触发器

创建有多条执行语句的触发器:

create trigger 触发器名
before/after 触发事件
on 表名
for each row
begin
    执行语句
    if(new.job='教授')and(new.sal<4000)
        then new.sal:=4000;
    end if;
end
如果一个表上有多个触发器激活,其执行顺序:

1. 执行该表上的before触发器

2.激活触发器的SQL语句

3.执行该表上的after触发器

如果等级一样,谁先创建谁先执行

删除触发器

drop trigger 触发器名 on 表名
目录
相关文章
|
2月前
|
存储 数据库
为什么需要数据库
为什么需要数据库。
16 4
|
20天前
|
数据库
数据库视频(四)
数据库视频(四)
17 0
|
1月前
|
存储 传感器 监控
数据库的应用
数据库广泛应用于电子商务、物流、酒店管理、医疗、航空、教育、政府和物联网等领域,用于高效存储和管理商品信息、订单数据、医疗记录、航班详情等各类数据,提升效率和服务质量。随着技术进步,其应用场景将持续扩展。
12 1
|
1月前
|
SQL 数据库
数据库(五)
`UPDATE` SQL语句用于修改表中的数据。基本语法是:`UPDATE 表名 SET 属性名1=新值1,属性名2=新值2 WHERE 条件表达式`。例如,更新员工工资:`UPDATE emp SET salary=5000 WHERE id=1`。可以使用`+=`操作符增加值,如`UPDATE emp SET salary=salary+500 WHERE dept_id=2`。统计查询中,`COUNT`, `MAX`, `MIN`, `AVG`, `SUM`等函数用于数值、字符和日期的统计分析,注意`WHERE`子句不能直接使用聚集函数。
15 2
|
1月前
|
关系型数据库 MySQL 数据库
数据库(四)
`DELETE` 语句用于从表中移除数据。基本语法是 `DELETE FROM 表名 WHERE 条件表达式`,条件可选,若省略则删除所有数据。例如,`DELETE FROM emp WHERE dept_id = 10` 删除10号部门员工。`TRUNCATE` 表名更快,用于清空表,但不支持条件,且数据不可恢复。子查询可用于`CREATE TABLE AS SELECT`来复制表,或在`INSERT`, `UPDATE`语句中进行复杂操作,如更新特定区域员工的工资。
10 1
|
8月前
|
关系型数据库 Linux BI
数据库的一些知识
数据库的一些知识
34 0
|
10月前
|
SQL 存储 数据库
|
11月前
|
SQL 数据库
数据库知识与技巧日常汇总
数据库知识与技巧日常汇总
77 0
|
SQL 存储 XML
一、初识数据库
将大量数据保存起来,使用计算机加工而成的可以进行高效访问的数据集合。称为database,DB。 用来管理数据库的计算机系统称为DBMS
|
数据库
数据库的实现
数据库的实现
185 0