`

MySql的高级使用

 
阅读更多

一、存储过程

 

1、语法

     create procedure name([IN |OUT |INOUT ]    参数名     数据类形)

     begin

         ......

     end;

     IN:输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回

       OUT:输出参数:该值可在存储过程内部被改变,并可返回

       INOUT:输入输出参数:调用时指定,并且可被改变和返回

 

2、优缺点:

      缺点:

      (1) 较应用程序代码,存储过程的代码效率稍微要差些

      (2)给数据库增加额外压力,其扩展性比应用程序差

      (3)安全性:可能会有安全隐患,比如说加密信息,如果将加密算法放在应用程序,那么攻击需要将数据库和应用程序都击破才能获得数据,如果全部都放在数据库,则只要攻破数据库,那么数据将会泄露

       优点:

        (1)节省带宽和网络延迟

         (2)存储过程能实现较快的执行速度

         (3)存储过程增强了SQL语言的功能和灵活性

 

3、存储过程的变量

       (1)定义局部变量

                DECLARE variable_name [,variable_name...] datatype [DEFAULT value]; 

 

        (2)赋值

                 SET 变量名 = 表达式值 [,variable_name = expression ...] 

        

         (3)用户变量

                   用户变量名一般以@开头 

                  例子:

                     mysql > CREATE PROCEDURE GreetWorld( ) SELECT CONCAT(@greeting,' World'); 

                mysql > SET @greeting='Hello'; 
                mysql > CALL GreetWorld( );

 

4、控制语句

     (1)if then else endif

                 ->if parameter=0 then 

                -> update t set s1=s1+1; 
                -> else 
                -> update t set s1=s1+2; 
                -> end if; 

 

      (2)case var

               when  then

               when  then

               else

               end case

               例子:

                 -> case var 

-> when 0 then 
-> insert into t values(17); 
-> when 1 then 
-> insert into t values(18); 
-> else 
-> insert into t values(19); 
-> end case; 
-> end; 

            (3)while ···· end while:

 

4、一些基本命令
      SHOW CREATE PROCEDURE 数据库.存储过程名; 

 

二、触发器

          1、语法

              create trigger triggerName

              after/before insert/update/delete on 表名

              for each row   #这句话在mysql是固定的

              begin

                    sql语句;

 

              end;

 

           2、优缺点

          (1)问题难以排查

          (2)可能导致死锁和锁等待

          (3)更新不一定是原子性的

 

三、游标

       1、游标只能在存储过程中使用

 

        2、语法

  1. create procedure test2()  
  2. declare o int 0;
  3. begin  
  4.     declare cursorTest cursor  
  5.     for  
  6. select *  
  7. from allIntersection;
  8. open cursorTest;
  9. fetch  cursorTest into o;
  10. close cursorTest;
  11. end;  

 

 

 

分享到:
评论

相关推荐

    Mysql高级使用.ppt

    Mysql高级使用.ppt

    Mysql高级-day04.pdf

    以下内容将详细介绍MySQL高级使用中涉及到的常用工具、日志管理、数据备份与迁移、以及主从复制相关的知识点。 ### MySQL常用工具 #### mysql命令行客户端 mysql是MySQL数据库的命令行工具,用于从命令行界面与...

    2021年MySQL高级教程视频.rar

    01.MySQL高级课程内容介绍.mp4 02.MySQL高级Linux上安装MySQL.avi 03.MySQL高级启动及登录MySQL.avi 04.MySQL高级索引概述.avi 05.MySQL高级索引优势和劣势.avi 06.MySQL高级索引数据结构.avi 07.MySQL高级索引数据...

    mysql高级视频教程百度云(2019).txt

    48.MySQL高级_为排序使用索引OrderBy优化.avi 47.MySQL高级_in和exists.avi 46.MySQL高级_小表驱动大表.avi 45.MySQL高级_索引优化答疑补充和总结口诀.avi 44.MySQL高级_索引面试题分析.avi 43.MySQL高级...

    MySQL高级教程视频

    MySQL 高级 - 课程内容介绍.mp4 │ │ 02. MySQL 高级 - Linux上安装MySQL.avi │ │ 03. MySQL 高级 - 启动及登录MySQL.avi │ │ 04. MySQL 高级 - 索引 - 概述.avi │ │ 05. MySQL 高级 - 索引 - 优势和劣势....

    尚硅谷Java视频教程_MySQL高级视频

    尚硅谷_MySQL高级_explain使用简介 · 22.尚硅谷_MySQL高级_explain之id介绍 · 23.尚硅谷_MySQL高级_explain之select_type和table介绍 · 24.尚硅谷_MySQL高级_explain之type介绍 · 25.尚硅谷_MySQL高级_...

    Mysql高级文档超详细

    "Mysql高级文档超详细" 本文档详细讲解了Mysql的高级知识点,涵盖了Mysql的安装、配置、管理等方面的内容。下面是对标题、描述、标签和部分内容的详细解释: 1. Mysql安装 Mysql的安装可以通过rpm包来实现。在...

    尚硅谷MySQL高级_笔记

    尚硅谷MySQL高级的视频学习笔记,由本人整理

    MYSQL 高级的资料

    MySQL的高级特性使得它在处理大数据、高并发场景以及复杂查询方面表现出色。本资料主要涵盖MySQL的高级特性,包括性能优化、存储引擎、事务处理、索引策略、备份与恢复、复制与集群等方面。 1. **性能优化**: - *...

    尚硅谷MySQL全套教程包含MySql核心技术篇和MySQL高级篇

    MYSQL教程 MYSQL教程MYSQL教程 MYSQL教程尚硅谷MySQL全套教程包含MySql核心技术篇和MySQL高级篇。数据库视频教程,全套视频教程。

    mysql高级参考课件(供实操参考).zip

    以下是基于提供的"mysql高级参考课件(供实操参考).zip"压缩包文件中的可能涵盖的一些关键知识点: 1. **SQL语言的高级应用**: - 子查询:学习如何在SELECT语句中嵌套查询,用于获取满足特定条件的数据。 - ...

    布尔教育Mysql高级视频教程(更新中)

    教程名称:布尔教育Mysql高级视频教程(更新中)课程目录:【】Mysql高级.001.理解触发器【】Mysql高级.002.动手写第1个触发器【】Mysql高级.003.触发器中引用行变量【】Mysql高级.004.再谈行变量【】Mysql高级.005....

    3_MySQL高级.zip

    使用这样的脑图,可以更直观地梳理MySQL高级知识的脉络,提高学习效率。 总的来说,这个"Mysql高级"思维导图资源对想要深入理解MySQL的开发者或DBA来说是一份宝贵的资料,它涵盖了MySQL高级特性的方方面面,有助于...

    MySQL高级笔记.zip

    MySQL 高级 - Linux上安装MySQL P2 day01-03. MySQL 高级 - 启动及登录MySQL P3 day01-04. MySQL 高级 - 索引 - 概述 P4 day01-05. MySQL 高级 - 索引 - 优势和劣势 P5 day01-06. MySQL 高级 - 索引 - 数据结构 P6 ...

    mysql高级.pdf

    MySQL高级知识包含多个方面,本文主要介绍了存储函数、触发器、索引、存储引擎以及SQL优化的相关知识点。 首先,存储函数和触发器是MySQL中实现高级功能的关键组件。存储函数允许用户在数据库中存储并重用代码,...

    尚硅谷周阳Mysql高级思维导图脑图学习笔记.rar

    【尚硅谷周阳Mysql高级思维导图脑图学习笔记】是针对MySQL数据库系统的一份高级学习资料,包含了丰富的知识体系,旨在帮助学习者深入理解并掌握MySQL的高级特性和优化技巧。这份资源以.mmap格式提供,这是一种专业的...

    mysql高级笔记 P1 day01-02. MySQL 高级 - Linux上安装MySQL P2 day01-03. MyS

    mysql高级笔记 P1 day01-02. MySQL 高级 - Linux上安装MySQL P2 day01-03. MySQL 高级 - 启动及登录MySQL P3 day01-04. MySQL 高级 - 索引 - 概述 P4 day01-05. MySQL 高级 - 索引 - 优势和劣势 P5 day01-06. MySQL ...

    MySQL高级.zip

    主键自动建立唯一索引 频繁作为查询条件的字段应该建立索引 查询中与其他表关联的字段,外键关系建立索引 频繁更新的字段不适合创建索引 -- 因为每次更新不单单是更新了记录还会更新索引 Where条件里用不到的字段不...

    Mysql高级学习(用法图解)

    Mysql高级学习(用法图解)Mysql高级学习(用法图解)Mysql高级学习(用法图解)(字数?)

    周阳老师 MySQL高级 脑图 .mmap+pdf

    《周阳老师 MySQL高级 脑图》是尚硅谷教育机构推出的一套关于MySQL数据库高级技术的思维导图和PDF教程。这套资料旨在帮助学习者系统地理解和掌握MySQL的高级特性,提升数据库管理与优化的能力。 1. **MySQL概述** ...

Global site tag (gtag.js) - Google Analytics