mysql语句创建临时表并存入数据_mysql实例:在存储过程中创建临时表并储存数据...

在mysql存储过程中创建临时表,并保存数据到该表,然后根据存储过程调用的例子。

是学习mysql存储过程的好例子,值得参考。

代码:

mysql>

mysql> CREATE TABLE Employee( //创建普通表

-> id int,

-> first_name VARCHAR(15),

-> last_name VARCHAR(15),

-> start_date DATE,

-> end_date DATE,

-> salary FLOAT(8,2),

-> city VARCHAR(10),

-> description VARCHAR(15)

-> );

Query OK, 0 rows affected (0.01 sec)

mysql>

mysql>

mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

-> values (1,'Jason', 'Martin', '19960725', '20060725', 1234.56, 'Toronto', 'Programmer');

Query OK, 1 row affected (0.00 sec)

mysql>

mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

-> values(2,'Alison', 'Mathews', '19760321', '19860221', 6661.78, 'Vancouver','Tester');

Query OK, 1 row affected (0.00 sec)

mysql>

mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

-> values(3,'James', 'Smith', '19781212', '19900315', 6544.78, 'Vancouver','Tester');

Query OK, 1 row affected (0.00 sec)

mysql>

mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

-> values(4,'Celia', 'Rice', '19821024', '19990421', 2344.78, 'Vancouver','Manager');

Query OK, 1 row affected (0.00 sec)

mysql>

mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

-> values(5,'Robert', 'Black', '19840115', '19980808', 2334.78, 'Vancouver','Tester');

Query OK, 1 row affected (0.00 sec)

mysql>

mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

-> values(6,'Linda', 'Green', '19870730', '19960104', 4322.78,'New York', 'Tester');

Query OK, 1 row affected (0.00 sec)

mysql>

mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

-> values(7,'David', 'Larry', '19901231', '19980212', 7897.78,'New York', 'Manager');

Query OK, 1 row affected (0.00 sec)

mysql>

mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)

-> values(8,'James', 'Cat', '19960917', '20020415', 1232.78,'Vancouver', 'Tester');

Query OK, 1 row affected (0.00 sec)

mysql>

mysql> select * from Employee; //查询数据

+------+------------+-----------+------------+------------+---------+-----------+-------------+

| id | first_name | last_name | start_date | end_date | salary | city | description |

+------+------------+-----------+------------+------------+---------+-----------+-------------+

| 1 | Jason | Martin | 1996-07-25 | 2006-07-25 | 1234.56 | Toronto | Programmer |

| 2 | Alison | Mathews | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester |

| 3 | James | Smith | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester |

| 4 | Celia | Rice | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager |

| 5 | Robert | Black | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester |

| 6 | Linda | Green | 1987-07-30 | 1996-01-04 | 4322.78 | New York | Tester |

| 7 | David | Larry | 1990-12-31 | 1998-02-12 | 7897.78 | New York | Manager |

| 8 | James | Cat | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester |

+------+------------+-----------+------------+------------+---------+-----------+-------------+

8 rows in set (0.00 sec)

mysql>

mysql>

mysql>

mysql> DELIMITER $$

mysql>

mysql> CREATE PROCEDURE myProc(in_id INT) //创建存储过程,带参存储过程

-> MODIFIES SQL DATA

-> BEGIN

-> DECLARE l_employee_id INT;

-> DECLARE l_salary NUMERIC(8,2);

-> DECLARE l_new_salary NUMERIC(8,2);

-> DECLARE done INT DEFAULT 0;

->

-> DECLARE cur1 CURSOR FOR

-> SELECT id, salary

-> FROM employee

-> WHERE id=in_id;

->

-> DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;

->

-> CREATE TEMPORARY TABLE IF NOT EXISTS emp_raises

-> (employee_id INT, new_salary NUMERIC(8,2));

->

-> OPEN cur1;

-> emp_loop: LOOP

->

-> FETCH cur1 INTO l_employee_id, l_salary;

->

-> IF done=1 THEN /* No more rows*/

-> LEAVE emp_loop;

-> END IF;

->

-> set l_new_salary = 1233.12;

->

-> UPDATE employee

-> SET salary=l_new_salary

-> WHERE id=l_employee_id;

-> /* Keep track of changed salaries*/

-> INSERT INTO emp_raises (employee_id,new_salary) //插入数据

-> VALUES (l_employee_id,l_new_salary);

->

->

-> END LOOP emp_loop;

-> CLOSE cur1;

-> /* Print out the changed salaries*/

->

-> SELECT id,salary from employee;

->

-> SELECT employee_id,new_salary from emp_raises

-> ORDER BY employee_id;

-> END $$

Query OK, 0 rows affected (0.00 sec)

mysql>

mysql> DELIMITER ;

mysql> call myProc(1); //调用存储过程

+------+---------+

| id | salary |

+------+---------+

| 1 | 1233.12 |

| 2 | 6661.78 |

| 3 | 6544.78 |

| 4 | 2344.78 |

| 5 | 2334.78 |

| 6 | 4322.78 |

| 7 | 7897.78 |

| 8 | 1232.78 |

+------+---------+

8 rows in set (0.01 sec)

+-------------+------------+

| employee_id | new_salary |

+-------------+------------+

| 1 | 1233.12 |

+-------------+------------+

1 row in set (0.01 sec)

Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> drop procedure myProc; //删除存储过程

Query OK, 0 rows affected (0.00 sec)

mysql>

mysql>

mysql>

mysql>

mysql>

mysql> drop table Employee; //删除表

Query OK, 0 rows affected (0.00 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559992.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟主机安装mysql_如何虚拟主机安装mysql

匿名用户1级2008-10-20 回答在虚拟机上安装mysql的步骤为:1、下载MySQL-5.5.24-1.rhel5.i386.tar在/usr/local 下建立必要文件夹# cd /usr/local# mkdir mysql# cd /usr/local/mysql# mkdir src# mkdir data用xftp将MySQL-5.5.16-1.rhel5.i386.tar 上传到虚拟机src目…

mysql多副本搭建_一个简单的MySQL多实例环境搭建

安装mysql初始化两个数据库目录mysql_install_db --datadir/usr/local/var/mysql1 --usermysqlmysql_install_db --datadir/usr/local/var/mysql2 --usermysql修改数据库目录属性chown -R mysql /usr/local/var/mysql1chown -R mysql /usr/local/var/mysql2制作多实例启动服务c…

supervisor 子进程退出_用supervisor监管你的程序,不用担心程序挂了

1.背景无论多么优秀的程序员都难以避免写出来的程序会有崩溃的一天,特别是c、c这种高技术含量的语言,一不小心就来个段错误(segment fault),我们通常会写一个守护进程或者守护脚本,检测对应的进程是否退出,…

pta7-3 统计不及格人数_应用统计专硕院校专业难度分析【青岛大学、苏大、西安交通大学】...

原文链接:应用统计专硕院校专业难度分析【第十二期】​mp.weixin.qq.com应用统计专硕院校专业难度分析 【第十二期】TO:哈喽,小可爱们早上给你好呀!今天安安姐给你们更新经济类6个专硕院校专业难度分析专题第十二期,大…

mysql数据库事务有几种特性_面试官:你能说说事务的几个特性是啥?有哪几种隔离级别?...

1、面试题事务的几个特点是什么?数据库事务有哪些隔离级别?MySQL的默认隔离级别?2、面试官心里分析用mysql开发的三个基本面:存储引擎、索引,然后就是事务,你必须得用事务。因为一个业务系统里,…

typescript索引类型_typescript入门:高级类型

学习typescript中 ,有一个小伙伴提出了一个问题const a {a:1,b:2,c:3}复制代码如何取到每个键上的值 ,组成一个联合类型 ? 即得到一个类型为type forA "1" | "2" | "3"复制代码一位大神给出了答案const a {…

latex 图片大小_用LaTeX写作业——插入图片(二)

方法 subfigure可以横向排列一组图片,会自动编号abcd。在一个 subfigure内使用minipage插入图片,通过控制图片大小实现换行效果 # 效果 代码usepackage{subfigure} %所需宏包 usepackage{graphicx}begin{figure}[htbp] centersubfigure[标题…

python中单例模式是什么_python中的单例模式

单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。比如,某个服务器程序的配置信息存放在一个文件中…

rpm包安装mysql配置文件目录_CentOS6.5系统下RPM包安装MySQL5.6

1.新开的云服务器,需要检测系统是否自带安装mysqlyum list installed | grep mysql2.如果发现有系统自带mysql,果断这么干yum -y remove mysql-libs.x86_643.随便在你存放文件的目录下执行,这里解释一下,由于这个mysql的yum源服务…

单链表的代码python_python版本单链表实现代码

今天看了一下数据结构的书,发现其实数据结构没有几种,线性表,数组,字符串,队列和栈,等等,其实是一回事,然后就是树结构,图结构。数据结构的理论并不难,主要是…

python csv文件复制时的编码问题_使用python读取CSV文件时的编码问题

尝试使用python读取CSV文件时遇到障碍。更新:如果只想跳过字符或错误,可以打开文件,如下所示:with open(os.path.join(directory, file), r, encoding"utf-8", errors"ignore") as data_file:到目前为止&…

zabbix mysql脚本_zabbix监控mysql脚本

vim /usr/local/scripts/mysql_status.sh#!/bin/bash#Desc:zabbix 监控 MySQL 状态#Date:2020-09-05#by:Luojq#主机HOST"localhost"#用户USER"root"#密码PASSWORD"123456"#端口PORT"3306"#MySQL连接…

java rsa算法_求RSA算法JAVA实现源代码(带界面的)

展开全部import javax.crypto.Cipher;import java.security.*;import java.security.spec.RSAPublicKeySpec;import java.security.spec.RSAPrivateKeySpec;import java.security.spec.InvalidKeySpecException;import java.security.interfaces.RSAPrivateKey;import java.sec…

redis事务java_java 使用RedisTemplate实现Redis事务

关系型数据库事务的作用是保证并发访问下数据的一致性,Redis事务有些不同,由于Redis是单线程的处理来自client的指令,所以Redis所有命令的执行都是原子性的,举一个简单的例子,单个Redis服务器下,并发地执行…

java string值传递_String是值传递还是引用传递

string中的坑最近看到一道关于string的面试题,差点让我以为string是值传递,就是下面这个例子,体验下:public class demo{public static void main(string[] args) {demo d new demo();string str "bea";d.change(str)…

java切换jdk版本_切换JDK版本quick

最近遇到一个小问题,同时做两个项目,jdk版本一个是5,一个是6,我也去网上找了找方法,但是感觉不是特别好用,最后自己通过一些环境变量设置的技巧和一些批处理命令来使得这件事情只需要双击,输入一…

java读取excel数据的方法是_java怎么读取excel文件里的数据

展开全部下面是一个简单的读取例子,如果报“java.io.IOException: Invalid header signature; read 4503608217567241, expected -2226271756974174256”之类的异常请用Excel打开(如果能打的开的话)62616964757a686964616fe58685e5aeb931333361323639然后另存为一下…

Linux下导出MySQL为SQL文件_MySQL导入导出.sql文件步骤

MySQL导入导出.sql文件步骤如下:一.MySQL的命令行模式的设置:桌面->我的电脑->属性->环境变量->新建->PATH“;path\mysql\bin;”其中path为MySQL的安装路径。二.简单的介绍一下命令行进入MySQL的方法:1.C:\>mys…

python sort 多级排序_Python使用sort和class实现的多级排序功能示例

本文实例讲述了Python使用sort和class实现的多级排序功能。分享给大家供大家参考,具体如下:# -*- coding:utf-8 -*-import randomclass Temp:def __init__(self, a, b, c):self.a aself.b bself.c cdef __str__(self):return ( ([a: %d b: %d c: %d] …

the java home_the java_home environment variable is not defined correctly

在启动tomcat中的startup.bat时,总是报以下错误the java_home environment variable is not defined correctlyThis environment variable is needed to run this programNB: java_home should point to a jdk not a jre环境变量的路径没有问题,把jdk重装…