mysql创建存储过程

Mysql的过程和函数(记录)

别来无恙 提交于 2019-11-28 09:24:45
1.MySQL存储过程 (1)格式 MySQL存储过程创建的格式:CREATE PROCEDURE 过程名 ([过程参数[,...]]) [特性 ...] 过程体 mysql> DELIMITER // mysql> CREATE PROCEDURE proc1(OUT s int) -> BEGIN -> SELECT COUNT(*) INTO s FROM user; -> END -> // mysql> DELIMITER ; 注: (1)这里需要注意的是DELIMITER //和DELIMITER ;两句,DELIMITER是分割符的意思,因为MySQL默认以";"为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码,不会执行这些代码,用完了之后要把分隔符还原。 (2)存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用","分割开。 (3)过程体的开始与结束使用BEGIN与END进行标识。 (2)参数 MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT,形式如: CREATE PROCEDURE([[IN |OUT |INOUT

mysql了解知识点

感情迁移 提交于 2019-11-28 08:55:53
视图 1.什么是视图   视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用 2.为什么要用视图   如果要频繁使用一张虚拟表,可以不用重复查询 3.如何用视图 create views teacher_course as select * from teacher inner join course on course.tid = teacher.id **强调** 1.在硬盘中,视图只有表结构文件,没有表数据文件 2.视图通常是用于查询,不要改动视图表中的数据 3.一般情况下不会频繁的使用视图来写业务逻辑 触发器 在满足对某张表数据的 增,删,改 的情况下,自动触发的功能称之为触发器 1.为何要用触发器   触发器专门针对我们对 某一张表数据增insert,删delete,改update的行为 ,这类行为一旦执行 就会触发触发器的执行,即自动运行另外一段sql代码 2.创建触发器语法  固定语法结构 create trigger 触发器的名字 after\before insert\update\delete on 表名 for each row begin sql 语句 end  最终固定语法 create trigger tri_after\before_insert\update\delete_user after\before insert\update

MySQL其他专业术语介绍

前提是你 提交于 2019-11-28 08:54:00
一.视图 当你频繁查询一张虚拟表的时候,为了避免多次重复查询,那么就可以通过查询得到的这张虚拟表,制作保存下来。 使用视图具体代码如下: create view teacher2course as select * from teacher inner join course on teacher.tid = course.teacher_id; 强调: 1、在硬盘中,视图只有表结构文件,没有表数据文件 2、视图通常是用于查询,尽量不要修改视图中的数据 二,触发器 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行 ​ 就会触发触发器的执行,即自动运行另外一段sql代码 # 针对插入 create trigger tri_after_insert_t1 after insert on 表名 for each row begin sql代码。。。 end create trigger tri_after_insert_t2 before insert on 表名 for each row begin sql代码。。。 end # 针对删除 create trigger tri_after_delete_t1 after delete on 表名 for each row begin sql代码。。。 end create

事务 视图 触发器 函数 (内置) 存储过程 流程控制 索引 # 39

浪子不回头ぞ 提交于 2019-11-28 08:30:56
day39 1.视图 1.视图.png 1 """""" 2 """ 3 '''视图''' 4 1.什么是视图? 5 一个查询语句的结果是一张虚拟表,将这种虚拟表保存下来 6 它就变成了一个视图 7 8 2.为什么要使用视图? 9 当频繁需要用到多张表的连表结果,那你就可以事先生成好视图 10 之后直接调用即可,避免了反复写连表操作的sql语句 11 12 3.如何使用? 13 create view teacher_course as select * from teacher inner join course on teacher.id = course.teacher_id; 14 15 4.视图的特点? 16 1.视图只有表结构,视图中的数据还是来源于原来的表 17 2.不要改动视图表中的数据 18 3.一般情况下不会频繁的使用视图来写业务逻辑(防止资源消耗) 19 20 """ 1.视图.py 2.触发器 """""" """ 创建表 CREATE TABLE cmd ( id INT PRIMARY KEY auto_increment, USER CHAR (32), priv CHAR (10), cmd CHAR (64), sub_time datetime, #提交时间 success enum ('yes', 'no') #0代表执行失败 );

视图、触发器、事务、存储过程、函数

大憨熊 提交于 2019-11-28 08:29:46
一、视图 1.什么是视图? 一个查询语句的结果是一张虚拟表,将这种虚拟表保存下来 它就变成了一个视图2.为什么要用视图? 当频繁需要用到多张表的连表结果,你就可以事先生成好视图 之后直接调用即可,避免了反复写连表操作的sql语句3.视图特点: 1.视图只有表结构,在数据库中只会生成表结构文件,视图中的数据还是来源于原来的表2.不要改动视图表中的数据,一旦改动就会改动原文件数据,并且在多表情况下,因为有关联关系,你也修改不了视图3.一般情况下不会频繁的使用视图来写业务逻辑 4.视图虽好可不要多用:1.视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便。企业中开发和数据库管理是分开的,如果你的大量逻辑都基于视图来写当你需要  新增视图或者修改视图就要跨部门交流,谁管你的吊事,并且人家可能也不会帮你去维护视图,一旦视图被误删或者丢失,你的所有代码都要重新从头再来,因此还是老老实实使用sql原生语句,该连表就连表2.生成一个视图就会生成一个表结构,当视图足够多的时候占用大量资源 #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+

视图、触发器、事务、存储过程、函数

限于喜欢 提交于 2019-11-28 08:29:42
一、视图   1:什么是视图:       一个查询语句的结果是一张虚拟表,将这种虚拟表保存下来,就形成了一张虚拟表   2:为什么要用视图:       当频繁需要用到多张表的连表结果时,就可以事先生成好视图,基于这张视图的前提上之后的查找直接调用即可,避免了反复写连表操作的mysql语句   3:如何使用视图:     语法:create view 视图名称 as MySQL语句 eg:caeate view teacher_view as select tid from teacher where tname='李平老师' # 如何使用视图 create view teacher2course as select * from teacher inner join course on teacher.tid = course.teacher_id;  4:使用视图注意事项:    (1):视图只是表结果,视图中的数据还是来源于原来的表     (2):创好的视图就不要轻易的改动视图表中的数据,因为它的数据来自原来的表中     (3):一般情况下不会频繁的使用视图来写业务逻辑,数据量过大时消耗空间资源,效率不高 视图是存放到数据库中去的,过分的依赖于数据库中存放的视图,一旦涉及sql语句的修改,就必须去数据库进行修改,通常数据是由专门的DBA来管理的,这样操作起来及其的不便

20190823 尚硅谷MySQL核心技术

独自空忆成欢 提交于 2019-11-28 08:16:47
背景 视频时间:2017.09 MySQL版本:5.5 MySQL基础 命令行启动、停止MySQL: net start MySQL(这里是注册的服务名称) net stop MySQL 命令行连接MySQL: mysql -h localhost -P 3306 -u root -p xxx -h 主机,可省略 -P 端口号,可省略 -u 用户名 -p 密码,与密码之间不能有空格,其他可有可无 常用命令 1.查看当前所有的数据库 show databases; 2.打开指定的库 use 库名 3.查看当前库的所有表 show tables; 4.查看其它库的所有表 show tables from 库名; 5.查看当前所在数据库 select DATABASE(); 6.查看表结构 desc 表名; 7.查看服务器的版本 方式一:登录到mysql服务端 select version(); 方式二:没有登录到mysql服务端 mysql --version 或 mysql --V MySQL的语法规范 不区分大小写,但建议关键字大写,表名、列名小写 每条命令最好用分号结尾 每条命令根据需要,可以进行缩进 或换行 注释 单行注释:#注释文字 单行注释:-- 注释文字 多行注释:/* 注释文字 */ SQL的语言分类 DQL(Data Query Language):数据查询语言

视图、触发器、事务、存储过程、函数、流程控制

蹲街弑〆低调 提交于 2019-11-28 08:07:00
一、视图 1.什么是视图 一个查询语句的结果是一张虚拟表,将这种虚拟表保存下来 它就变成了一个视图 2.为什么要用视图 当频繁需要用到多张表的连表结果,你就可以事先生成好视图 之后直接调用即可,避免了反复写连表操作的sql语句 3.如何使用视图 创建视图语句: create view teacher_course as select * from teacher INNER JOIN course on teacher.tid = course.teacher_id; 注意: 1.视图只有表结构,视图中的数据是来源于原来的表 2.不要改动视图表中的数据 3.一般情况下不会频繁的使用视图来写业务逻辑 二、触发器 1.什么是触发器 触发器是达到某个条件自动触发, 当对数据进行增、删、改的情况下会自动触发触发器的运行 2.为何要使用触发器 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行 就会触发触发器的执行,即自动运行另外一段sql代码 3.固定语法结构 create trigger 触发器的名字 after/before insert/update/delete on 表名 for each row begin sql语句 end 如下: t1为表名 触发器名:tri_befor_t1 在触发器之前或者之后进行插入或更改或删除t1

MySQL 了解知识点

ぐ巨炮叔叔 提交于 2019-11-28 08:01:46
一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 临时表应用举例 一 创建视图 View Code 二 使用视图 #修改视图,原始表也跟着改 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物 | 1 | | 2 | 物理 | 2 | | 3 | 体育 | 3 | | 4 | 美术 | 2 | +-----+--------+------------+ 4 rows in set (0.00 sec) mysql> create view course_view as select * from

mysql数据库 day06

╄→гoц情女王★ 提交于 2019-11-28 07:59:59
1.视图 2.触发器 3.事务 4.存储过程 5.pymysql调用存储过程 6.函数(内置函数) 7.流程控制 一.视图 1.什么是视图   视图就是通过查询得到的一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要使用视图   当频繁需要用到多张表的连表的结果,你就可以事先生成好视图, 之后直接调用即可,这样避免了反复写连表操作的sql语句 3.如何使用   create view teacher_course as select * from teacher INNER JOIN course   on teacher.tid = course.teacher_id; 强调:   1.视图只有表结构,视图中的数据还是来源于原来的表   2.不要改动视图表中的数据   3.一般情况下不会频繁的使用视图来写业务逻辑 补充:那么在开发中会不会取使用视图 不会 不会!视图是mysql的功能,如果你的项目里面大量的使用到了视图,那意味着你后期想要扩张某个功能的时候这个功能恰巧又需要对视图进行修改,意味着你需要先在mysql这边将视图先修改一下,然后再去应用程序中修改对应的sql语句,这就涉及到跨部门沟通的问题,所以通常不会使用视图,而是通过重新修改sql语句来扩展功能 二.触发器 1.什么是触发器   在满足对某张表数据的增,删,改的情况下,自动触发的功能称之为触发器 2