欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

MySQL操作实战(一):关键字 函数

发布时间:2024/1/17 34 豆豆
生活随笔 收集整理的这篇文章主要介绍了 MySQL操作实战(一):关键字 函数 小编觉得挺不错的,现在分享给大家,帮大家做个参考.


以下为数据库sqltest中的三张表,其结构和内容(部分)如下:

1. 关键字

①EXISTS、NOT EXISTS

EXISTS关键字:当EXISTS里的条件语句能够返回记录行时,条件为真,返回当前loop到的这条记录;反之,当前loop到的这条记录被丢弃。
NOT EXISTS关键字:NOT EXISTS与EXISTS相反,也就是当EXISTS条件有结果集返回时,loop到的记录将被丢弃,否则将loop到的记录加入结果集。

  • 统计没有参加所有考试的学生
mysql> SELECT *-> FROM t_stu_profile b-> WHERE NOT EXISTS(-> SELECT *-> FROM t_score a-> WHERE a.stu_id = b.stu_id)-> ; +--------+----------+--------+------+----------+ | Stu_id | Stu_Name | Gender | Age | Class_id | +--------+----------+--------+------+----------+ | 5 | 王五 | F | 17 | 0614 | | 6 | 赵七 | F | 16 | 0615 | +--------+----------+--------+------+----------+

2. 函数

①COUNT()

COUNT()函数有两种使用方式:
①COUNT(*):对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值;
②COUNT(col_name):对特定列中具有值的行进行计数,忽略NULL值;
③COUNT(col_order):效果同上,当col_order=1,则表明对第1列进行计数。

  • 应用场景:查找各门课程的记录数量
# COUNT(*) mysql> SELECT lesson_id, COUNT(*) AS nums-> FROM t_score-> GROUP BY lesson_id-> ; +-----------+------+ | lesson_id | nums | +-----------+------+ | L001 | 4 | | L002 | 4 | | L004 | 1 | | L003 | 3 | | L005 | 2 | +-----------+------+# COUNT(col_name) mysql> SELECT lesson_id, COUNT(lesson_id) AS nums-> FROM t_score-> GROUP BY lesson_id-> ;# COUNT(col_order) mysql> SELECT lesson_id, COUNT(2) AS nums-> FROM t_score-> GROUP BY lesson_id-> ;
②GROUP_CONCAT()

GROUP_CONCAT()函数:实现分组聚合

GROUP_CONCAT(id ORDER BY id DESC SEPARATOR ‘_’)

③SUBSTRING_INDEX()

SUBSTRING_INDEX()函数:切分

SUBSTRING_INDEX(str, delim, count)
str:被截取字段
delim:分隔符
count:计数,count为正,从左往右数,取第n个分隔符的左边的全部内容;count为负,从右往左数,取第n个分隔符的右边的全部内容

  • 应用场景:查找每科的最高分

实现步骤:
①将表t_score中的记录按 lesson_id 分组,GROUP_CONCAT(score ORDER BY score DESC SEPARATOR '_');
②利用SUBSTRING_INDEX(t.scores, '_', 1)函数进行切分。

mysql> SELECT t.lesson_id, SUBSTRING_INDEX(t.scores, '_', 1) AS max_score-> FROM(-> SELECT lesson_id, GROUP_CONCAT(score ORDER BY score DESC SEPARATOR '_') AS scores-> FROM t_score-> GROUP BY lesson_id) t-> GROUP BY t.lesson_id-> ; +-----------+-----------+ | lesson_id | max_score | +-----------+-----------+ | L001 | 100 | | L002 | 91 | | L003 | 86 | | L004 | 75 | | L005 | 98 | +-----------+-----------+

总结

以上是生活随笔为你收集整理的MySQL操作实战(一):关键字 函数的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。