Mysql高阶语句及存储过程

 

目录

空值(NULL) 和 无值('') 的区别:

正则表达式:

存储过程:

创建存储过程:

存储过程的参数:

存储过程的控制语句:


mysql高阶语句

case是 SQL 用来做为if,then,else 之类逻辑的关键字。

select case '字段' when 值1或表达式 then 值或表达式 

when 值2或表达式 then 值或表达式

.......

else 值或表达式 end AS "字段别名" 

from 表;

空值(NULL) 和 无值('') 的区别:

空值null 的长度为 NULL ,占用空间;可以通过 字段 is null 或 字段 is not null 判断是否为null行;count(字段) 会忽略 null 行
无值'' 的长度为 0 ,不占用空间;可以通过 字段 = '' 或 字段 <> '' 判断是否为无值的行;count(字段) 不会忽略 无值 的行

测试一下:

正则表达式:

^                 匹配文本的开始字符 

$                 匹配文本的结束字符

.                 匹配任何单个字符

*                 匹配零个或多个在它前面的字符 

+                 匹配前面的字符 1 次或多次

p1|p2             匹配 p1 或 p2 

[...]             匹配字符集合中的任意一个字符 

[^...]             匹配不在括号中的任何字符,取反

{n}             匹配前面的字符串 n 次

{n,m}            匹配前面的字符串至少 n 次,至多m 次

存储过程:

存储过程是一组为了完成特定功能的SQL语句集合。

存储过程在使用过程中是将常用或者复杂的工作预先使用SQL语句写好并用一个指定的名称存储起来,这个过程经编译和优化后存储在数据库服务器中。当需要使用该存储过程时,只需要调用它即可。存储过程在执行上比传统SQL速度更快、执行效率更高。

存储过程的优点:
1、执行一次后,会将生成的二进制代码驻留缓冲区,提高执行效率
2、SQL语句加上控制语句的集合,灵活性高
3、在服务器端存储,客户端调用时,降低网络负载
4、可多次重复被调用,可随时修改,不影响客户端调用
5、可完成所有的数据库操作,也可控制数据库的信息访问权限

创建存储过程:

DELIMITER $$                            将语句的结束符号从分号;临时改为两个$$(可以是自定义)
CREATE PROCEDURE Proc()                    创建存储过程,过程名为Proc,不带参数
-> BEGIN                                过程体以关键字 BEGIN 开始
-> select * from Store_Info;            过程体语句
-> END $$                                过程体以关键字 END 结束
DELIMITER ;                                语句的结束符号恢复为分号

调用存储过程:CALL Proc;

存储过程的参数:

IN 输入参数:表示调用者向过程传入值(传入值可以是字面量或变量)
OUT 输出参数:表示过程向调用者传出值(可以返回多个值)(传出值只能是变量)
INOUT 输入输出参数:既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)

create procedure 存储过程名(inout 参数名 参数数据类型)
begin
    select 字段 into 参数名 from 表 where 字段 = 参数名;
end$$

set @变量名 = 传入的值;      设置传入的值
call 存储过程名(@变量名);    传入传出参数指定的值只能是变量名
select @变量名;              查看传出的值
 

存储过程的控制语句:

条件语句:
if 条件表达式 then
    SQL语句序列1;
else
    SQL语句序列2;
end if;
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/588452.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python常用技能手册 - 基础语法

系列 Python常用技能手册 - 基础语法 Python常用技能手册 - 模块module Python常用技能手册 - 包package 目录 四大数据类型 整数 int int() 转型 format() 进制互转 浮点数 float float() 转型 字符串 str str() str转型 布尔值 bool 四大数据结构 列表 list …

Vue学习计划-Vue3--初识Vue3,vite创建Vue3项目

1. Vue3简介 性能的提升 打包大小减少41%初次渲染快55%&#xff0c;更新渲染快133%内存减少54% 源码的升级 使用Proxy代替defineProperty实现响应式重写虚拟DOM的实现和Tree-Shaking 拥抱TypeScript Vue3可以更好的支持TypeScript 新的特性 Composition Api(组合Api) setupref…

【零基础入门VUE】在 Vue 中构建复杂表单

✍面向读者&#xff1a;所有人 ✍所属专栏&#xff1a;零基础入门VUE专栏https://blog.csdn.net/arthas777/category_12537076.html 目录 v-modelVue 中的 指令 Vue 中的组件 没有构建步骤 随着构建步骤 注册 VUE 组件 Vue 道具 VUE 中的道具声明 在 VUE 中传递 PROP…

CSP CCF 201409-2 画图 C++满分题解

解题思路&#xff1a; 1.使用二维数组标记每一个方块是否被涂色。 2.注意坐标代表的是点&#xff0c;不是方块&#xff0c;交界处的坐标只能算一个方块。 3.可以看成&#xff1a;每一个坐标都对应它左上角的一个小方块&#xff0c;这样可以避免重复计算方块数 #include<i…

Unity中URP下精度修饰符real

文章目录 前言一、real是什么&#xff1f;1、我们在项目的Packages下找到如下文件&#xff1a;2、HAS_HALF(1代表有half精度&#xff0c;0代表没有half精度)3、PREFER_HALF4、REAL_IS_HALF5、如果 real is half6、否则为float 二、总结 前言 在使用雾效时&#xff0c;ComputeFo…

你好,2024!

大家好&#xff0c;我是南城余&#xff01; 今天是2023年最后一天&#xff0c;看到各位大佬都在分享今年的总结&#xff0c;我也来做个年度总结&#xff0c;是第一次做年度总结&#xff0c;希望以后可以每年都做一个好好的回顾。 NO1. 再见&#xff0c;大学&#xff01; 1 2…

ThinkPad T14s Gen3,ThinkPad X13 Gen3(21BS,21BQ,21BR,21BN)原装出厂Win11系统

lenovo联想ThinkPad系列T14s/X13 Gen3笔记本电脑原装Windows11预装OEM系统镜像 链接&#xff1a;https://pan.baidu.com/s/1yhRMIjlkFvt86aLioOoNOA?pwdfrsp 提取码&#xff1a;frsp 原厂系统自带所有驱动、出厂主题壁纸、系统属性专属联机支持标志、Office办公软件、联想…

竞赛保研 基于机器视觉的12306验证码识别

文章目录 0 简介1 数据收集2 识别过程3 网络构建4 数据读取5 模型训练6 加入Dropout层7 数据增强8 迁移学习9 结果9 最后 0 简介 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于机器视觉的12306验证码识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向…

08.Python文件与异常(文件的open、write、read、seek方法总结+文件备份与OS类方法+异常处理机制及自定义异常+代码示例)

⽂件操作 open&write open概述&#xff1a;是Python中用于打开文件的内置函数。通过一个文件路径作为参数&#xff0c;返回一个文件对象&#xff0c;用来读取、写入或操作文件。返回的文件对象需要定义变量进行接收&#xff0c;变量是否可进行写入追加等操作取决于 open …

rosdep init/update失败(转载)

sudo rosdep init rosdep update 如果你直接成功了&#xff0c;可直接跳过当我没说&#xff08;不过90%的几率你都会失败的啦&#xff09; 由于http://raw.githubusercontent.com这个网址墙的很厉害&#xff0c;大概率你是成功不了的&#xff0c;这里推荐一种本地化安装的方法…

【Leetcode】1154. 一年中的第几天

文章目录 题目思路代码 题目 1154. 一年中的第几天链接 思路 题目要求是给定一个字符串 date&#xff0c;它代表一个日期&#xff0c;采用标准的 YYYY-MM-DD 格式。需要计算这个日期是当年的第几天。 首先&#xff0c;我们可以通过字符串的索引来提取年、月和日的数值&…

二维动态规划问题,python解决最长回文子串

一个算法中的经典问题&#xff0c;求最长回文子串问题&#xff0c;其实是可以归于二维动态规划问题。 对于给定的一个字符串中&#xff0c;找到这个字符串中的回文子串&#xff0c;回文子串的概念是从前往后正向的读和从后往前反向的读都是完全相同的字符串。 对这个问题进行…

el-date-picker周选择器获取选择的日期范围

<el-date-pickerv-model"formData.date"type"week"format"yyyy 第 WW 周"placeholder"选择周"change"weekChange"> </el-date-picker>// 方法一&#xff1a;weekChange(val) {let startTime new Date(val.getT…

猪目标检测数据集VOC格式600张

猪是一种常见的哺乳动物&#xff0c;通常被人们认为是肉食动物&#xff0c;但实际上猪是杂食性动物&#xff0c;以植物性食物为主&#xff0c;也有偶尔食肉的习性。猪的体型较大&#xff0c;圆胖的体型和圆润的脸庞使其显得憨态可掬。它们主要通过嗅觉来感知周围环境&#xff0…

Windows操作系统简介

Windows操作系统简介 为什么要学习Windows操作系统呢&#xff0c;了解Windows系统结构&#xff0c;可以让我们快速学习Linux操作系统&#xff0c;通过对比学习的方法&#xff0c;我们可以更快的学会Linux。 计算机硬件组成包括&#xff1a; CPU、内存、网卡、硬盘、DVD光驱、…

RuntimeError: The NVIDIA driver on your system is too old.

【报错】使用 AutoDL 复现实验时遇到 RuntimeError: The NVIDIA driver on your system is too old (found version 11070). Please update your GPU driver by downloading and installing a new version from the URL: http://www.nvidia.com/Download/index.aspx Alternativ…

CentOS:docker同一容器间通信

docker同一容器中不同服务以别名访问 1、创建bridge网络 docker network create testnet 2、查看Docker网络 docker network ls 3、运行容器连接到testnet网络 使用方法&#xff1a;docker run -it --name <容器名> —network --network-alias <网络别名> <…

docker配置buildx插件

一、介绍 Docker buildx是docker的一个插件 支持Moby BuildKit的所有特性 可以跨CPU架构编译镜像 可以在多节点编译镜像 二、前提 使用 buildx 作为 docker CLI 插件需要使用 Docker 19.03 或更新版本。 三、配置步骤 1&#xff09;客户端&#xff1a;在客户端的配置文…

Vue3使用事件总线(Event Bus)实现发布订阅模式

Vue3使用事件总线&#xff08;Event Bus&#xff09;实现发布订阅模式 在Vue.js中&#xff0c;订阅发布模式&#xff08;也称为发布-订阅模式或Pub/Sub模式&#xff09;是一种设计模式&#xff0c;用于促进组件或对象之间的松散耦合。这种模式允许组件相互通信&#xff0c;而无…

python读取xlsx格式的excel

读取excel表格数据最好用的还是pandas库 首先是安装pandas pip install pandas 引入pandas import pandas as pd 读取excel&#xff0c;xlsx格式数据 # 读取xlsx格式的数据 def readexcel():df pd.read_excel("./test.xlsx",headerNone)df.columns df.iloc[4…