MySQL 视图、过程、函数
时间:2022-07-22
本文章向大家介绍MySQL 视图、过程、函数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
简介
视图
- 通俗的讲,视图就是一条SELECT语句执行后返回的结果集。
- 方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性;
- 更加安全,数据库授权命令不能限定到特定行和特定列,但是通过合理创建视图,可以把权限限定到行列级别
过程
- 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。
- 通过吧处理封装在容易使用的单元中,简化复杂的操作
- 由于不要求反复建立一系列处理步骤,这保证了数据的完整性。如果开发人员和应用程序都使用了同一存储过程,则所使用的代码是相同的。还有就是防止错误,需要执行的步骤越多,出错的可能性越大。防止错误保证了数据的一致性。
- 简化对变动的管理。如果表名、列名或业务逻辑有变化。只需要更改存储过程的代码,使用它的人员不会改自己的代码了都。
- 提高性能,因为使用存储过程比使用单条SQL语句要快
- 存在一些职能用在单个请求中的MySQL元素和特性,存储过程可以使用它们来编写功能更强更灵活的代码
函数
- UDF 当自带函数不能满足需要时,你就需要创建了...
环境
➜ ~ mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 56
Server version: 5.7.16 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql>
视图
创建视图
# 只是创建一个简单的视图
CREATE VIEW `user_view` AS
SELECT name FROM table_xxx
示例:
mysql> SELECT name FROM user_view;
+------+
| name |
+------+
| 1 |
| 3 |
| 5 |
| 6 |
| 7 |
+------+
5 rows in set (0.00 sec)
过程
创建存储过程
# 该存储过程比较简单,接收一个varchar(16)的参数,插入table_x表
CREATE PROCEDURE `ADD_USER` (name VARCHAR(16))
BEGIN
IF name IS NULL THEN
SET name = '(empty)';
END IF;
INSERT INTO table_x(name) VALUES(name);
END
示例:
# 使用call 即可调用存储过程
mysql> call ADD_USER('xxx');
函数
创建函数
# 该函数的功能比较简单,判断传入的int型参数大于或者小于5.
CREATE FUNCTION `THAN_FIVE` (id INT)
RETURNS VARCHAR(10)
BEGIN
DECLARE result VARCHAR(10) DEFAULT 0;
IF id < 5 THEN
SET result = '小于5';
END IF;
IF id > 5 THEN
SET result = '大于5';
END IF;
RETURN result;
END
示例:
mysql> select THAN_FIVE(id), id, name from b;
+---------------+----+------+
| THAN_FIVE(id) | id | name |
+---------------+----+------+
| 小于5 | 1 | 1 |
| 小于5 | 2 | 3 |
| 0 | 5 | 5 |
| 大于5 | 6 | 6 |
| 大于5 | 7 | 7 |
+---------------+----+------+
5 rows in set (0.00 sec)
- Assignment 3 (神经网络) | 斯坦福CS231n-深度学习与计算机视觉课程
- ofbiz view渲染处理机制
- ofbiz方法一 条件查询createConditionList
- ofbiz的ant命令创建模块
- 几个不常用但特别实用的PHP预定义变量
- tomcat源码解读六 tomcat中的session生命历程
- tomcat源码解读五 Tomcat中Request的生命历程
- PostQueuedCompletionStatus
- tomcat源码解读四 tomcat中的processer
- tomcat源码解读三(2) tomcat中JMX的源码分析
- 程序的入口
- tomcat源码解读三(1) tomcat的jmx管理
- 利用xinetd实现简单web服务器(镜像站)
- tomcat源码解读二 tomcat的生命周期
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解