MySQL 数据查询语言(DQL)& 事务控制语言(TCL)详解
一、 数据查询语言(DQL)(重中之重)
完整语法格式:
- select 表达式 1|字段,....
- [from 表名 where 条件]
- [group by 列名]
- [having 条件]
- [order by 列名 [asc|desc]]
- [limit 位置,数量]
<1> 普通查询
select 查询表达式; // 最简单的 sql 语句,是一个函数
select database();
select version();
select now();
<2> 条件查询
where 条件表达式, 支持运算符和函数
MySQL 支持的运算符:
- =、 !=、 >、 >=、 <、 <=、 <>
- and、 or、 not
- is null、 is not null
- between...and... (区间查询,多少到多少之间)
- in(set);
- like 通配符和占位符: % _ (模糊查询)
- %: 表示 0 个或者多个字符
- _: 表示占位一个
<3> 分组查询
语法格式:
- [group by 列名] [haveing 条件]
- 一般情况分组查询结合聚合函数一起使用
- max()
- min()
- sum()
- avg()
- count()
<4> 排序查询
语法格式:
- order by 列名 asc|desc 默认升序(asc)
<5> 限制结果集数量的查询(分页)
编号 商品名称 商品价格 操作
1 玩具娃娃 100.0 删除 修改
2 玩具汽车 200.0 删除 修改
3 玩具飞机 300.0 删除 修改
................................
首页 上一页 1 2 3 4 5 下一页 尾页
语法格式
- limit n 条数;-------从第一条开始取 n 条数据(了解)
- limit start 开始下标索引,count 条数; ---- 从起始位置 start 取 count 条数据(起始位置是从 0 开始的) (推荐使用)
分页公式:
- 开始下标索引(起始位置) = (当前页-1)*每页显示条数;
<6> 扩展
别名
二、 事务控制语言(TCL)
>MySQL 事务默认自动开启的
在 MySQL 数据库中只有使用了 Innodb 数据库引擎的数据表或库才会支持事务
通过事务来管理 insert、update、delete 语句
事务必须满足 4 个条件(ACID):
- 原子性(不可分割性): 要么全部完成,要么全部不完成,不会结束在中间的某个环节。在执行的过程中一旦出现错误/异常,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
- 一致性: 事务处理前后数据保持一致
- 隔离性: 事务处理必须是独立的彼此隔离
- 持久性: 事务对数据的修改永久保存
<1> 为什么使用事务
银行转账
事务广泛使用:订单系统,银行系统等....
<2> MySQL 事务控制
commit(提交)
rollback(回滚)
savepoint(事务节点)
<3> 实战操作
手动关闭事务提交语法:
- set autocommit = false|true; // 设置事务的提交方式
- rollback; // 事务回滚
- commit; // 事务提交
- savepoint 节点名称; // 设置回滚的节点
- rollback to 节点名称; // 回滚到具体的某个节点
版权声明: 本文为 InfoQ 作者【若尘】的原创文章。
原文链接:【http://xie.infoq.cn/article/5b70990eb0f09b22e921d8778】。文章转载请联系作者。
评论