-
事务四特性
- 原子性
- 一致性
- 隔离性
- 持久性
-
排序
- 单排
select * from table_n order by id_n asc;
- 多列
select * from table_n order by id_1,id_2 desc --id_1相等看 id_2
- 自定义
select * from table_n order by field(id_n),id_2 desc;
-指定
select * from table_n order by id_1 asc,id_2 desc;
-
链接查询
- 内链接–关键字:inner join on
select * from a_table a inner join b_table b on a.a_id = b.b_id;
-
外连接
- 左链接-- left join on
select * from A left join B on A.id=B.id;
- 右链接-- right join on
select * from A a right join B b on a.id=b.id;
-
其他
SELECT
*
FROM
table_name
ORDER BY
column_name1 < NOW(),
IF (
column_name1 < NOW(),
0,
column_name1
),
column_name1 DESC;
先按大于等于当前时间升序,再按小于当前时间降序,支持分页。
char vachar 区别
- char的长度是不可变的,而varchar的长度是可变的
char(10),varchar(10),char不够会补空格,varchar最长10
- 因char定长,char 查找比varchar快。
- char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节,两者的存储数据都非unicode的字符数据。
- 执行顺序:from > where > group by > having > select > order by 语法顺序:select … from … where … group by … having … order by …
区别 count(),sum();count(*),count(列名)
sum()用于求和;count()求行个数;
count(*)包含所有列,不会忽略NULL;count(列名)只包括列名那一项。
幻读:事务在插入已经检查过不存在的记录时,惊奇的发现这些数据已经存在了,之前的检测获取到的数据如同鬼影一般。
脏读:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,但是还没有来得及提交到数据库中,这时,另一个事务也访问这个数据,然后使用了这个数据