当前位置: 首页 > news >正文

MySQL刷题相关简单语法集合

  1. 去重 distinct 关键字
    eg. :select distinct university from user_profile

  2. 返回行数限制: limit关键字
    eg. :select device_id from user_profile limit 2

  3. 返回列重命名:as 关键字
    eg.:select device_id as user_infos_example from user_profile limit 2

  4. 指定关键字排序:order by 关键字(ASC升序,DESC降序):
    eg:select device_id,age from user_profile order by age asc

  5. 统计总数 + 模糊条件筛选: count + where + like
    eg.:

selectcount(distinct device_id) as did_cnt,count(question_id) as question_cnt
from question_practice_detail
where date like "2021-08%"
  1. 判断非空: is not null
    eg.:select device_id,gender,age,university from user_profile where age is not null

  2. 多条件判断 : where in / not in
    eg.:

select device_id, gender, age ,university, gpafrom user_profile where university in ('北京大学','复旦大学','山东大学')
  1. 正则表达式:使用regexp 进行正则匹配
    正则表达式匹配的字符类:
    .:匹配任意单个字符。
    ^:匹配字符串的开始。
    $:匹配字符串的结束。
    *****:匹配零个或多个前面的元素。
    +:匹配一个或多个前面的元素。
    ?:匹配零个或一个前面的元素。
    [abc]:匹配字符集中的任意一个字符。
    [^abc]:匹配除了字符集中的任意一个字符以外的字符。
    [a-z]:匹配范围内的任意一个小写字母。
    [0-9]:匹配一个数字字符。
    \w:匹配一个字母数字字符(包括下划线)。
    \s:匹配一个空白字符。

eg.:

select id,name,phone_numberfrom contactswhere phone_number regexp '^[1-9][0-9]{2}-?[0-9]{4}-?[0-9]{4}$'
  1. 取最大值 : max
    eg.:select max(gpa) as gpa from user_profile where university = '复旦大学'

  2. 规定小数点位数及统计平均值: round + avg
    ROUND 函数用于把数值字段舍入为指定的小数位数。
    用法为:SELECT ROUND(column_name,decimals) FROM table_name
    eg.:

select count(gender) as male_num,round(avg(gpa),1) as avg_gpa
from user_profile 
where gender = 'male'
  1. 分组查询: group by
    eg.
select gender,university,count(device_id) as user_num, round(avg(active_days_within_30),1) as avg_active_day,round(avg(question_cnt),1) as avg_question_cntfrom user_profilegroup by gender,universityorder by gender asc,university asc

注意: 由于group by后的输出不可预估,因此在笔试时可能会出现仅使用group by 无法通过测试用例的情况,此时需按用例示范追加 order by !!!

  1. 分组后条件过滤: having
    eg.:
 select university,round(avg(question_cnt),1) as avg_question_cnt,round(avg(answer_cnt),1) as avg_answer_cnt
from user_profile group by universityhaving avg_question_cnt < 5 or avg_answer_cnt < 20
  1. 多表查询- 内连接:inner join ,注意应指定列。
    eg.:
select q.device_id,q.question_id,q.result from question_practice_detail as qinner join user_profile as upon q.device_id = up.device_id and up.university = '浙江大学'

相关文章:

  • 2023年全国青少年信息素养大赛-图形化编程复赛真题—打气球
  • PIC16F18877 的主时钟 设置方法
  • 第八节第四部分:认识泛型、泛型类、泛型接口
  • php fiber 应用
  • OpenCV透视变换
  • Java 应用如何实现 HTTPS:加密数据传输的实用指南
  • Ankr:Web3基础设施的革新者
  • 【第二篇】 初步解析Spring Boot
  • 【Python 算法零基础 3.递推】
  • 防范Java应用中的恶意文件上传:确保服务器的安全性
  • 【Redis】redis用作缓存和分布式锁
  • Docker常见命令解读
  • EXO分布式部署deepseek r1
  • 机器学习 KNN算法
  • 智慧水务关键一环:Profinet转Modbus TCP网关驱动供水系统高效互联
  • 计算机视觉与深度学习 | Python实现EMD-SSA-VMD-LSTM-Attention时间序列预测(完整源码和数据)
  • 【深度学习新浪潮】大模型时代,我们还需要学习传统机器学习么?
  • [system-design] ByteByteGo_Note Summary
  • 大型语言模型中的QKV与多头注意力机制解析
  • gem5-gpu教程 第十章 关于topology 的Mesh network
  • 《风林火山》千呼万唤始出来,戛纳首映后口碑崩盘?
  • 国际乒联主席索林:洛杉矶奥运会增设混团是里程碑事件
  • 时隔三年,俄乌直接谈判重启
  • 雷军内部演讲回应质疑:在不服输、打不倒方面,没人比我们更有耐心
  • 普京调整俄陆军高层人事任命
  • 警方通报男子广州南站持刀伤人:造成1人受伤,嫌疑人被控制