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 表达式
WHEN1 THEN 语句块;
WHEN2 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至当前时间/指定时间的秒数)【不可设置时区】
⑦获取时间的字段值(获取年月日等)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值