事务
start transaction;#开始事务,执行完之后需要用commit来结束事务,把整个执行语句当做一个整体发出,一起修改.
update student set age = age-100 where id =5
COMMIT;
SELECT * from student;
begin;#每一句都自动执行commit 没个语句都自己修改不跟随整体
#当你启动begin的时候别的用户不能更改
update student set age =age +100 where id =2;
COMMIT;
设置变量
savepoint a;
#设置保存点,当执行语句修改的不是自己想要的发生错误删除恢复到现在节点
rollback to a;
#恢复到a节点
select @ab:=100;
SELECT @ab;
#设置变量
**存储**
#存储把这一组命里存储在一起调用执行
create procedure mypro1(in a int )
BEGIN
declare result varchar(100);
if a<0 then
set result = '输入的是小于零';
else
set result = '输入的是大于零';
end if;
select result;
end;
#调用
call mypro1(2)
drop procedure mypro1;
**#触发器**
create trigger tri
before delete 执行的动作增删改
on student for each row
#当发生删除的命令时自动触发 把删除的名字和年龄添加到student2的表中
begin
insert into student2(name,age) values(old.name,old.age);
end;
DELETE FROM student where id in (4)
索引
使用索引:
explain select * from表明 where 条件
-- 1.添加PRIMARY KEY(主键索引)
ALTER TABLE `table_name` ADD PRIMARY KEY (`column`) ;
-- 2.添加UNIQUE(唯一索引)
ALTER TABLE `table_name` ADD UNIQUE (`column`);
-- 3.添加INDEX(普通索引)
ALTER TABLE `table_name` ADD INDEX index_name (`column`);
-- 4.添加FULLTEXT(全文索引)
ALTER TABLE `table_name
` ADD FULLTEXT (`column`);
-- 5.添加多列索引
ALTER TA
BLE `table_name` ADD INDEX index_name (`column1`, `column2`, `column3`);