--  **************关联查询(多表查询)**************** -- 需求:查询员工及其所在部门(显示员工姓名,部门名称) -- 1.1 交叉连接查询(不推荐.产生笛卡尔乘积现象:4 * 4=16,有些是重复记录) SELECT empName,deptName FROM employee,dept; -- 需求:查询员工及其所在部门(显示员工姓名,部门名称) -- 多表查询规则:1)确定查询哪些表   2)确定查询哪些字段   3)表与表之间连接条件 (规律:连接条件…
常用的查询条件有1.比较:=,<,>,<=,>=,!=,<>,!>,!<              2.确定范围:between and,not between and              3.确定集合:in,not in              4.字符匹配:like,not like              5.空值:is null, is not null 下面举个确定范围的简单例子:select * from s2 where a betw…
一 操作实例 首先登录mysql: 使用source命令,从命令行执行sql脚本,创建表: 创建第一个存储过程: 事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码: 调用一下,成功了: 创建一个带输出参数的存储过程,返回book表的记录数:创建成功: 如下的调用语句失败: 先在命令行用set定义一个变量:定义变量成功:后面的调用语句失败: 参数是放到括号里的:调用成功: select @s1,显示了@s1的当前值,为9,表的记录数: 调用时…
1 MySQL存储过程和函数 过程和函数,它们被编译后保存在数据库中,称为持久性存储模块(Persistent Stored Module,PSM),可以反复调用,运行速度快. 1.1 存储过程 存储过程是由过程化 SQL 语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,因此称它为存储过程,使用时只要调用即可. 1.2 函数 这里指自定义函数,因为是用户自己使用过程化 SQL 设计定义的.函数和存储过程类似,都是持久性存储模块.函数的定义和存储过程也类似,不同之处是函数必须指定返回类…
mysql -uroot -p show databases; use scm; show tables; show procedure status; 其他命令: SHOW VARIABLES LIKE 'event_scheduler'; 看事件是否启动[用于定时执行时候检查] SET GLOBAL event_scheduler = ON; 命令行开启事件[如果没有开启就手动命令开启] SELECT HOST,USER,Event_priv FROM mysql.user; 本机权限 [执…
1.ƒ()函数(右键)→新建函数(左键)→过程(选择) 2.会遇到的问题 问题一:因为sql语句默认以;为结束符,所以应该修改结束符,但是这在Navicat(11.1.13) for MySQL中是不需要的,否则将报错,导致不能创建成功.如图: 问题二:通常在命令行中我们会在创建存储过程开始这样写:create procedure XXX(......),但是这在Navicat(11.1.13) for MySQL中是不需要的,否则会报 1303-Can 't create a PROCEDUR…
首先是MySQL中创建存储过程的SQL -- 列出全部的存储过程 SHOW PROCEDURE STATUS; -- 查看一个已存在的存储过程的创建语句,假设此存储过程不存在,会提示SQL错误(1305):PROCEDURE pro_init does not exist SHOW CREATE PROCEDURE pro_init; -- 创建存储过程 DROP PROCEDURE IF EXISTS pro_init; -- 删除一个已存在的存储过程 DELIMITER // -- 声明当前…
mysql中创建存储过程和存储函数虽相对其他的sql语言相对复杂,但却功能强大,存储过程和存储函数更像是一种sql语句中特定功能的一种封装,这种封装可以大大简化外围调用语句的复杂程度. 首先以表employee为例写一个简单的sql存储过程: 下边通过创建一个存储过程实现:输入性别,找出与输入性别相匹配的人的平均年龄,并将平均年龄输出. 这里首先通过delimiter &&,将sql语句的结束符换成&&(默认sql语句的结束符是;) 然后如下所示输入: 此时可以把语句的结束…
1.在创建存储过程成功后,使用call 存储过程名执行时报错: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT)错误. 解决方法:检查存储过程使用到的表格的编码方式,包括字段和表格本身.最后统一编码方式.在类型是属于字符.字符串这等类型的后面加上 CHARSET utf8 例: DELIMITER $$   USE `mall`$$   DROP PROCEDURE IF EXI…
存储过程:The stored procedure 结构 CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE stored_procedure_name ([proc_parameter[,...]]) [characteristic ...] routine_body proc_parameter(参数列表): [ IN(输入参数) | OUT(输出参数) | INOUT(即可输入也可输出) ] param_name(参数名称) type(…