MySQL-第七讲:数据库编程
一.预习笔记
1.常量
字符串常量:特色字符时需要转义
数值常量:整数常量和小数常量
时间日期常量:由单引号引起来的日期时间字符串,年月日中间的间隔符 - \ @ %等特殊符号,经常使用 -
布尔值:true和false,false的数字值为0,true的数字值为1
2.变量
用户变量:用户可以在表达式中定义自己的变量临时存储需要存储的数据
用户变量:可以同时定义多个用户变量,使用逗号隔开,定义好了后数据类型就确定了,但是一旦重新赋值,数据类型也会随之改变
系统变量:mysql的一些特定设置,每一个系统变量都保存了不一样的mysql信息
show global variables:查看全局的系统变量
show variables:查看当前的系统变量
select @@系统变量名:查看系统变量名对应的值
3.运算符与表达式
算术运算符:+ - * / %
interval的使用
比较运算符:> < = >= <= <> != <=>,返回的结果是0(false),1(true),null(不确定)
逻辑运算符:not ! and && or || xor(一真一假且假不为null才返回true,显示1)
运算符优先级:
4.系统内置函数
数学函数:greatest() least() floor() celling()
字符串函数:ascII() char() left() replace()
时间日期函数:now() curtime() curdate()
加密函数:aes_encrypt() password() encode()
控制流函数:if(表达式,真时值1,假时值2)—三元运算符
类型转换函数:cast(表达式,as type)
系统信息函数:
5.存储过程(重难点)
创建存储过程:create procedue 存储过程名(参数)存储过程体
参数:输入参数in、输出参数out、输入输出参数inout
存储过程体:调用存储过程会去执行的代码,一般是以begin开始 end结束。
delimiter ##—设置##为结束标记,可以让存储过程体使用;表示一句代码的结束
create PROCEDURE addNum----创建一个存储过程 名交addNum
in num1 int,in num2 int—输入参数num1和num2都是int类型的
out num3 int----输出参数num3是int类型的
BEGIN set num3=num1+num2; END ##----begin … end表示存储过程体的开始与结束
set num3=num1+num2;—将num1和num2的和赋值给num3
delimiter ;----设置;为结束符号
set @result=0;—定义用户变量result,赋值为0
call addNum(1,1,@result)—调用存储过程addNum,并将结果保存在用户变量result中
select @result----查询显示result的值
局部变量:存储过程体中可以声明局部变量,但是只能在begin…end语句块中声明,且只能在begin…end中使用。声明的语法结构如下:declare 变量名 数据类型 ;使用set可以进行赋值,也可以使用select …into…进行赋值
如果想要运行多处连续的代码块,注释每一句代码块后跟上结束标记
查看存储过程:show procedure status
查看存储过程的创建代码:show create procedure 存储过程名
调用存储过程:call 存储过程名(参数)
删除存储过程:drop procedure if exists 存储过程名
6.流程控制语句
if语句
case语句:
while循环语句:
repeat语句:
loop语句:
存储过程嵌套:在新的存储过程中调用已经存在的存储过程
7.存储函数
创建存储函数:create function 存储函数名(参数) return 类型 函数体
存储函数的调用:select 存储函数名()
删除存储函数:drop function if exists 存储函数名
8.触发器
触发器是用于保护数据的,触发器不需要调用,当有操作影响到触发器保护的数据时,触发器会自动执行。
创建触发器:create trigger 触发器名 触发时间 触发事件 on 表名 for each row 触发器动作
触发时间—after 、before
触发事件—insert 、update、delete
for each row—对于受触发事件影响的每一行,都要激活触发器的动作。
触发器动作----包含激发触发器时要执行的动作
删除触发器:drop trigger 触发器名
二.课堂笔记
三.课后回顾
–仰望星空,脚踏实地;以梦为马,不负韶华
|