事务:事务由单独单元的一个或多个SQL语句组成,在这个单元中﹐每个MySQL语句是相互侬赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条SQL语句一且执行失败或产生错误,整个单元将会回滚。所有受到影响的数据将返回到事物开始以前的状态﹔如果单元中的所有sQL语句均执行成功﹐则事物被顺利执行。
存储引擎:在mysql中的数据用各种不同的技术存储在文件(或内存)中
show engines//查看存储引擎
结果如下
事务的属性:
事务的创建
隐式事务:事务没有明显的开启和结束的标记,如insert,update,delete语句
显示事务:必须先设置自动提交功能为off
set autocommit=0//将自动提交设置为off
start transaction//可不写
begin//可直接用begin
语句
...
commit//提交事务
rollback//回滚事务
隔离级别
select @@tx_isolation//查询隔离级别
set session transaction isolation level 隔离级别//设置隔离级别
savepoint:
begin
事务
savepoint a;
事务
rollback a;
视图:
create view 视图名
as
select
......
;
select * from 视图名
视图的修改:
语法1:
create or replace view 视图名
as
查询语句
...
语法2:
alter view 视图名
as
查询语句
删除视图:
drop view 视图名,视图名,视图名....
查看视图:
desc 视图名
show create view 视图名//创建的过程
视图的更新:
1.插入:
insert into 视图名 values ()
2.修改:
update 视图名 set
3.修改:
delete from 视图名 ....
变量:
分类:
系统变量:
全局变量
会话变量
自定义变量:
用户变量
局部变量
一.系统变量
变量由系统提供,不是用户定义,属于服务器层面
1.查看所有的系统变量
show global variables//全局
show session variables//会话
show variables//会话
2.查看满足某种条件的系统变量
show global|session variables like....
3.查看指定系统变量
select @@变量名//会话
select @@global.变量名//全局
4.为某个系统变量赋值
set 变量名 =值
set global.变量名=值
set @@global|session.变量名=值
二.自定义变量
用户变量(声明时必须赋值)
作用域:当前会话
1.声明并初始化
set @变量名=值
set @变量名:=值
select @变量名:=值
2.更新
重新声明
select 元素 into 变量名 from 表 //将查询结果赋值给变量
局部变量(仅仅定义在begin end中)
1.声明
declare 变量名 类型
declare 变量名 类型 default 值
2.赋值
set 变量名=值
set 变量名:=值
select @变量名:=值
select 元素 into 变量名 from 表
3.查看
select 变量名
存储过程和函数(类似java的方法,c的函数)
1.存储过程
一.创建
create procedure 存储过程名(参赛列表)
begin
.....
end
注意:
1.参数列表包含三部分(不谢参数模式默认in)
参数模式 参数名 参数类型
2.参数模式:
IN 该参数需要调用方传入值
OUT 该参数可以作为返回值
INOUT 具备以上2种
3.如果存储过程只有一句话,begin,end可以省略
4.存储过程中每条语句都必须加;
5.储存过程的结尾可以使用delimiter重新设置
语法:
delimiter 结束标记
二.调用
call 存储过程名(实参列表);
三.删除
drop procedure 存储过程名;
四.查看存储过程的信息
show create procedure 存储过程名
2.函数:
区别:
存储过程:返回值数量不限 适合做批量的插入,更新
函数:有且只有一个返回 适合做数据的处理
一.创建
create function 函数名(参数列表) returns 返回类型
begin
...
end
注意:
1.参数列表包含:参数名 参数类型
2.必须有return语句
二.调用
select 函数名(参数列表)
三.查看函数
show create function 函数名;
四.删除函数
drop function 函数名;
流畅控制结构:
1.if
if(表达式1,表达式2,表达式3)
表达式1成立,返回表达式2的值,否则返回表达式3的值
2.case
1.充当java中的switch语句
case 变量|表达式|字段
when ..then...
when ..then...
else ...
end
2.充当java中的if else语句
case
when 条件 then...
when 条件 then...
else...
end
3.if结构
if 条件1 then 语句1
elseif 条件2 then 语句2
else
注意:只能放在begin end中
4.循环
while:
while 循环条件 do
循环体
end while
loop:
loop
循环体
end loop
repeat:
repeat
循环体
until 结束循环的条件
end repeat
5.循环控制:
iterate :类型于continue
leave: 类似于break;
--某科学的超电磁炮