SQL 语句 - CREATE PROCEDURE removeUserAndReturnUserNums(IN user_id INT UNSIGNED,OUT user_nums INT UNSIGNED) BEGIN DELETE FROM users WHERE id = user_id; SELECT cout(id) FROM users INTO user_nums; END //
SQL 语句 - CREATE PROCEDURE removeUserByAgeAndReturnInfos(IN user_age SMALLINT UNSIGNED,OUT deleteUsers SMALLINT UNSIGNED,OUT user_counts SMALLINT UNSIGNED) BEGIN DELETE FROM users WHERE age = user_age; SELECT ROW_COUNT() INTO deleteUsers; SELECT COUNT(id) FROM users INTO user_counts; END //
目录
第 6 章 运算符和函数
6-1 回顾和概述
6-2 字符函数
6-3 数值运算符和函数
6-4 比较运算符和函数
6-5 日期时间函数
6-6 信息函数
6-7 聚合函数
6-8 加密函数
第 7 章 自定义函数
7-1 自定义函数简介
CREATE FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL} routine_body
7-2 创建不带参数的自定义函数
create function f1() returns varchar(30) return date_format(now(),'%Y年%m月%d %H:%i:%s');
SELECT f1();
,输出2016年09月09 17:30:08
7-3 创建带有参数的自定义函数
create function f2(num1 smallint unsigned,num2 smallint unsigned) returns float(10,2) unsigned return (num1+num2)/2;
SELECT f2(10,30);
,输出20.00
7-4 创建具有复合结构函数体的自定义函数
DELIMITER string
create function adduser(username varchar(20)) returns int unsigned begin insert test(username) values(username); return last_insert_id(); end //
第 8 章 MySQL 存储过程
8-1 存储过程简介
8-2 存储过程语法结构解析
CREATE
[DEFINER = {user | CURRENT_USER}]
PROCEDURE sp_name([proc_parameter[,...]])
[characteristic ...] routine_body
proc_parameter:
[IN | OUT | INOUT] param_name type
8-3 创建不带参数的存储过程
CREATE PROCEDURE sp1() SELECT VERSION();
CALL sp1();
或CALL sp1
8-4 创建带有IN类型参数的存储过程
CREATE PROCEDURE removeUserById(IN user_id INT UNSIGNED) BEGIN DELETE FROM users WHERE id = user_id; END //
CALL removeUserById(22);
8-5 创建带有IN和OUT类型参数的存储过程
CREATE PROCEDURE removeUserAndReturnUserNums(IN user_id INT UNSIGNED,OUT user_nums INT UNSIGNED) BEGIN DELETE FROM users WHERE id = user_id; SELECT cout(id) FROM users INTO user_nums; END //
CALL removeUserAndReturnUserNums(27,@user_nums); SELECT @user_nums
@name
声明用户变量,只能是当前用户使用8-6 创建带有多个OUT类型参数的存储过程
CREATE PROCEDURE removeUserByAgeAndReturnInfos(IN user_age SMALLINT UNSIGNED,OUT deleteUsers SMALLINT UNSIGNED,OUT user_counts SMALLINT UNSIGNED) BEGIN DELETE FROM users WHERE age = user_age; SELECT ROW_COUNT() INTO deleteUsers; SELECT COUNT(id) FROM users INTO user_counts; END //
CALL removeUserByAgeAndReturnInfos(20,@a,@b)
8-7 存储过程与自定义函数的区别
第 9 章 MySQL 存储引擎
9-1 存储引擎简介
9-2 相关知识点之并发处理
9-3 相关知识点之事务处理
9-4 相关知识点之外键和索引
9-5 各个存储引擎特点
9-6 设置存储引擎
default-storage-engine = engine
CREATE TABLE table_name(...,...) ENGINE = engine;
ALTER TABLE table_name ENGINE [=] engine_name;
第 10 章 MySQL 图形化管理工具
10-1 课程介绍
10-2 管理工具之 phpMyAdmin
10-3 管理工具之 Navicat for MySQL
10-4 管理工具之 MySQL Workbench
10-4 管理工具之 Sequel Pro
第 11 章 MySQL 索引
11-1 索引简介
11-2 索引类型
11-3 索引作用
11-4 索引场景
11-5 索引创建原则
11-6 索引注意事项
KEY(a, b, c)
WHERE a = 1 and b = 2 and c = 3
WHERE a = 1 and b = 2
WHERE a = 1
WHERE b = 2 and c = 3
WHERE a = 1 and c = 3
LIKE
查询时,%
不能在前,否则 MySQL 会使用全文索引。WHERE name LIKE "%wange%"
,name 索引无效。WHERE name lIKE "wang%"
,name 索引生效。