第二十课了,然而我们的数据库依然没有讲完
多的一,还很绕
1.用SQL语句检测temp表是否已经创建
语法:
DROP TABLE IF EXISTS temp;
CREATE TABLE temp(
...#省略建表语句
)
2.EXISTS子查询语法:
SELECT ......FROM 表名 WHERE EXISTS(子查询);
子查询有返回结果:EXISTS子查询结果为TRUE
子查询无返回结果:EXISTS子查询结果FALSE,外层查询不执行
1.掌握GROUP BY 字句实现分组查询
语法:
SELECT ...... FROM 表名
WHERE......
GROUP BY......
WHERE字句:用来筛选FROM字句中指定的操作所产生的行
GROUP BY子句:用来分组 WHERE字句的输出
HAVING子句:用来分组的结果中筛选行
多表连接查询
内连接(INNER JOIN)
外连接
左外连接(LEFT JOIN)
右外连接(RIGHT JOIN)
1.内连接使用比较运算符根据每个表的通用列中的值匹配两个表中的行
语法:
SELECT....
FROM 表1
INNER JOIN 表2
ON ...
直联语法:
SELECT....
FROM 表1,表2
WHERE ....
UPDATE:更新
SET:集合
DECIMAL:小数
事务
事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作
多个操作作为一个整体向系统提交,要么都执行,要不都不执行.
事务是一个不可分割的逻辑单元.
注意:比如转账过程就是一个整体,要用俩条UPDATE语句来完成,然而这俩条语句是一个整体,如果其中的一条出现错误,则整个转账业务也相应的取消,俩个账户的金额也回到原来状态.对于代码我就不在这些了.大家可以试一试.
事务的四个属性,简称为ACID属性
原子性(atomicity):事务是一个完整的操作,事务的各步操作是不可分的,要么执行,要么步执行.
一致性(consistency);当事务完成时,数据必须处于一致状态,一条一条的执行UPDATE
隔离性(ISOIATION):同时发生的事务之间相互独立,隔离,不相互依赖.
持久性(DURABILITY): 事务完成后,他对数据库的修改被永远保存.
注意:在MYSQL中支持事务的存储引擎是INNOB和BDB
事务中的语法
BEGIN : 开始事务==START TRANSACTION---->标识了开始的位置
COMMIT : 提交事务-->像你的数据库提交你要保存的数据
ROLLBACK : 对你原来的不进行修改,撤销
注意:开始事务指定事务从此开始,后续的SQL语句都是一个整体
自动关闭事务
默认情况下,每条单独的SQL语句视为一个事务
关闭默认提交状态后,可手动开启,关闭事务
语法
SET autocommit=0|1
0: 关闭自动提交
1:打开自动提交
注意:关闭自动提交后,从下一条语SQL语句开始,则开启新的事务,但是需要使用COMMIT或者ROLLBCK