• MySQL编程基础


    本文是关于MySQL编程中的一些基础知识,包括变量和运算符、常用语句、函数。

    一、变量与运算符
    1.用户会话变量声明:SET @变量名 = 表达式;//即:用户会话变量无需提前定义,直接用赋值语句赋值,就算是定义了(也可用SELECT赋值语句赋值)【无需指定类型,生命周期:关闭服务器链接前】
    2.局部变量声明:DECLARE 变量名 数据类型;【必须指定类型,生命周期:定义局部变量的小范围(类似于Java的{}内)】
    3.运算符
    (1)算术运算符:与Java相同
    (2)比较运算符:大部分与Java相同。不同的地方:=(等于),<>(不等于【!=也是不等于】),<=>(相等或都为NULL),IS NULL(为空),BETWEEN … AND …(在区间内),IN(…)(在集合内),LIKE(模式匹配)
    (3)逻辑运算符:与(AND,&&),或(OR,||),非(NOT,!),异或(XOR)
    (4)位运算符:与Java相同

    二、语句
    1.赋值语句:
    (1)SET:

    SET 变量 = 表达式;

    (2)SELECT:

    SELECT 表达式 INTO 变量; //不产生结果集
    SELECT 变量 := 表达式;   //产生结果集

    (3)可以同时给多个变量赋值,用逗号隔开。如:SET 变量1 = 表达式1, 变量2 = 表达式2, ……;

    2.重置命令结束标记:DELIMITER。由于MySQL客户机的默认结束标记和语句的结束标记相同,都是分号,所以在写语句块的时候,为避免语句块被;拆开,应该在语句块前重设客户机结束标记,然后在语句块结束后改回原样:
    DELIMITER $$:将客户机结束标记设为$$

    3.BEGIN-END语句块:将功能封装到存储过程、函数、触发器、事件等存储程序内部。

    DELIMITER $$    //将客户机结束标记改为$$
    BEGIN
    要执行的功能代码;
    END;
    $$
    DELIMITER ; //将客户机结束标记改回;

    4.条件控制语句
    (1)IF语句

    IF 条件 THEN 语句块;
    ELSE IF 条件 THEN 语句块;
    ……
    ELSE 语句块;
    END IF;

    (2)CASE语句

    CASE 表达式
    WHEN 值1 THEN 语句块;
    WHEN 值2 THEN 语句块;
    ……
    ELSE 语句块;
    END CASE;

    5.循环语句
    (1)WHILE-DO语句

    WHILE 条件表达式 DO  //继续循环的条件
    循环体;
    END WHILE;

    (2)REPETE-UNTIL语句

    REPEAT
    循环体;
    UNTIL 条件表达式 //跳出循环的条件
    END REPEAT;

    (3)LOOP语句

    循环标签:LOOP
    循环体;
    IF 条件表达式 THEN LEAVE 循环标签;   //跳出循环的条件
    END IF;
    END LOOP;

    (4)LEAVE和ITERATE
    类似于Java中的break和continue:LEAVE 循环标签;ITERATE 循环标签;
    循环标签:给循环起的名字。在循环开始前加上,格式是:循环标签:
    在循环结束语句后可以标记循环标签,比如:END WHILE 循环标签;

    三、函数
    1.自定义函数

    DELIMITER $$
    CREATE FUNCTION 函数名(参数1,参数2,…) RETURNS 返回值类型
    [函数选项]
    BEGIN
    函数体;
    RETURN 返回值;
    END;
    $$
    DELIMITER ;

    函数选项:需要时再详细了解。用的比较多的是NO SQL:函数体中不包含SQL语句

    2.系统函数
    (1)数学函数
    (2)字符串函数
    (3)日期和时间函数
    ①获取当前日期:CURDATE()CURRENT_DATE()(YYYY-MM-DD)【可设置时区】
    ②获取当前时间:CURTIME()CURRENT_TIME()(hh:mm:ss)【可设置时区】
    ③获取当前日期时间:NOW()CURRENT_TIMESTAMP()LOCALTIME()SYSDATE()(YYYY-MM-DD hh:mm:ss)【可设置时区】
    ④时间戳转为日期时间:FROM_TIMESTAMP(TIMESTAMP)(将指定时间戳的时间转为YYYY-MM-DD hh:mm:ss)【可设置时区】
    ⑤获取当前UTC日期/时间:UTC_DATE()UTC_TIME()(分别是YYYY-MM-DD和hh:mm:ss)【不可设置时区】
    ⑥获取当前时间戳:UNIX_TIMESTAMP()UNIX_TIMESTAMP(DATETIME)(从1970-01-01 00:00:00至当前时间/指定时间的秒数)【不可设置时区】
    ⑦获取时间的字段值(获取年月日等)

  • 相关阅读:
    没有被实例化的类 中的 非static成员函数竟然也可以被调用。。。前提是该成员函数没有用到成员变量
    c++注意
    关于类大小的小试验
    C语言|博客作业02
    在C#中进行时间和时间戳的转换
    正则表达式中匹配中括号 [ ]
    在C#中将对象序列化成Json格式
    在MSSQL中的简单数据类型递归
    HTML中padding和margin的区别和用法
    C#中的对称加密
  • 原文地址:https://www.cnblogs.com/cage666/p/7295390.html
Copyright © 2020-2023  润新知