zoukankan      html  css  js  c++  java
  • MySql视图和存储程序

    1、视图

    1、创建视图

    create view(字段别名...) as 选择语句
    例:
    create view(ln,fn) as select last_name,first_name from student;

    2、可以通过视图对底层表进行增删改查操作。

    2、存储程序

    1、复合语句和语句分隔符

    delimiter 分隔符名
    create procedure 函数名()
    begin
    函数体
    end;
    delimiter #结束分隔符
    call 函数名

    例:
    delemiter $
    create procedure show_times()
    begin
    select CURRENT_TIMESTAMP as 'Local Time';
    select UTC_TIMESTAMP as 'UTC Time';
    end$
    delemiter
    call show_times(); #调用

    2、存储函数和存储过程

    create function 函数名(参数列表)
    returns type stmt
    create procedure 存储过程名(参数列表)
    stmt

    函数例子:

    delemiter $
    create function test(emp_salary INT)
    returns INT
    READS SQL DATA
    BEGIN
     RETURN(select count(*) from emp where salary > 5000 and salary=emp_salary);
    END$
    delemiter;

    函数只能返回一个值,而要返回多个值可以编写多个函数多次调用,或者使用存储过程out。

    存储过程例子:

    delemiter $
    CREATE PROCEDURE show_born_in_year(p_year INT)
    BEGIN
        SELECT first_name,last_name,birth,death
        from president
        where YEAR(birth)=p_year
    END$
    delemiter;

    过程不能用在表达式里,只能使用call语句调用.

    存储过程的三种参数类型:in、out、inout,默认为in:

    3、触发器

    触发器是与特定表相关联的存储过程,其定义会在执行表的delete、insert、update语句时被自动激活。触发器属于表

    语法:

    create trigger trigger_name     #触发器名
    [before|after]                  #触发时机
    [insert|delete|update]          #激活触发器的语句
    ON table_name                   #关联表
    FOR EACH ROW trigger_stmt       #内容

    例子:

    create table t(percent INT, dt DATETIME);
    delimiter $
    create trigger bi_t BEFORE INSERT ON t
          FOR EACH ROW BEGIN
               IF NEW.percent < 0 then
                     SET NEW.percent=0;
               ELSEIF NEW.percent > 100 then
                     SET NEW.percent=100;
               END IF;
    end$  NEW.dt=CURRENT_TIMESTAMP;
    end$
    delimiter;
  • 相关阅读:
    图书管理系统---基于form组件和modelform改造添加和编辑
    Keepalived和Heartbeat
    SCAN IP 解释
    Configure Active DataGuard and DG BROKER
    Oracle 11gR2
    我在管理工作中積累的九種最重要的領導力 (李開復)
    公募基金公司超融合基础架构与同城灾备建设实践
    Oracle 11g RAC for LINUX rhel 6.X silent install(静默安装)
    11gR2 静默安装RAC 集群和数据库软件
    Setting Up Oracle GoldenGate 12
  • 原文地址:https://www.cnblogs.com/xiaolan-/p/12406016.html
Copyright © 2011-2022 走看看