mysql 第10 天

2023-11-18

变量

1 定义 declare

DECLARE var_name[,...] type [DEFAULT value]

例如,定义一个 DATE 类型的变量,名称是 last_month_start:

DECLARE last_month_start DATE;

2 赋值

直接赋值   SET var_name = expr [, var_name = expr] ...

查询结果赋值   SELECT col_name[,...] INTO var_name[,...] table_expr

3  定义条件和处理

定义:

DECLARE condition_name CONDITION FOR condition_value

condition_value:
                    SQLSTATE [VALUE] sqlstate_value
             | mysql_error_code

条件的处理:

DECLARE handler_type HANDLER FOR condition_value[,...] sp_statement

handler_type:
                  CONTINUE
         | EXIT
         | UNDO

     condition_value:

                       SQLSTATE [VALUE] sqlstate_value
              | condition_name
              | SQLWARNING
              | NOT FOUND
              | SQLEXCEPTION
              | mysql_error_code

可以看看P157

光标的使用

在存储过程和函数中,使用光标对结果进行循环的处理

 声明光标:
DECLARE cursor_name CURSOR FOR select_statement
 OPEN 光标:
OPEN cursor_name
 FETCH 光标:
FETCH cursor_name INTO var_name [, var_name] ...
 CLOSE 光标:
CLOSE cursor_name

P159 页


流程控制

1 IF句

2  case语句






3  loop语句


4    leave语句

通常和 BEGIN ... END 或者循环一起使用

下面是一个使用 LOOP 和 LEAVE 的简单例子,循环 100 次向 actor 表中插入记录,当插入 100
条记录后,退出循环:




5  iterate语句

用在循环中,作用是跳过当前循环的剩下语句,直接进入下一循环。

6  repeat 语句

有条件的循环控制语句,当满足条件的时候退出循环


7  while语句


小结

本章主要介绍了存储过程和函数的创建、修改的方式,存储过程、函数的适用场合,并介绍
了存储过程和函数中的变量、条件和处理、光标、流程控制的定义和使用,这些对初学者编
写简单的存储过程和函数会有所帮助。虽然使用变量、条件和处理、光标和流程控制可以编
写功能强大的存储过程和函数,并进行复杂的逻辑处理,但是由于篇幅问题,本章并没有对
这部分内容进行深入,读者如果有兴趣的话,可以查询在线的 MySQL 文档获得帮助。
最后要强调的是,存储过程和函数的优势是可以将数据的处理放在数据库服务器上进行,避
免将大量的结果集传输给客户端,减少数据的传输,但是在数据库服务器上进行大量的复杂
运算也会占用服务器的 CPU,造成数据库服务器的压力,所以不要在存储过程和函数中进行
大量的复杂运算,应尽量将这些运算操作分摊到应用服务器上执行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql 第10 天 的相关文章

  • 为什么涉及用户变量的表达式的求值顺序未定义?

    From MySQL手册 http dev mysql com doc refman 5 7 en user variables html以下查询的输出不保证始终相同 SET a 0 SELECT a AS first a a 1 AS s
  • 列是存在的,但是当我尝试删除它时,它说 MYSQL 中没有列? **错误代码:1091。无法删除...**

    我尝试运行以下查询 ALTER TABLE ORDER DETAIL DROP foreign key USER ID It says Error Code 1091 Can t DROP USER ID check that column
  • 从 Yii2 中的联结表检索数据

    我试图从 Yii2 中的连接表获取数据无需额外查询 我有 2 个模型 用户 组 通过连接表 user group 关联 在 user group 表中 我想存储此关系的额外数据 管理标志 将数据添加到连接表的最佳方法是什么 link 方法接
  • 如何在php中正确显示另一种语言的mysql表数据

    我有一个 mySQL 表 其中一列中的数据采用英语以外的语言 波斯语 当我在表中输入数据时 它会正确显示 但是当我想在 php 文件中显示数据时 它会显示如下 好吧 我应该怎么做才能以正确的形式显示数据 由于我经常使用 非英语 字符 因此要
  • 表已满(使用 MEMORY 引擎)

    我想将生产数据库传输到我的开发机器上进行测试 它有 6 张桌子MEMORY出于性能目的的引擎 I did mysqldump routines hxxx uxxx pxxx prod database gt prod dump sql 当我
  • PHP实现的机票预订系统

    如何防止预订系统中的座位被重复预订 我正在用 PHP 和 MYSQL 制作一个航空旅行预订系统模型作为一个项目 我有一个小问题 仅在付款后 门票和座位详细信息才会永久存储在此处 座位号在付款前分配 假设人 1 预订了飞机上的座位 x 并支付
  • Mac OS X Yosemite/El Capitan 上自动启动 MySQL 服务器

    我想在启动时自动启动 MySQL 服务器 这在小牛队是可能的 但在优胜美地似乎不起作用 edit 似乎这也适用于 El Capitan dcc 非常接近 这是 MySQL 在 Yosemite 上再次自动启动的方式 The com mysq
  • grails/mysql 时区更改

    完成更改应用程序时区的最佳方法是什么 在我看来 必须发生以下情况 服务器 TZ 已被系统管理员更改 mysql必须重新启动 数据库中每个基于时间的列都必须使用convert tz 或等效方法更新所有值 因此 要么必须编写一个 mysql 脚
  • 如何在 MySQL Insert 语句中添加 where 子句?

    这不起作用 INSERT INTO users username password VALUES Jack 123 WHERE id 1 有什么想法如何通过 id 将插入范围缩小到特定行吗 在插入语句中 您不会有现有行来执行 where 语
  • 无法删除数据库 mysql:错误 3664 (HY000)

    我的应用程序中有一个名为X Files 我想要drop它 但每当我运行命令时drop database X Files我收到以下错误 mysql gt drop database X Files ERROR 3664 HY000 Faile
  • 如何修改 Amazon RDS 实例的 my.ini 参数

    在启动 MySQL 5 5 RDS 实例时 Amazon 使用默认参数组来配置 my ini 参数 但控制台不允许我修改它们 我怎样才能实现这个目标 例如默认将存储引擎设置为MyISAM或设置字符集 此处记录了这一点 http aws am
  • 数据库级别的别名列名 [MySQL]

    别名 可能是错误的词 因为它是在将列 表名称作为查询中的其他名称引用的上下文中使用的 我感兴趣的是是否有一种方法可以在数据库中为列指定两个名称 如果我要打印这样的表格 它看起来会是这样的 mysql gt SELECT FROM User
  • 使用数据库进行日志记录

    大多数日志似乎都是纯文本形式 而不是放入 MySQL 其他类型的数据库中 这是否有原因 在我看来 将它们放入数据库将使分析变得非常非常容易 但这会以牺牲速度还是其他什么为代价 我不太关心可移植性 显然你会有数据库连接的文本日志 我能想到两大
  • 退出 PHP 脚本后终止或停止 MySQL 查询

    我在工作中运行一个统计服务器 由于运行的查询量很大 该服务器有时会变得非常慢 我们的营销团队使用它作为主要统计工具 团队中的某些人有时会在脚本结束之前退出脚本 通过关闭浏览器或选项卡 同时 SQL 查询继续执行 当有人关闭或离开 PHP 脚
  • 如何使用 dql 从数据表中获取唯一值?

    我有一个表 其中有一列存储了各种值 我想使用 dql 从该表中检索唯一值 Doctrine Query create gt select rec school gt from Records rec gt where rec city ci
  • 如何通过 PDO 使用密码哈希来使我的代码更安全? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的代码实际上可以工作 但它一点也不安全 我不想使用 MD5 因为它不是那么安全 我一直在查找密码哈希 但我不确定如何将其合并到我的代
  • MySQL 最佳实践:SELECT 子递归尽可能提高性能?

    我想选择一个根项目及其子项 使其性能尽可能高 我更喜欢使用嵌套集模型 但这次表结构遵循邻接模型 有关嵌套集和邻接模型的更多信息 http mikehillyer com articles managing hierarchical data
  • 如何获取knex / mysql中所有更新记录的列表

    这是我正在处理的查询 return knex table returning id where boolean false andWhere fooID foo id update boolean true limit num then f
  • PHP,文本从数据库中回显,没有换行,全部一体

    我的数据库中有一个长文本 从 php mayadmin 来看它看起来很好 但是当我将它回显到页面时 它会丢失所有格式 即没有新行 全部都在一个块中 有任何想法吗 Thanks 可能是因为换行符是 n 并且 html 想要 br 所以使用nl
  • 使用 Flot、html、PHP 和 MySql 查询绘制多个图表

    我正在尝试使用 Flot html PHP 和 MySql 查询绘制多个图表 但我陷入了困境 因为我找不到在同一个 html 页面中绘制多个 flot 的方法 为简单起见 在数据库 test db3 映像中包含以下字段 表1 用户名 发送邮

随机推荐

  • Python中__str__的用法

    str 和 repr 如果要把一个类的实例变成 str 就需要实现特殊方法 str 不使用 str print打印出来是个对象 使用了就把对象变成字符串 class Person object def init self name gend
  • 蓝桥杯模块练习6-AD

    main c include
  • ag-grid Column API(机器翻译)

    Column API 一些API方法采用colKey类型为的列关键字 名为 Column string 这意味着您可以传递一个Column对象 通过调用其他方法之一接收到的对象 也可以传递Column ID 即string 列ID是列定义的
  • 【毕业设计】深度学习卫星遥感图像检测与识别系统(目标检测)

    文章目录 0 前言 1 课题背景 2 实现效果 3 Yolov5算法 4 数据处理和训练 5 最后 0 前言 Hi 大家好 这里是丹成学长的毕设系列文章 对毕设有任何疑问都可以问学长哦 这两年开始 各个学校对毕设的要求越来越高 难度也越来越
  • 远程控制,从个人便捷走向企业安全

    根据风险基础安全 Risk Based Security 的数据显示 2020年全球数据泄漏达到360亿条 创历史新高 对比传统的网络安全威胁 数据安全威胁更加多样化 80 的安全风险来自于内部人员或合作伙伴 威胁形式也更集中在账号体系薄弱
  • mybatis中association和collection的column传入多个参数问题

    mybatis中association和collection的column传入多个参数值 项目中在使用association和collection实现一对一和一对多关系时需要对关系中结果集进行筛选 如果使用懒加载模式 即联合使用select
  • mysql mariadb不能启动原因_centOS7 (64) MariaDB无法启动 跪求解决方法

    在CentOS7中mysql被 MariaDB所代替 幸得 贵在坚持 提点 顺利下载 MariaDB等相关软件但是安装完毕后 mariadb还是无法正常启动 root localhost service mariadb start Redi
  • mysql怎么替换部分字符串

    mysql替换部分字符串的方法 1 使用REPLACE 函数 语法 REPLACE 字符串 查找值 替换值 2 使用INSERT 函数 语法 INSERT 字符串 替换开始位置 要替换的字符数 替换值 mysql替换部分字符串 1 使用RE
  • 多租户mysql架构_团队开发框架实战—多租户架构

    1 对多租户的理解 多租户定义 多租户技术或称多重租赁技术 简称SaaS 是一种软件架构技术 是实现如何在多用户环境下 此处的多用户一般是面向企业用户 共用相同的系统或程序组件 并且可确保各用户间数据的隔离性 简单讲 在一台服务器上运行单个
  • XSS 跨站脚本

    XSS 跨站脚本 一 什么是XSS XSS Cross site Scripting 中文名跨站脚本攻击 其原理是攻击者利用浏览器执行前端代码 HTML CSS JavaScript 的特性 将恶意的JavaScript代码插入到页面中 当
  • LVGL动态图GIF实现 v7 version

    lvglv8 1以上的版本自带动态图库 github网址 LVGL GitHub 主要包含四个文件 gifdec c gifdec h lv gif c lvgif h 目录 lvgl release v8 1 lvgl release v
  • Cortex-AX系列性能对比

    首先要明确一个概念 Cortex并不是一种架构 而是ARM的一个系列 Cortex A系列 而我们通常意义的ARM7 ARM9 ARM11才是所谓的架构 同时需注意 Cortex A5 Cortex A8 Cortex A9 Cortex
  • ELF文件格式

    在介绍ELF格式之前 先简单说明一下可执行文件的生成流程 1 编写C源文件 或汇编源文件 2 准备共享库格式的目标文件 shared object file 如数学库 标准库 2 用编译器 compiler 将C编译成可重定位格式的目标文件
  • 关于pickle的load,loads等

    基础知识 python自带的file函数只能存储和读取字符串格式的数据 pickle可以存储和读取成其他格式比如list dict的数据 来自 https www zhihu com question 38355589 如需更详细 关于lo
  • 三十八、java版 SpringCloud分布式微服务云架构之Java 网络编程

    Java 网络编程 网络编程是指编写运行在多个设备 计算机 的程序 这些设备都通过网络连接起来 java net 包中 J2SE 的 API 包含有类和接口 它们提供低层次的通信细节 你可以直接使用这些类和接口 来专注于解决问题 而不用关注
  • windows定时自动备份

    windows定时自动备份 1 创建bat脚本 1 本地备份 复制以下代码保存该文件 修改文件名为以 bat结尾的文件 echo off echo 正在复制 C a 文件夹的内容至 D b 文件夹下 xcopy C a D b e I d
  • pip 命令行“ImportError: No Module Named Typing”

    pip遇到ImportError No Module Named Typing 原因在于运行的是python2版本 升级到python3就不会有这个问题 但是因为Mac中同时有python2和python3 可以把pip安装在python3
  • 如何写出高效的sql的一点想法及oracle常用hint用法

    author skate time 2009 05 15 如何写出高效的sql的一点想法 迷糊的问题 1 什么样的sql 才算是高效的sql呢 2 sql为什么不走索引 如何让sql走索引 即改变sql的执行计划3 索引有哪几种 4 什时候
  • 多显示器设置检测不到_那些与显示设置相关的事

    点击上方 蓝字 点击右上角 选 设为星标 标星 防走丢 那些与显示设置相关的事 本文阅读目录 显示分辨率的概念与设置 刷新率的概念与设置 不能满屏显示的原因 显卡控制面板 控制台的概念 多显示器设置 一 显示分辨率的概念与设置 显示分辨率
  • mysql 第10 天

    变量 1 定义 declare DECLARE var name type DEFAULT value 例如 定义一个 DATE 类型的变量 名称是 last month start DECLARE last month start DAT