存储过程有什么优缺点?为什么要用存储过程?或者在什么情况下才用存储过程?

最直白的好处是存储过程比较快。

1、利用存储过程,给Employee表添加一条业务部门员工的信息。

DROP PROCEDURE IF EXISTS insert_business_employee;
DELIMITER // CREATE PROCEDURE insert_business_employee(
IN employee_no_in varchar(8),
IN employee_name_in varchar(10),
IN sex_in char(1),
IN birthday_in date,
IN address_in varchar(50),
IN telephone_in varchar(20),
IN hiredate_in date,
-- IN department_in varchar(30),
IN headship_in varchar(10),
IN salary_in decimal(8,2)
)
BEGIN
INSERT INTO employee
(employee_no,
employee_name,
sex,
birthday,
address,
telephone,
hiredate,
department,
headship,
salary)
VALUES
(employee_no_in,
employee_name_in,
sex_in,
birthday_in,
address_in,
telephone_in,
hiredate_in,
'业务部',
headship_in,
salary_in);
END // DELIMITER ; CALL insert_business_employee(
'',
'无极',
'F',
'2001-10-22',
'北海道',
'',
'2001-10-22',
'老板',
''
);

2、利用存储过程输出所有客户姓名、客户订购金额及其相应业务员的姓名。

DROP PROCEDURE IF EXISTS print_transaction;
DELIMITER //
CREATE PROCEDURE print_transaction()
BEGIN
SELECT
customer_name,
order_sum,
employee_name
FROM
customer x
LEFT JOIN order_master y ON x.customer_no = y.customer_no
LEFT JOIN employee z ON y.saler_no = z.employee_no;
END //
DELIMITER ;
CALL print_transaction();

3、利用存储过程查找某员工的员工编号、订单编号、销售金额。

DROP PROCEDURE IF EXISTS select_employee_performance;
DELIMITER //
CREATE PROCEDURE select_employee_performance(
IN employee_name_in varchar(10)
)
BEGIN
SELECT
saler_no,
order_no,
order_sum
FROM
employee
LEFT JOIN order_master ON employee_no = saler_no
WHERE
employee_name = employee_name_in
ORDER BY
saler_no;
END //
DELIMITER ;
CALL select_employee_performance('张小梅');

4、相关

WEB 开发相关笔记 #05# BUG 日志 持续更新

5、插入一条学生记录,判断学号是否存在。

DROP PROCEDURE IF EXISTS inserStu;
DELIMITER //
CREATE PROCEDURE inserStu(
IN id_in INT,
IN name_in VARCHAR(50)
)
BEGIN
IF EXISTS (SELECT * FROM stu WHERE id = id_in) THEN
SELECT "学号已存在";
ELSE
INSERT INTO stu
(id,
name)
VALUES
(id_in,
name_in);
SELECT "插入成功";
END IF;
END //
DELIMITER ; -- 测试
-- CALL inserStu(1, 'wang');
-- CALL inserStu(1, 'wang');
-- CALL inserStu(333, 'wang');

MySQL笔记(八)存储过程练习&补充的更多相关文章

  1. MySQL笔记---视图,存储过程, 触发器的使用入门

    大二学数据库的时候,只是隐约听到老师提起过视图啊,存储过程啊,触发器啊什么的,但只是淡淡的记住了名字,后来自己做些小项目,小程序,也没有用上过,都只是简单的建表,关联表之类的,导致我对这些东西的理解只 ...

  2. mysql学习笔记:存储过程

    use test; drop table if exists t8; CREATE TABLE t8(s1 INT,PRIMARY KEY(s1)); drop procedure if exists ...

  3. MySQL笔记(六)游标练习

    23.3.1 Trigger Syntax and Examples 意义不明的几道练习,留着备用. 感觉不好写,而且难以调试..不知道以后会不会有实际的应用场景. 环境:MySQL 笔记(三)由 t ...

  4. 最全mysql笔记整理

    mysql笔记整理 作者:python技术人 博客:https://www.cnblogs.com/lpdeboke Windows服务 -- 启动MySQL net start mysql -- 创 ...

  5. MySQL笔记汇总

    [目录] MySQL笔记汇总 一.mysql简介 数据简介 结构化查询语言 二.mysql命令行操作 三.数据库(表)更改 表相关 字段相关 索引相关 表引擎操作 四.数据库类型 数字型 字符串型 日 ...

  6. 涂抹mysql笔记-数据库中的权限体系

    涂抹mysql笔记-数据库中的权限体系<>能不能连接,主机名是否匹配.登陆使用的用户名和密码是否正确.mysql验证用户需要检查3项值:用户名.密码和主机来源(user.password. ...

  7. 【MySQL笔记】SQL语言四大类语言

     SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL.   1. 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句, ...

  8. MySQL学习——操作存储过程

    MySQL学习——操作存储过程 摘要:本文主要学习了使用DDL语句操作存储过程的方法. 了解存储过程 是什么 存储过程是一组为了完成特定功能的SQL语句集合. 使用存储过程的目的是将常用或复杂的工作预 ...

  9. MySQL中的存储过程、游标和存储函数

    MySQL中的存储过程首先来看两个问题: 1.什么是存储过程? 存储过程(Stored Procedure)是在数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存 ...

  10. mysql(函数,存储过程,事务,索引)

    函数 MySQL中提供了许多内置函数: 内置函数 一.数学函数 ROUND(x,y) 返回参数x的四舍五入的有y位小数的值 RAND() 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND( ...

随机推荐

  1. Spark代码中设置appName在client模式和cluster模式中不一样问题

    问题 Spark应用名在使用yarn-cluster模式提交时不生效,在使用yarn-client模式提交时生效,如图1所示,第一个应用是使用yarn-client模式提交的,正确显示我们代码里设置的 ...

  2. spark.yarn.jar和spark.yarn.archive的使用

    启动Spark任务时,在没有配置spark.yarn.archive或者spark.yarn.jars时, 会看到不停地上传jar非常耗时:使用spark.yarn.archive可以大大地减少任务的 ...

  3. IOT专用IOP平台

    10.110.20.200(iot)  root  789a?     centos7  给展湾paul,iot-hub 10.110.20.199(iot)  root             ce ...

  4. windows端口占用情况

    https://jingyan.baidu.com/article/3c48dd34491d47e10be358b8.html netstat -ano,列出所有端口的情况. netstat -aon ...

  5. 【LeetCode每天一题】Reverse Integer(反转数字)

    Given a 32-bit signed integer, reverse digits of an integer. Example 1:                              ...

  6. Entity Framework学习初级篇3--LINQ TO Entities

    LINQ 技术(即LINQ to Entities)使开发人员能够通过使用LINQ 表达式和LINQ 标准查询运算符,直接从开发环境中针对实体框架对象上下文创建灵活的强类型查询.LINQ to Ent ...

  7. webpack 解决跨域问题

    一.webpack 内置了 http-proxy-middleware 可以解决 请求的 URL 代理的问题 安装:npm install --save http-proxy-middleware 二 ...

  8. spring之继承配置

    我们有一下两个类,并且Gradate类继承了Student类 public class Student public class Gradate extends Student 在applicatio ...

  9. Vue系列之 => 使用钩子函数的第二个参数传参

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解

    http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280. ...