mysql
《SQL必知必会》提供的例子:https://forta.com/books/0672336073/。根据数据库选择。
1,mysql datetime类型的查询
select * from personTransactionDetail where '2018-08-07 00:00:00' >= updateDate;查出来的是没有当天数据的,即时间截止到2018-08-06 23:59:59 。
要查询当天的,用DATE_FORMAT函数转化。如下:
select * from personTransactionDetail where '2018-08-07 00:00:00' >= DATE_FORMAT(updateDate,'%Y-%m-%d');查出来的是 当天的所有数据。
2,MySQL - 查询今天的数据(以及昨天、本月、上个月、今年...) 查询Datetime 时间的数据
参考:https://www.cnblogs.com/xuandi/p/8883194.html
3,查询重复的数据
select * from userRiskRecord a where (a.userId) in (select userId from userRiskRecord group by userId having count(*) > 1) -- 查询userId字段重复的数据
4,查询分组,某列字段最大的值
select * from P_pjtb a WHERE tbjy = (SELECT max(tbjy) from P_pjtb where uid = a.uid )
order by a.uid
5,group by 分组
“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。
select 类别, sum(数量) as 数量之和 from A group by 类别
域”进行数据处理。
select 类别, sum(数量) as 数量之和 from A group by 类别
注:group by语句中select指定的字段必须是“分组依据字段”,其他字段若想出现在select中则必须包含在聚合函数中。
mysql中五种常用的聚合函数:
(1)max(列名):求最大值。
(2)min(列名):求最小值。
(2)sum(列名):求和。
(4)avg(列名):求平均值。
(5)count(列名):统计记录的条数。
例子:查询出用户最大的金额。

6,having
having子句可以让我们筛选成组后的各种数据,where子句在聚合前先筛选记录,也就是说作用在group by和having子句前。而 having子句在聚合后对组记录进行筛选。
select 类别, sum(数量) as 数量之和 from A group by 类别 having sum(数量) > 18
例子:查询出用户最大的金额,且大于20000的。

7、数据库备份和还原。
备份:mysqldump -uroot -p --databases blz > ~/blz.sql
输入密码
恢复:先登录: mysql -uroot -p
输入密码
Source ~/blz.sql
经过上面的命令,即可完成数据库blz的备份和恢复。
解释:一、mysqldump一次性备份所有数据库数据
/usr/local/mysql/bin/mysqldump -u用户名 -p密码 --all-databases > /保存路径/文件名.sql
二、mysqldump 一次性备份指定的多个数据库数据
/usr/local/mysql/bin/mysqldump -u用户名 -p密码 --databases 数据库1 数据库2... > 保存路径/文件名.sql
8,select子句及其顺序


浙公网安备 33010602011771号