1.curd
代码语言:javascript复制insert table set a=1,b='daad'
update table set a=3,b='阿达' where id=3
delete from table where id=3
SELECT fields
FROM table
[WHERE...]
]
[GROUP BY...]
]
[HAVING...]
]
[ORDER BY...]
]
2.常用的查询
代码语言:javascript复制select * from table where id=1;
select * from table where order by id DESC limit 1,24;
select id,title from table where status=1 order by id DESC,status ASC
limit 10,24;
3.where 条件运算符
= 等于
!= 不等于
<> 不等于
> 大于 id>3
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内 between 1 and 3
LIKE 搜索某种模式 模糊匹配 title like '%中国%' '中国%' '%中国'
IN 指定针对某个列的多个可能值 in(1,2,3)
4.常用函数
COUNT() - 返回行数
AVG() - 返回平均值
MAX() - 返回最大值
MIN() - 返回最小值
SUM() - 返回总和
DISTINCT - 返回不重复的
代码语言:javascript复制 select count(*) from table ;//返回记录数
select sum(money) as money from table ;//返回综合
select distinct(title) from table ;//返回不重复的数据
5.group by having 分组语句
代码语言:javascript复制select sum(money) as total_money from table as t group by userid having sum(money)>1000 order by total_money DESC ;
where 和 having 的区别
HAVING子句可以引用总计函数,而WHERE子句不能引用
4.LEFT JOIN 和 RIGHT JOIN 运算
用 LEFT JOIN 运算 创建左边外部联接.左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。
用RIGHT JOIN 运算 创建 右边外部联接.右边外部联接将包含了从第二个(右边)开始的两个表中的全部记录,即使在第一个(左边)表中并没有匹配值的记录。
代码语言:javascript复制 SELECT a.CategoryName,
b.ProductName,a.CategoryID
FROM Categories as a LEFT JOIN Products as b
ON Categories.CategoryID = Products.CategoryID;
选出所有分类 即使 该分类没有产品
代码语言:javascript复制 SELECT a.CategoryName,
b.ProductName,a.CategoryID
FROM Products as b LEFT JOIN Categories as a
ON Categories.CategoryID = Products.CategoryID;
选出所有产品 即使 该产品没有分类
5.union语法
创建一个联合查询,它组合了两个或更多的独立查询或表的结果。
代码语言:javascript复制 select * from table where id>6
union
select * from table where id<10
order by id desc
6.子查询
代码语言:javascript复制SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2 limit 1);
SELECT * FROM t1 WHERE column1 in (SELECT column1 FROM t2);
SELECT * from sky_demo where exists (select(id) from sky_demo)
7.TRANSACTION 用于启动和结束显式事务。
innodb表 保持数据一致性
atm机 银行卡扣了钱 钱没吐出来
BEGIN TRANSACTION 启动新事务. $db->begin();
COMMIT [TRANSACTION | WORK] 处理成功 提交事务
ROLLBACK [TRANSACTION | WORK] 回滚事务 取消操作