一、基本查询用法
1.1 某列有几种类型,以及总数
--获取不同类型设备的数量
--写法1:
SELECT energytype,count(energytype)typenumber FROM tb_device GROUP BY energytype
--写法2:
SELECT energytype,count(*)typenumber FROM tb_device GROUP BY energytype
--带排序的:
SELECT energytype,count(energytype)typenumber FROM tb_device GROUP BY energytype
ORDER BY typenumber desc
1.2 与、或、长度查询数据
select count(*) from kuming where length(ziduankou) <= length(zhuduankou) or ( length(ziduankou) > length(zhuduankou) and left(ziduankou, length(zhuduankou)) != zhuduankou);
***//left的用法
LEFT('foobarbar', 5);
fooba
1.3 判断null
***// 我们知道在对NULL进行判断处理时,只能采用IS NULL或IS NOT NULL,而不能采用=, <, <>, !=这些操作符
1.4 mysql中的字符串连接
-
mysql中的+号仅仅只有一个功能:运算符
数字+数字:加法运算;
字符串+数字:试图将字符串转为数字
字符串+数字:如果转换失败,则将字符串转为0,输出数字
null+10:只要一方是null,则结果肯定是null -
CONCAT(‘A’,‘B’,‘C’) 用于拼接
1.5 条件查询
-
按照条件表达式筛选
简单条件运算符:> < = != <> >= <= -
按照逻辑表达式筛选
逻辑运算符: && || !
and or not -
模糊查询
like:有两种通配符:%(任意多个字符,包含0个字符) 和 _(任意单个字符)
between and :between 20 and 80 类比于 >=20 and <=80
in
is null
二 关于时间转换和获取不同时间
2.1 获取时间格式
#当前日期和时间YYYY-MM-DD HH:MM:SS
SELECT NOW();
#当前日期和时间YYYYMMDDHHMMSS
SELECT SECOND(NOW());
#当前日期
SELECT CURDATE();
#当前时间
SELECT CURTIME();
#返回日期的年份
SELECT YEAR(NOW());
#返回日期的月份
SELECT MONTH(NOW());
#返回日期的天数
SELECT DAY(NOW());
#返回日期的小时值
SELECT HOUR(NOW());
#返回日期的分钟值
SELECT MINUTE(NOW());
#返回日期的秒数值
SELECT SECOND(NOW());
#间隔的月数
SELECT TIMESTAMPDIFF(MONTH,'2021-3-5','2021-5-4')
#间隔的年数
SELECT TIMESTAMPDIFF(YEAR,'2021-3-5','2021-5-4')
#间隔的天数
SELECT DATEDIFF('2018-09-30 19:38:45','2018-08-23 10:13:01')
2.2 转换时间的格式
select '202210' as data_cycle , date_format(CURDATE(),'%Y%m%d') as cycle