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子句及其顺序

 

posted @ 2018-08-21 10:02  阿罗luo  阅读(98)  评论(0)    收藏  举报