HELLO WORLD--一起加油(🍺)!|

kingwzun

园龄:3年6个月粉丝:111关注:0

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语句,对于参数使用 进行占位。使用时直接填充参数即可。
具体步骤:

  1. 使用PREPARE语句准备执行语句,使用问号(?)作为参数占位符。
  2. 使用EXECUTE语句来执行PREPARE代码。

作用:

  1. 提高查询的速度,访问时只需要提交数据,不需要提交sql语句。
  2. 使查询更安全,防止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 中国大陆许可协议进行许可。

posted @   kingwzun  阅读(301)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起