-
赋值
set @用户变量名=值;或者
set @用户变量:=值;
select @用户变量名:=值;
通过select into
select 字段 into 变量名 from 表;
使用
select @用户变量名;
局部变量
作用域:仅仅在定义它的begin end中有效
声明:
declare 变量名 类型
declare 变量名 类型 default 值;
赋值
set 局部变量名=值;或者
set 局部变量名:=值;
select @局部变量名:=值;
通过select 字段 into 局部变量名 from 表
使用:
select 局部变量名;
(用户定义的变量是特定于会话的。一个客户端定义的用户变量不能被其他客户端看到或使用。(例外:有权访问Performance Schema user_variables_by_thread表的用户可以看到所有会话的所有用户变量。)给定客户端会话的所有变量在该客户端退出时自动释放。
用户变量名不区分大小写。名称的最大长度为64个字符。)
-
存储过程和函数
存储过程和函数,类似于java中的方法
好处
1.题号代码的复用性
2.简化操作
存储过程
含义:一组预先编译号的SQL语句的集合,理解成批处理语句
1.提高代码的复用性
2.简化操作
3.减少编译次数并且减少了和数据库服务器的连接次数,提高了效率
创建语法
create procedure 存储过程名(参数列表)
begin
存储过程体(一组合法的SQL语句)
end
参数列表包含三个部分
参数模式,参数名,参数类型
举例子
in stunmae varchar(20)
参数模式
in 该参数可以作为输入
out 该参数可以作为输出
inout 既可以作为输入也可以作为输出
如果存储过程体仅仅只有一句话begin end可以省略
空参列表
delimiter $
create procedure myp1()
begin
insert into admin(username,password)
values(x,x)
end$
调用
call myp1()$
in参数
例子
create procedure myp3(in username varchar(10),in password varchar(10))
begin
select count(*)
from admin
where admin.username=username
and admin.password=password;
end$
out输出型
create procedure myp5(in beautyname varchar(20),out boyname varchar(20))
begin
select bo.boyname into boyname
from boys bo
inner join beauty b on bo.id=b.boyfriend_id
where b.name=beautyname
end$
调用
call myp5(‘小小’,@bname)$
select @bname$
MySQL学习笔记续
最新推荐文章于 2023-11-14 23:05:19 发布