首页 > 数据库 >MySQL-09-mysql 存储过程入门介绍

MySQL-09-mysql 存储过程入门介绍

时间:2024-04-13 21:11:52浏览次数:20  
标签:存储 SQL mysql 09 MySQL 过程 PROCEDURE

拓展阅读

MySQL 00 View

MySQL 01 Ruler mysql 日常开发规范

MySQL 02 truncate table 与 delete 清空表的区别和坑

MySQL 03 Expression 1 of ORDER BY clause is not in SELECT list,references column

MySQL 04 EMOJI 表情与 UTF8MB4 的故事

MySQL 05 MySQL入门教程(MySQL tutorial book)

MySQL 06 mysql 如何实现类似 oracle 的 merge into

MySQL 07 timeout 超时异常

MySQL 08 datetime timestamp 以及如何自动更新,如何实现范围查询

MySQL 09 MySQL-09-SP mysql 存储过程

SP

常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行。

存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。

  • 优点

(1) 存储过程增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。

(2) 存储过程允许标准组件是编程。存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响。

(3) 存储过程能实现较快的执行速度。如果某一操作包含大量的 Transaction-SQL 代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。
因为存储过程是预编译的。在首次运行一个存储过程时查询,优化器对其进行分析优化,并且给出最终被存储在系统表中的执行计划。而批处理的 Transaction-SQL 语句在每次运行时都要进行编译和优化,速度相对要慢一些。

(4) 存储过程能过减少网络流量。针对同一个数据库对象的操作(如查询、修改),如果这一操作所涉及的 Transaction-SQL 语句被组织程存储过程,那么当在客户计算机上调用该存储过程时,
网络中传送的只是该调用语句,从而大大增加了网络流量并降低了网络负载。

(5) 存储过程可被作为一种安全机制来充分利用。系统管理员通过执行某一存储过程的权限进行限制,能够实现对相应的数据的访问权限的限制,避免了非授权用户对数据的访问,保证了数据的安全。

MySQL 中对于存储过程的支持在 5.0+;

本文案例版本为 5.7;

Learn

对于 SP 的学习,可以直接在 Mysql 命令行客户端输入

mysql> ? procedure

将会得到如下响应:

Many help items for your request exist.
To make a more specific request, please type 'help <item>',
where <item> is one of the following
topics:
   ALTER PROCEDURE
   CREATE PROCEDURE
   DROP PROCEDURE
   PROCEDURE ANALYSE
   SELECT
   SHOW
   SHOW CREATE PROCEDURE
   SHOW PROCEDURE CODE
   SHOW PROCEDURE STATUS

接下来的学习可以直接通过 ?+topic 的形式既可以获取对应的文档说明及例子。

Hello Word

  • 数据准备

执行以下脚本。

CREATE DATABASE `test`;
USE `test`;

CREATE TABLE user(
	id BIGINT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '自增长ID',
	name VARCHAR(10) NOT NULL COMMENT '用户名称',
	age int NOT NULL DEFAULT 0 COMMENT '年龄'
) COMMENT 'user table';

INSERT INTO user (name, age)
VALUES
('ryo', 12),
('jim', 14);

执行后数据库数据应该是这样的

mysql> select * from user;
+----+------+-----+
| id | name | age |
+----+------+-----+
|  1 | ryo  |  12 |
|  2 | jim  |  14 |
+----+------+-----+
2 rows in set (0.00 sec)

CREATE PROCEDURE

  • client cmd

直接在命令行输入

? CREATE PROCEDURE

就可以获取对应的信息。

标签:存储,SQL,mysql,09,MySQL,过程,PROCEDURE
From: https://www.cnblogs.com/houbbBlogs/p/18133365

相关文章

  • 如何找到相应程序的bin目录?(以MySQL为例)
    用win+R打开[运行]接着输入services.msc打开[服务] 在[名称]当中找到相应的程序,双击进入,如MySQL 就可以找到相应程序的bin目录啦......
  • FastAPI-MySQL-Cookie代码实现
    连接数据库fromsqlalchemyimportcreate_enginefromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemy.ormimportsessionmakerfromurllib.parseimportquote_pluspassword='123456'encoded_password=quote_plus(password)SQLALCHEM......
  • 16、数据库加固-mysql 加固
    1.修改DBA登录密码shell下执行:mysqladmin-urootpassword非首次修改:mysqladmin-urootpassword-p原密码在mysql下执行:updateusersetpassword=password('密码')whereuser='root';flushprivileges;2.删除默认数据库和用户删除测试库showdatabases......
  • MySQL安装教程
    MySQL安装1.安装1).双击官方下来的安装包文件2).根据安装提示进行安装安装MySQL的相关组件,这个过程可能需要耗时几分钟,耐心等待。输入MySQL中root用户的密码,一定记得记住该密码2.配置安装好MySQL之后,还需要配置环境变量,这样才可以在任何目录下连接MySQL。......
  • 安装 MySQL 5.7
    安装MySQL5.7‍CentOS查看系统中是否自带安装MySQL[root@localhost~]#yumlistinstalled|grepmysql[root@localhost~]#[root@node01~]#yumlistinstalled|grepmysqlmysql-libs.x86_645.1.71-1.el6@anaconda-CentOS-201311272149.x86_64/6.5[r......
  • 允许任意地址访问 MySQL 数据库 adonis 的新用户
    问题ayear@DESKTOP-GPCA3B0:~/AdonisJS$nodeace.jsmigration:run[error]Host'DESKTOP-GPCA3B0'isnotallowedtoconnecttothisMySQLserveratPacket.asError(/home/ayear/AdonisJS/node_modules/.pnpm/[email protected]/node_modules/mysql2/......
  • 洛谷题单指南-数学基础问题-P1069 [NOIP2009 普及组] 细胞分裂
    原题链接:https://www.luogu.com.cn/problem/P1069题意解读:一个数s代表细胞经过一天分裂的个数,则经过t天后个数为st,要计算经过几天后能整除m1m2,也就是st%m1m2==0,有多个s,要计算天数最少就可以满足条件的。解题思路:直接求st%m1m2显然不可取,会超出整数最大范围,高精度也不是好......
  • Linux下使用docker部署mysql(一)
    1.拉取dockerdockerpullmysql:5.7 2.配置挂载目录sudomkdir-p/docker_data/mysql/datasudomkdir-p/docker_data/mysql/confsudomkdir-p/docker_data/mysql/conf/conf.dsudomkdir-p/docker_data/mysql/conf/mysql.conf.dsudomkdir-p/docker_data/mysql/logs......
  • MySQL入门
    相关概念数据;描述数据特征的符号记录:事物一系列典型的特征表:文件库:文件夹数据库管理软件:mysql,oracle,db2,SQLserver数据库服务器:运行数据库管理软件的计算机统一字符编码统一客户端,服务端,mysqld的字符编码为utf8SQL语句操作文件夹(库)增:createdatabasedb1charset......
  • ubuntu22 安装3090驱动
    1.执行nvidia-smi-a查询显卡资源报错aptinstallnvidia-utils-535-serveraptinstallnvidia-utils-5352.安装驱动nvdia-smi提示未安装驱动预先安装系统:ububtu22.04LTS查看可安装驱动版本:#ubuntu-driversdevicesERROR:root:aplaycommandnotfound==/sys/devices/pci000......