zoukankan      html  css  js  c++  java
  • MySQL学习笔记

    1.特有的SQL命令

      1) 修改字段名称:  alter table tableName change oldName newName type;

        注意:type可以和原来的字段类型不同。

      2) 修改表名称: alter table tableName rename [to] newTableName;

      3) 分页查询: select * from tableName limit startLine,amount;

        注意:startLine -- 将数据库中的第(startLine+1)行作为查询结果的第一条数据,startLine从0开始;

           amount   --显示的条数

      4) 查询数据库的编码格式: show create database databaseName;

    2.存储过程

      1) 不带参数的存储过程  

    -- 声名结束符
    DELIMITER $
    -- 创建存储过程
    CREATE PROCEDURE pro_test()
    BEGIN
        -- 可以添多个SQL语句/逻辑
        INSERT INTO emp VALUES(1,'huwei');
        INSERT INTO emp VALUES(2,'xingkong');
    END $
    
    -- 调用存储过程
    CALL pro_test();
    
    -- 删除存储过程
    -- 注意:最后没有()
    DROP PROCEDURE pro_test;

      2) 带输入参数的存储过程

    -- 声名结束符
    DELIMITER $
    -- 创建存储过程(IN 表示输入参数)
    CREATE PROCEDURE pro_test(IN eid INT)
    BEGIN
      SELECT * FROM EMP WHERE ID = eid;
    END $
    
    -- 调用存储过程
    CALL pro_test(1);
    
    -- 删除存储过程
    -- 注意:最后没有()
    DROP PROCEDURE pro_test;

     3) 带输出参数的存储过程

    -- 声名结束符
    DELIMITER $
    -- 创建存储过程(OUT 表示输出参数)
    CREATE PROCEDURE pro_out(OUT str VARCHAR(100))
    BEGIN
        SET str='Hello Procedure';
    END $-- 调用存储过程
    CALL pro_out(@str);
    --查看结果
    SELECT @str;

    -- 删除存储过程
    -- 注意:最后没有()
    DROP PROCEDURE pro_out;

      4)将查询结果作为输出参数的存储过程

    DELIMITER $
    CREATE PROCEDURE pro_into(OUT ename VARCHAR(20))
    BEGIN
        -- into: 将 name 赋值给 ename
        SELECT NAME INTO ename FROM emp WHERE id = 1;
    END $
    
    CALL pro_into(@ename);
    
    SELECT @ename

      5) 带输入输出参数的存储过程

    -- 声明名结束符
    DELIMITER $
    -- 创建存储过程(OUT 表示输出参数)
    CREATE PROCEDURE pro_InOut(INOUT num INT)
    BEGIN
        SET num = num + 1;
    END $
    
    -- 设置会话变量num=10
    SET @num = 10;
    -- 调用存储过程
    CALL pro_InOut(@num);
    -- 查看输出结果
    SELECT @num;

    -- 删除存储过程
    -- 注意:最后没有()
    DROP PROCEDURE pro_InOut;

      6) 带IF-ELSE逻辑的存储结构

    DELIMITER $
    CREATE PROCEDURE pro_if(IN sorce INT,OUT lev VARCHAR(20))
    BEGIN
        IF sorce <= 60 THEN
            SET lev = 'fail';
        ELSEIF sorce <= 80 THEN
            SET lev = 'pass';
        ELSEIF sorce <= 90 THEN
            SET lev = 'good';
        -- else后面不加then
        ELSE
            SET lev = 'great';
        -- 注意:不能忘了结束if及分号
        END IF;
    END $
    
    CALL pro_if(33,@lev);
    SELECT @lev;

      7) 带WHILE逻辑的存储过程

    DELIMITER $
    CREATE PROCEDURE pro_while(OUT result INT)
    BEGIN
        -- 定义局部变量
        DECLARE i INT DEFAULT 1;
        DECLARE summary INT DEFAULT 0;
    
        WHILE i <= 10 DO
            SET summary = summary + i;
            SET i = i + 1;
        END WHILE;
        SET result = summary;
    END $
    
    CALL pro_while(@result);
    
    SELECT @result;

    3.MySQL的三种变量:

      1)全局变量:MySQL内置的变量

        查询所有的全局变量: show variables;

        查询某个全局变量:select @@varName;

        修改全局变量的值:set varName = value;

      2)会话变量:只在本次连接中有效的变量(连接中断,变量销毁)

        定义会话变量: set @varName = value;

        查询会话变量的值: select @varName;

      3)局部变量:在存储过程中定义的变量

        定义局部变量: declare varName type [default value];

      更多内容,请访问:http://www.cnblogs.com/BlueStarWei/

  • 相关阅读:
    appium-flutter-driver 测试flutter_boost项目_Java语言
    appium-flutter-driver 测试flutter项目
    Android Studio 制作出来的9图无法进行拖拉,导致无法制作出正确的9图
    Flutter 正确删除emoji表情/正确分割字符串
    如何清除git仓库的所有提交记录,成为一个新的干净仓库
    js中this的总结
    python判断时间是否在某个时间段里面的三种方式
    centos7使用rpm包安装mysql5.74
    django学习之 从服务端上传文档与下载文档接口
    python 之阿里云短信服务接入流程短信接口
  • 原文地址:https://www.cnblogs.com/BlueStarWei/p/7224908.html
Copyright © 2011-2022 走看看