SQL第五次

触发器

一、建表

mysql> use mydb16_trigger;
mysql> create table goods
      (
        gid    char(8)    primary key,    #商品编号
        name   varchar(10),               #商品名
        price  decimal(8,2),              #价格
        num    int                        #数量
      );

mysql> create table orders
      (
        oid    int  primary key    auto_increment, #订单号
        gid    char(10)    not null,               #商品号
        name   varchar(10),                        #商品名
        price  decimal(8,2),                       #价格
        onum   int,                                #订单数量
        otime  date                                #订单时间
      );

二、在商品表中导入商品记录

mysql> insert into goods values
     ('A0001', '橡皮',   2.5, 100),
     ('B0001', '小楷本', 2.8, 210),
     ('C0001', '铅笔',   1.2, 120),
     ('D0001', '计算器', 28,  20);

三、创建触发器

(一)数量同步功能

(二)订单取消,数量恢复

(三)订单修改,数量同步

下单

订单修改

存储过程

一、S1

mysql> use mydb7_openlab;
mysql> delimiter $$           #更改执行语句分割符
mysql> create procedure s1()  #建立存储过程s1
       begin
         select name,incoming from emp_new;
       end $$
mysql> delimiter ;            #还原分割符   
mysql> call s1();             #调用s1

二、S2

mysql> desc emp_new;       #查看表结构
mysql> delimiter  $$
mysql> create procedure s2(in in_name varchar(11), out out_age int)
       begin
         select age into out_age from emp_new where name=in_name;
       end $$

三、S3

mysql> delimiter $$
mysql> create procedure s3(in in_dept int, out avg_sal float)
       begin
         select avg(incoming) into avg_sal from emp_new where dept2=in_dept group by dept2;
       end $$
mysql> delimiter ;
mysq1> ca11 s3(101,@avg_sal);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值