1:视图
视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。
2:mysql事务
MYSQL 事务处理主要有两种方法:
用 BEGIN, ROLLBACK, COMMIT来实现 BEGIN 开始一个事务 ROLLBACK 事务回滚 COMMIT 事务确认
直接用 SET 来改变 MySQL 的自动提交模式: SET AUTOCOMMIT=0 禁止自动提交 SET AUTOCOMMIT=1 开启自动提交
3:提交事务
CREATE TABLE runoob_transaction_test( id int(5)) engine=innodb; # 创建数据表
select * from runoob_transaction_test;
begin; # 开始事务
insert into runoob_transaction_test value(5);
insert into runoob_transaction_test value(6);
commit; # 提交事务
select * from runoob_transaction_test;
4:回滚事务
begin; # 开始事务
insert into runoob_transaction_test values(7);
rollback; # 回滚
select * from runoob_transaction_test; # 因为回滚所以数据没有插入
5:储存过程
创建一个简单的储存过程
create procedure testa()
begin
select * from users;
select * from orders;
end;
call testa();
6:存储过程的变量
create procedure test2()
begin
-- 使用 declare语句声明一个变量
declare username varchar(32) default '';
-- 使用set语句给变量赋值
set username='xiaoxiao';
-- 将users表中id=1的名称赋值给
username select name into username from users where id=1;
-- 返回变量
select username;
end;
7:存储过程参数
create procedure test4(userId int)
begin
declare username varchar(32) default '';
declare ordercount int default 0;
select name into username from users where id=userId;
select username;
end;
(略 存储过程的语句)
8:触发器
1.监视地点(table)
2.监视事件(insert/update/delete)
3.触发时间(after/before)
4.触发事件(insert/update/delete)
触发器的sql语法:
create trigger triggerName
after/before insert/update/delete on 表名
for each row #这句话在mysql是固定的
begin
sql语句;
end;