高级查询:
order by
对查询结果排序
,
注意,使用order by的时候,如果某条记录的order by 指定的字段值是 null,那么包含 null 的这条记录会排在第一位,因为 null 被认为是最小值。
group by
对字段的值进行分组
查询:
注意,group by和聚合函数使用的时候,是先分组,然后再运算聚合函数,比如,按男女分组后,用sum()聚合函数分别统计
男足工资的总和和女足工资的总和
limit
,将查询结果中的一部分数据进行展示,
limit 一般用于编程语言中关于web页设计时的分页查找操作
注意,offset 偏移量的数值 是从0 开始的,所以,偏移量为0时,从第一条记录开始展示,偏移量为1时,从第二条记录开始展示,依此类推。
其实这也好理解,当偏移量是0 的时候,自然是从第一条记录开始,当偏移量是1的时候,意味着跳过第一条记录,因此自然就从第2条记录开始了。可以把偏移量看作是跳过的条数,偏移量是0,表示跳过0条记录,偏移量是1,表示跳过1条记录,所以就从第2条记录开始展示,
September09thMonday
函数
数学
函数:
举例 :SELECT ABS(3.2) AS val1,ABS(-12.87) AS val2;
结果:
字符串
函数:
注意,length()返回的是字符串的长度,这个长度的单位是字节,而MySQL数据库当前使用的字符集决定字串长度,比如,当MySQL使用 utf-8字符集的时候,length()返回一个汉字的长度是3(字节),当MySQL使用 Latin1 字符集的时候,length()返回一个汉字的长度是 2(字节).
日期和时间
函数:
SELECTCURDATE
();
SELECTCURTIME
();
SELECTSYSDATE
();
SELECTNOW
();
SELECT DATE(‘2024-09-09 09:03:44’);
SELECT TIME(‘2024-09-09 09:03:44’);
SELECT YEAR(‘2024-09-09 09:03:44’);
SELECT MONTH(‘2024-09-09 09:03:44’);
SELECT DAY(‘2024-09-09 09:03:44’);
SELECT HOUR(‘2024-09-09 09:03:44’);
SELECT MINUTE(‘2024-09-09 09:03:44’);
SELECT SECOND(‘2024-09-09 09:03:44’);
SELECT ADDDATE(‘2024-09-09 09:09:39’,INTERVAL 1 DAY);
SELECT SUBDATE(‘2024-09-10 09:09:39’,INTERVAL 1 DAY);
SELECT DATEDIFF(‘2024-09-09 09:09:39’,‘2024-09-19 09:09:39’);
SELECT WEEK(‘2024-09-09 09:16:13’);
SELECT WEEKDAY(‘2024-09-15 09:16:13’);
注意,weekday()返回的值,0表示星期一,6表示周天
SELECT MONTHNAME(‘2024-09-09 09:26:25’);
SELECT DAYNAME(‘2024-09-09 09:32:36’);
还可以在日期函数
中调用日期函数
SELECT DAYNAME(now());
SELECT DATE_FORMAT(NOW(),‘%Y-%m-%d %h:%i:%s %p’);
注意,DATE_FORMAT格式化中的 %Y-%m-%d %h:%i:%s %p都是固定写法,%Y代表年,%m代表月,%d代表日, %h代表小时,%i代表分钟,%s代表秒, %p代表上、下午,字母和其大小写不能随意变更,
SELECT DATE_FORMAT(DATE_ADD(NOW(),INTERVAL 12 HOUR),‘%Y/%m/%d-%H:%i:%s’);
SELECT DATE_FORMAT(NOW(),‘%Y年%m月%d日 %H小时:%i分:%s秒’);
注意,%Y代表年,%m代表月,%d代表日, %h代表小时,%i代表分钟,%s代表秒, %p代表上、下午,它们之间既可以用符号分隔,比如斜线 /、冒号 :、减号 - 等,也可以用汉字隔开它们,比如上面的语句就是用汉字年月日做的分隔。
条件判断
函数:
加密
函数:
SELECT MD5(12345);
注意,经过MD5()加密过的信息,连后台MySQL数据库的操作员也不能看到原始信息,
给表和表的字段取别名
:
September2024the09thMonday