当数据库版本不允许直接使用存储过程、函数的语法时用delimiter // 将结束符改成//用完之后再写delimiter;将结束符改回来即可,调用过程、函数用call+其名字即可返回结果

delimiter //
不带参数过程
CREATE PROCEDURE proc ()
BEGIN
SELECT * FROM city where type=1;
end// 调用:call proc; 带参数过程
CREATE PROCEDURE countcity1(IN count int, OUT num INT)
BEGIN
SELECT COUNT(*) FROM city WHERE type=count;
END // 调用 call countcity1(1,@num);
select @num 函数
CREATE FUNCTION NameByZip() RETURNS CHAR(50)
RETURN (select * from city where cityname = '上海'); 设置变量
DECLARE var1 INT DEFAULT 100;
DECLARE var2, var3, var4 INT;
SET var2 = 10, var3 = 20;
SET var4 = var2 + var3; 设置游标
DECLARE cursor_name CURSOR FOR select_statement ; select_statement指的是返回的结果集
打开游标 OPEN cursor_name{游标名称}
使用游标 FETCH cursor_name INTO var_name [, var_name] ... {参数名称}
关闭游标 CLOSE cursor_name{游标名称}
例子
DECLARE t_studentName CHAR(20);
DECLARE t_studentAge INT;
DECLARE cur_student CURSOR FOR SELECT studentName, studentId FROM student where studentName = 'Bruce';
OPEN cur_student;
FETCH cur_student INTO t_studentName, t_studentAge;
...
CLOSE cur_student; IF
IF t_studentName IS NULL
THEN SELECT studentName INTO t_studentName FROM student where studentName = 'Bruce';
ELSE UPDATE studentName set student = NULL where studentName = 'Bruce';
END IF; 删除
DROP PROCEDURE CountStudent
DROP FUNCTION NameByZip; 创建触发器
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_stmt
1、trigger_name标识触发器名称,用户自行指定
2、trigger_time标识触发时机,可以指定为before或after
3、trigger_event标识触发事件,包括INSERT、UPDATE和DELETE
4、tbl_name标识建立触发器的表名,即在哪张表上建立触发器
5、trigger_stmt是触发器程序体,触发器程序可以使用begin和end作为开始和结束,中间包含多条语句
触发器例子:mysql> create trigger update_Student BEFORE update on student FOR EACH ROW
->begin
-> update board1 set articleCount=articleCount+1 where id= NEW.bid;
-> end; 触发器不允许返回结果、mysql的触发器目前不能对当前表进行操作 查看触发器
SHOW TRIGGERS
删除触发器
DROP TRIGGER name ===========================================================
WHERE DATEDIFF(NOW(),reward_time)=0 可以得到当天时间
WHERE DATEDIFF(NOW(),reward_time)=2 可以得到前天时间 原理:参数1与参数二的值的差就是相隔的天数
where DATEDIFF(NOW(),reward_time)<3 and DATEDIFF(NOW(),reward_time)>0 可求出前三天的总数据结果 UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。
union all则是返回所有结果
例子:select *
from student
where id < 4
union
select *
from student
where id > 2 and id < 6

  

mysql存储过程、函数、触发器、的更多相关文章

  1. mysql 存储过程 函数 触发器

    mysql存储过程与函数 存储过程下载  demo mysql> delimiter // -- 这里//为修改默认分隔符: mysql> CREATE PROCEDURE simplep ...

  2. mysql存储过程和触发器的应用

    ***********[mysql 存储过程和触发器 -- 别安驹]********************* 1.什么情况下使用存储过程? 完成一些比较麻烦的逻辑,比如多表在mysql端的cpu很空 ...

  3. 查看SQL SERVER 加密存储过程,函数,触发器,视图

    原文:查看SQL SERVER 加密存储过程,函数,触发器,视图 create  PROCEDURE sp_decrypt(@objectname varchar(50))ASbeginset noc ...

  4. MySQL 存储过程 函数 routine 权限

    MySQL 存储过程 函数 routine 权限 Table of Contents 1. mysql存储过程/函数权限 1.1. 相关对象操作权限检查 1.2. 执行权限 1 mysql存储过程/函 ...

  5. MySQL存储过程、触发器、自定义函数、事务

    1.存储过程 MySQL中存储过程的参数中有IN.OUT.INOUT类型,但是函数的参数只能是IN类型的. “in” 参数:跟 C 语言的函数参数的值传递类似, MySQL 存储过程内部可能会修改此参 ...

  6. mysql存储过程和触发器

    mysql编程(存储过程和触发器) 存储过程 什么是存储过程 存储过程,带有逻辑的sql语句 存储过程特点 执行效率非常快!存储过程是在数据库的服务器端执行的!!! 移植性很差!不同数据库的存储过程是 ...

  7. MySql 存储过程、触发器和权限问题

    存储过程 1.1 什么是存储过程 存储过程,带有逻辑的sql语句 之前的sql没有条件判断,没有循环 存储过程带上流程控制语句(if  while) 1.2 存储过程特点 1)执行效率非常快!存储过程 ...

  8. MySQL存储过程、触发器 小例子

    一.存储过程 语法: CREATE PROCEDURE([[IN |OUT |INOUT ] 参数名 数据类形...]) BEGIN ... END 参数: IN 输入参数 表示该参数的值必须在调用存 ...

  9. MySQL存储过程及触发器

    一.存储过程 存储过程的基本格式如下: -- 声明结束符 -- 创建存储过程 DELIMITER $ -- 声明存储过程的结束符 CREATE PROCEDURE pro_test() --存储过程名 ...

  10. oracle 之索引,同义词 ,关键词,视图 ,存储过程,函数,触发器

    --创建索引 关键词 index create[unique] index index_name on table_name(column_name [,column_name…]) [tablesp ...

随机推荐

  1. APPium连接真机输入框中输入的内容与代码中不一致

    今天解决了上一个问题,又碰到了一个新的问题. 问题:连接真机输入框中输入的内容与代码中不一致. 描述: 想实现登录页面输入用户名和密码自动登录,可是在输入用户名和密码的框中输入的内容总是与代码中的不一 ...

  2. 阿里云使用ssl免费证书

    购买免费证书 购买之后 申请证书 该域名必须添加一条TXT记录 根据提示添加记录 下载证书 我用的nginx做的映射,所以下载nginx nginx安装自行百度 将下载的文件解压到nginx目录下(创 ...

  3. 使用命令将ipa包上传到蒲公英

    参考:官文文档 请根据开发者自己的账号,将其中的 uKey 和 _api_key 的值替换为相应的值.   curl -F "file=@/Users/chenpeisong/Desktop ...

  4. PHP+JS的信息提示弹窗

    基于PHP函数的Msg信息提示框 1.可以设置弹出信息,跳转地址,跳转的时间,跳转的信息标题提示: 2.代码实例: <?php function ShowMsg($msg, $gourl,$ti ...

  5. 面试题57:数组中2个数的和(也是leetcode题目)

    题目:给定一个整数数列,找出其中和为特定值的那两个数. 你可以假设每个输入都只会有一种答案,同样的元素不能被重用. 示例: 给定 nums = [2, 7, 11, 15], target = 9 因 ...

  6. HTML图片

    HTML图片 html图片 <img>标签可以在网页上插入一张图片,它是独立使用的标签,通过“src”属性定义图片的地址,通过“alt”属性定义图片加载失败时显示的文字,以及对搜索引擎和盲 ...

  7. ctDNA的分析理论上也可以为多样性的肿瘤

    导语 肺腺癌(LUAD)和肺鳞癌(LUSC)是最常见的非小细胞肺癌类型.循环肿瘤DNA(ctDNA)是由凋亡或坏死的肿瘤细胞释放并在血液中循环的小片段DNA.与常规肿瘤活检相比,ctDNA检测具有一定 ...

  8. CSS深入理解line-height

    1.line-height高度基于基线 2. 3.p元素的高度由行高决定的 4. 5.

  9. ubuntu 配置php环境

    第一步:先更新 sudo apt-get update 第二步:安装 安装 Apache2: sudo apt-get install apache2 安装PHP模块: sudo apt-get in ...

  10. hive数据库导入与导出

    原文连接:https://www.cnblogs.com/654wangzai321/p/9970321.html 把Hive表数据导入到本地 table->local file insert ...