1.开始事务
BEGIN;
2.提交事务
COMMIT
3.撤销事务
ROLLBACK
事务是作为单个逻辑工作单元执行的一系列操作,一个逻辑工作单位必须有四个属性,即原子性,一致性,隔离性,持久性。这些性通常简称ACID
设置自动提交关闭或开启
SET autocommit=0|1; 值为0:关闭自动提交 值为1:开启自动提交
使用sql语句创建视图
create VIEW 视图名 AS <SELECT 查询语句>
删除视图
DROP VIEW [IF EXISTS]视图名;
索引分类:普通索引,唯一索引,主键索引,复合索引,全文索引,空间索引
内查询可以写外查询的字段
SELECT * from student where exists(
select * from result where studentNo=student.studentNo
在Sql语句当中有多条修改语句,(这个修改语句指的是增加,删除,修改,都叫修改),这几条一句要么都成功要么都执行,要么都不执行 这个过程叫做事务
);
事务当中的多条sql语句commit之后才会提交修改数据库 除了提交本次的 以前没有提交的也会被再次提交
mysql里面有一个关键字qutocommit的默认值是1;表示自动提交 如果把默认值改变成0 表示关闭自动提交 开启手动提交
查询语句可以存在在事务当中 但是毫无意义
视图名不应该与已有的表名相同 视图中的数据来源于真实的表 在视图中可以直接增删改
CREATE VIEW 《view_student》视图名
AS
<SELECT studentName,gradeld,studentResult FROM student s
INNER JOIN result r ON s.studentNO=r.studentNo>//sql语句
当视图来源多个表 不可以增加或删除 但可以修改
一般情况建立视图是查询
事物:
原子性 一致性 隔离性 持久性
多个sql一起执行要么都失败要么都成功就叫事物
索引
建立索引
CREATE INDEX 索引名
ON 表名(字段名)
分离:
添加事物:
BEGIN;
INSERT INTO `result`(`studentNo`,`subjectNo`,`examDate`,`studentResult`) VALUES(10101,1,NOW(),70);
INSERT INTO `result`(`studentNo`,`subjectNo`,`examDate`,`studentResult`) VALUES(10111,1,NOW(),80);
INSERT INTO `result`(`studentNo`,`subjectNo`,`examDate`,`studentResult`) VALUES(10121,1,NOW(),90);
COMMIT;
事物回滚:
BEGIN;
INSERT INTO `result`(`studentNo`,`subjectNo`,`examDate`,`studentResult`) VALUES(20000,1,NOW(),110);
INSERT INTO `result`(`studentNo`,`subjectNo`,`examDate`,`studentResult`) VALUES(20000,1,NOW(),111);
ROLLBACK;