- 6
- 0
- 约3.07千字
- 约 21页
- 2021-11-20 发布于上海
- 举报
SQL与可编程对象
可编程对象
SQL运算和常用函数
SQL流程控制语句
视图
存储过程
触发器
SQL运算和常用函数
SQL虽然和高级语言不同,但它也有运算、控制等功能,以支持复杂的数据检索和更新操作。
变量
在程序运行过程中其值可以被改变的量。
变量:用户变量
由用户定义的变量。
变量名:由“@”前缀符号加一个标识符组成,不需要事先定义可直接使用
变量类型:字符串型,赋值后变量类型与值的类型一致
变量值:默认值为NULL
变量赋值:SET或SELECT语句
例:将变量@City赋值为字符串上海‘
SET @City=上海;
或:SELECT @City=上海;
变量:局部变量
一般用在SQL语句块中,在该语句块执行完毕后,局部变量就会消失。
变量名:没有“@”前缀符号,并且使用前需要先通过DECLARE声明
DECLARE 局部变量名 数据类型 [DEFAULT 默认值];
例如:DECLARE Score INT DEFAULT 60;
变量:系统变量
MySQL有很多设有默认值的系统变量。
变量名:有“@@”前缀符号。可用SHOW查看当前值。状态变量直接用SELECT查询。
SELECT @@version; -- MySQL版本,如5.7.17-log
SHOW status like Max_used_connections; -- 最大连接数,如12
运算符和表达式
SQL的运算符很丰富,按其功能可分为:算术运算符、比较运算符、逻辑运算符和位操作运算符。
表达式由运算对象、运算符及圆括号组成。
SELECT 12+45; -- 结果为57
常用函数
MySQL提供了很多内置函数,可在SQL语句中使用。
SELECT SQRT(4);
(1)数学函数
常用函数
(2)日期时间函数
例如:查询2月出生的学生
SELECT * FROM student WHERE Month(Birthday)=2;
常用函数
(3)字符串函数
例如:查询个人简介长度大于10的学生
SELECT * FROM student WHERE CHAR_LENGTH(Introduction)=10;
常用函数
(4)聚合函数
(5)系统信息函数
SQL流程控制语句
SQL提供了一些流程控制语句:
(1)BEGIN…END语句
多条SQL语句用BEGIN…END组合起来形成一个SQL语句块
(2)IF语句
IF条件表达式1 THEN SQL语句块1
[ELSEIF 条件表达式2 THEN SQL语句块2]…
[ELSE SQL语句块n]
END IF
如果表达式的值为true,则执行IF后面的语句块;否则,如果有ELSEIF,则计算ELSEIF后面表达式,依此类推;最后如果有ELSE语句,执行ELSE后面的语句
类似于其他编程语言中的大括号{}
TRUE
FALSE
TRUE
FALSE
ELSEIF分支
ELSE分支
IF语句举例
用在可编程对象中。
CREATE PROCEDURE q()
BEGIN
DECLARE e INT DEFAULT 10;
IF e0 THEN SELECT 正 AS 结果’;
ELSE SELECT 其他 AS 结果’;
END IF;
END;
注意分号
更多解释请参考:/doc/refman/5.7/en/if.html
(3)CASE语句:多分支的选择语句
① 简单CASE函数
CASE 输入表达式
WHEN 情况表达式1 THEN 结果表达式1
…
[ELSE 结果表达式n]
END
当输入表达式的值与某个WHEN子句的情况表达式的值相等时,返回THEN后结果表达式的值;如果无相等的值,则返回 ELSE后结果表达式的值,若无ELSE子句,则返回NULL
情况表达式1
情况表达式2
其他
…
(3)CASE语句:多分支的选择语句
② CASE搜索函数
CASE
WHEN 条件表达式1 THEN 结果表达式1
…
[ELSE结果表达式n]
END
按顺序计算WHEN子句的条件表达式,当表达式的值为true时,返回THEN后结果表达式的值,然后跳出CASE语句
TRUE
FALSE
TRUE
FALSE
…
CASE… WHEN…语句举例
用在可编程对象中。
CREATE PROCEDURE p()
BEGIN
DECLARE v INT DEFAULT 1;
CASE v
WHEN 2 THEN SELECT v;
WHEN 3 THEN SELECT 3;
END CASE;
END;
注意
原创力文档

文档评论(0)