MySQL基础知识
-----------
-----------------------------------
MySQL中的变量:
系统变量:变量由系统提供的,不用自定义
1.全局变量 :服务器层面上的,针对整个服务器的,必须拥有super权限才能为系统变量赋值,作用域为整个服务器,针对于所有的连接和会话有效,
2.会话变量 :服务器为每一个连接的客户端提供了系统变量,作用域为当前的连接和会话
查看系统变量:
show global|session variables like ''; 如果没有声明global还是session,则默认是session
查看指定的系统变量的值:
select @@global|session.变量名; 如果没有显示声明global还是session,则默认是session
为系统变量赋值:
set global|session 变量名=值;
set @@global.变量名=值; 为全局变量赋值
set @@变量名=值; 为局部变量赋值
=================>>
自定义变量:
1.用户变量 :作用域针对于当前的连接和会话有效,可以放在任何位置,
声明的时候赋值:
set @变量名=值;
set @变量名:=值;
select @变量名:=值;
更新变量的赋值
set @变量名=值;
set @变量名:=值;
select @变量名:=值;
select xx into @变量名 from 表;
变量的使用:
select @变量名;
2.局部变量:作用域:仅仅在定义它的代码块中有效或是begin end 中有效,且只能放在第一句
使用:
1.声明:declare 变量名 类型 默认值;
2.赋值或更新值
set 变量名=值;
set 变量名:=值;
select @变量名:=值;
select xxx into 变量名 from 表;
3.使用
select 变量名;
变量的使用:赋值和查看
================================
MySQL存储过程:
类似与java中的方法,将一组完成特定功能的逻辑语句包装起来,对外暴露名字
1.提高了重用性
2.sql语句简单
3.减少了与服务器的连接次数,提高了效率
存储过程的创建
create procedure 存储过程名(参数模式 参数名 参数类型)
begin
存储过程体
end
解释:
参数模式:in输入, out输出, inout 既作输入又作输出,in可以省略不写
存储过程体:存储过程体中的每一条sql语句都需要用分号结尾
存储过程的调用:
call 存储过程名(实参列表)
查看存储过程:
show create procedure 存储过程名;
删除存储过程:
drop procedure 存储过程名;
===================
MySQL函数
函数的创建:
create function 函数名(参数名 参数类型) returns 返回类型
begin
函数体
end
其中函数体中必须要有return语句
函数的调用:
select 函数名(实参列表);
函数的查看:
show create function 函数名;
函数的删除:
drop function 函数名;
-------------
流程控制结构:
顺序结果:程序从上往下依次执行
分支结构:程序按条件进行执行,从两条或多条路径中选择一条执行
循环结果:程序在满足一定条件下,重复执行一组语句
==============
if 函数:用来实现简单的双分支
if(条件,值1,值2)
----------
case结构:用来实现多分支
case 表达式或字段
when 值1 then 语句1;
when 值2 then 语句2;
else
end;
case
when 条件1 then 语句1;
when 条件2 then 语句2;
else
end;
-----------------
if 结构:实现多分支
if 条件1 then 语句1;
elseif 条件2 then 语句2;
else 语句;
end if;
--------------------------
循环结构:只能放在begin end中
1.while
名称 while 循环条件 do
循环体
and while ;
2.loop
loop
循环体
end loop ;
3.repeat
repeat
循环体
until 结束条件
end repeat ;
----------------------
-------------------------------
----------------------------------------