1. count(*)和count(列名)的区别

count(*):查询所有数据的行数
count(列名):查询该列存在的行数(若该列为null,则不记录该条记录)

2. union和union all的区别

union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

union all :对两个结果集进行并集操作,包括重复行,不进行排序;

3. 批量插入多句

insert into 表名(列名) select 列名 from 表名

4. 创建视图

create view 视图名 as select语句

注意:视图仅仅是用来查看存储在别处的数据的一种设施。不能用来新增、插入和删除。

5.触发器

触发器是MySQL响应delete、insert、update语句而自动执行的一条MySQL语句(或是位于begin和end语句之间的一组语句)。

5.1 创建触发器需要的信息

唯一的触发器名;

触发器关联的表;

触发器应该响应的活动(delete、insert或update);

触发器何时执行(处理之前 或 之后)

5.2创建触发器

触发器一般不用命令行进行创建(其实一般都不使用触发器这个东西,毕竟我工作了许久了,也没用过),以下展示使用navicat创建步骤

mysql补全 mysql补集_mysql补全


mysql补全 mysql补集_触发器_02


mysql补全 mysql补集_触发器_03

6.事务处理

6.1 概念

事务处理(transaction processing)可以用来维护数据库的完整性。它保证成批的MySQL操作要么完全执行,要么完全不执行。

不过并非所有的引擎都支持事务处理。其中MyISAM和InnoDB是两种最常使用的引擎。前者不支持明确的事务管理,而后者支持。

6.2术语

事务(transaction):指一组SQL语句。

回退(rollback):指撤销指定的SQL语句的过程。

提交(commit):指将未存储的SQL语句结果写入数据库表;

保留点(savepoint):指事务处理中设置的临时占位符(placeholder),你可以对他发布回退(与回退整个事务处理不同)。

6.3 事务SQL

-- 查询学校信息
select * from ed_school;
-- 开启一个事务
start transaction;
-- 删除所有的学校信息
delete from ed_school;
-- 查看学校信息
select * from ed_school;
-- rollback则为撤回sql语句,若为commit,则为提交sql数据
rollback;
-- 查看最终结果
select * from ed_school;