Mysql - 会话变量
Mysql - Set 命令
作用:
设置一个变量,将数据赋给变量,以后就可以用变量代替数据。
使用:
mysql> set @a=5;
设置之后,就可以用a代替5了。
自然设置的变量可以通过查询语句设置
比如:
mysql> set @sname =(select sname from student where studentno ='18122210009' ); Query OK, 0 rows affected (0.00 sec) mysql> select studentno ,sname ,birthdate -> from student where sname=@sname; +-------------+-------+------------+ | studentno | sname | birthdate | +-------------+-------+------------+ | 18122210009 | 李健 | 1999-11-05 | +-------------+-------+------------+ 1 row in set (0.01 sec)
Prepared
直接先看例子更容易理解:
mysql> set @a=5; Query OK, 0 rows affected (0.00 sec) mysql> prepare STMT -> from "select courseno ,cname,type ,period from course limit?"; Query OK, 0 rows affected (0.01 sec) Statement prepared mysql> execute STMT using @a; +----------+--------+------+--------+ | courseno | cname | type | period | +----------+--------+------+--------+ | c05109 | C++ | 必修 | 48 | | c05127 | python | 选修 | 64 | | c08126 | JAVA | 必修 | 64 | +----------+--------+------+--------+ 3 rows in set (0.01 sec)
看完例子应该就对这个语句有了大致理解:
事先准备好select语句,对于参数使用 ? 进行占位。使用时直接填充参数即可。
具体步骤:
- 使用PREPARE语句准备执行语句,使用问号(?)作为参数占位符。
- 使用EXECUTE语句来执行PREPARE代码。
作用:
- 提高查询的速度,访问时只需要提交数据,不需要提交sql语句。
- 使查询更安全,防止sql注入。
自定义函数function
使用:
mysql> delimiter && mysql> create function f_course(c_no varchar(6)) -> returns char(6) -> begin return (select cname from course where courseno =c_no); -> end && Query OK, 0 rows affected (0.02 sec) mysql> delimiter ; mysql> select f_course ('c05109'); +---------------------+ | f_course ('c05109') | +---------------------+ | C++ | +---------------------+ 1 row in set (0.01 sec)
本文作者:kingwzun
本文链接:https://www.cnblogs.com/kingwz/p/16257222.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步