概述
一、Mysql编程基础
1.标识符
以“@”开头的标识符表示一个局部变量或是一个函数的参数
以“@@”开头的标识符表示一个全局变量。
2.注释
单行注释:#开始事务
多行注释:/*不能从数据库中删除拥有安全对象的用户 */
3.常量与变量
常量也称为文字值或标量值,是指程序运行中值始终不改的量。
变量就是在程序执行过程中,其值是可以改变的量。
在MySQL系统中,存在两种类型的变量:一种是系统定义和维护的全局变量;另一种是局部变量。
1)系统全局变量
系统全局变量是MySQL系统提供并赋值的变量。全局变量以两个@符号开头。
例:使用系统全局变量@@VERSION查看当前使用的MySQL的版本信息
select @@version;
2)局部变量
局部变量是作用域局限在一定范围内的对象。局部变量被引用时要在其名称前加上标志@。
使用DECLARE语句声明局部变量,局部变量的作用范围在它被声明的BEGIN…END复合语句内。
注意:只能用在函数、存储过程或触发器中,不能单独使用。
例:通过局部变量查看student表中“系别”为“CS”的学生信息。
set @xb=‘cs’;
select * from student
where sdept=@xb;
二、流程控制语句
1.顺序控制语句
BEGIN
SQL语句块;
END
注:通常BEGIN…END是用在函数、存储过程和触发器中,不能单独使用。
2.分支控制语句
(1)IF…ELSE语句
用于指定 SQL 语句的执行条件。其语法格式如下:
IF <逻辑表达式> THEN
<SQL语句|SQL语句块>; (独立语句 应加分号)
[ELSE
< SQL语句|SQL语句块>;] (独立语句 应加分号)
END IF; (if…else语句结束 加分号)
(2)CASE语句
使用CASE语句可以进行多个分支的选择,有如下两种格式。
CASE表达式是将某个表达式与一组简单表达式进行比较以确定结果。其语法格式如下:
CASE <输入表达式>
WHEN <表达式> THEN <语句>; (独立语句 加分号)
[WHEN <表达式> THEN <语句>[…]]; (独立语句 加分号)
[ELSE <语句>]; (独立语句 加分号)
END CASE; (case语句结束 加分号)
3.循环控制语句
WHILE语句是设置重复执行SQL语句或语句块的条件。其语法格式如下:
WHILE <逻辑表达式> DO
<SQL语句|SQL语句块>; (独立语句 加分号)
END WHILE; (循环语句结束 加分号)
三、触发器
1.定义
触发器是和表关联的特殊的存储过程,可以在插入,删除或修改表中的数据时触发执行,具有更精细和更复杂的数据控制能力。
2.优点
安全性、实现复杂的数据完整性规则、实现复杂的非标准的完整性规则、实现自动计算数据值、记录用户对数据库的操作
3.限制
(1)触发程序不能调用直接返回数据的存储过程,也不能使用CALL语句。
(2)不能在触发器中使用以显示或隐式方式开始或结束事务的语句,如START TRANSACTION,COMMIT或ROLLBACK。
既 MySQL不能在触发器中通过回滚事务取消操作,但如果触发器的SQL语句执行过程中出现错误,会自动撤销操作,曲线实现事务回滚。
(3) 建议使用存储过程,而不使用触发器
4.分类
按照触发事件的不同,触发器分成3种:
INSERT触发器:在插入某一行时激活触发器,可通过INSERT、LOAD DATA、REPLACE语句触发。
UPDATE触发器:在更改某一行时激活触发器,可通过UPDATE语句触发。
DELETE型触发器:在删除某一行时激活触发器,可通过 DELETE、REPLACE 语句触发。
最后
以上就是贤惠故事为你收集整理的Mysql编程基础与触发器的全部内容,希望文章能够帮你解决Mysql编程基础与触发器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复