mysql快速精通(一)DQL数据查询语言

文章建立在已知基础用法的前提下进行深入了解

一.排序

基础语法:

SELECT 字段名 FROM 表名 [WHERE 条件] ORDER BY 字段名 [ASC|DESC]; 
# ASC: 升序,默认是升序 
# DESC: 降序
  1. 单行排序,即上述语法的基础用法
# 根据角色ID升序排序
SELECT role_id FROM roles_table ORDER BY role_id ASC;
  1. 组合排序
# 先根据性别ID降序排序再根据角色ID升序排序
SELECT role_id,role_gender FROM roles_table ORDER BY role_gender DESC,role_id ASC;

二.单行函数

  1. 数值函数
  • abs(x) 绝对值函数
  • ceil(x) 向上取整
  • floor 向下取整
  • rand() 返回0-1随机数(可通过运算得到任意范围的随机数)
  • round(x) 四舍五入得到整数
  1. 字符串函数
  • concat(s1,s2…sn) 连接字符串
  • locate(s1,s) 从s中获取第一个s1开始的位置
  • lower(s) 将字符串变成小写字母
  • upper(s) 将字符串变成大写字母
  • replace(s,s1,s2) 将s中的字符串s1替换为s2
  • substr(s,start,length) 从字符串s的start位置截取长度为lenght的字符串
  • trim(s) 去除字符串s前后的空格
  • reverse(s) 反转字符串s
  1. 时间日期函数
  • now()sysdate()返回当前系统时间(包括年月日时分秒)
  • curdate()返回当前年月日
  • curtime()返回当前时间(时分秒)
  • month(date)返回参数日期的月份

该函数会进行日期合法性判断,不合法会返回空

# 以横杠隔开的日期
SELECT MONTH('2024-2-29')# 以斜杠隔开的日期
SELECT MONTH('2024/2/29')
  • week(date)day(date)同上
  • date_add(date|datetime,INTERVAL expr type)在参数日期上增加相应的时间

a.date|datetime 日期或者日期时间
b. expr 添加的时间间隔(可为负数)
c. type参数有很多选择

# 在在该时间上加上30天
select date_add('2024-7-10 12:11:22',interval 30 DAY)

需要了解这个函数更完全的用法可以看看这位大佬的博客
MySQL加减间隔时间函数DATE_ADD和DATE_SUB的详解

  1. 流程控制函数
  • if(condition,expr1,expr2)condition条件为true时返回expr1,反之exp2
# 如果为真则查询role_id并将结果重命名为hhh
SELECT if(true,role_id,role_gender) as hhh FROM roles_table
  • ifnull(expr1,expr2) expr1不为null时返回expr1,反之expr2
  1. 其他函数
  • version()查看数据库版本
  • user()查看当前数据库用户
  • md5(expr) 查看参数进行md5加密后的值

三. 聚合函数

  • count(rowName)查询指定列记录数,为NULL不计,rowName为通配符*可查询总条数
  • sum计算指定列数值和,特性:如果不是数值类型,计算结果为0
  • avg计算指定列平均值,为NULL不记,特性同上
  • max||min 分别是计算特定列最大值与最小值,特性同上

四.分组

  • 分组查询
    分组查询指的是使用GROUP BY对查询信息进行分组,相同的放一组,但只返回第一组,所以通常与聚合函数配合使用

SELECT 字段1,字段2... FROM 表名 [WHERE条件] GROUP BY 分组字段 [HAVING 条件];

在某些默认情况下如果分组查询的字段没有用聚合函数包裹会违反
ONLY_FULL_GROUP_BY的规定,这里为了方便输出用于分组的字段内容可以关闭该规则

SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

# 关闭ONLY_FULL_GROUP_BY规则
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));# 使用性别为聚合条件
SELECT SUM(role_id),role_gender from roles_table GROUP BY role_gender
  • where和having的对比

a. having是在分组后对数据进行过滤,where是在分组前对数据进行过滤
b. having语句中可以使用聚合函数,where后面不可以使用聚合函数

# 分组前条件ele_type_id<3,分组后条件 SUM(role_id)>50
SELECT SUM(role_id),role_gender from roles_table where ele_type_id<3 GROUP BY role_gender HAVING SUM(role_id)>50

五. limit

常用于实现分页查询

语法(放在最后)
SELECT *|字段列表 [as 别名] FROM 表名 [WHERE子句] [GROUP BY子句][HAVING子句][ORDER BY子句][LIMIT子句];

两种方式:

LIMIT offset,length;或者limit length;
offset是指偏移量,可以认为是跳过的记录数量,默认为0,表示从哪开始
length是指需要显示的总记录数,表示显示几条

# 表示向后偏移0,显示几条
SELECT * from roles_table LIMIT 0,5; 

六. select语句语法总结

SELECT 字段 FROM 表名 WHERE 条件 GROUP BY 字段 HAVING 条件 ORDER BY 字段 LIMIT offset,length;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/44108.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Google Earth Engine(GEE)——获取点的地表温度LST并展示经纬度何时间

结果 函数: getRegion(geometry, scale, crs, crsTransform) Output an array of values for each [pixel, band, image] tuple in an ImageCollection. The output contains rows of id, lon, lat, time, and all bands for each image that intersects each pixel in the …

【ai_agent】从零写一个agent框架(四)用rust制作一个python的虚拟运行环境。

前言 为了增加框架的扩展性和适用性&#xff0c;我们要能够在流程节点中运行python脚本。 这个时候需要考虑几个问题&#xff1a; 1 为什么是python&#xff1f; 思考&#xff1a;老实说我并不喜欢python&#xff0c;我更倾向于lua这种短小轻快的脚本。在我之前写的规则引擎…

【黑龙江等保测评流程——医院篇】

黑龙江作为东北地区的重要城市&#xff0c;随着我国医疗产业信息化水平的不断提高&#xff0c;医院等保评估工作也越来越重要。等保测试就是根据国家有关的法律、法规、标准&#xff0c;对医院信息系统所做的一次全面的安全检测和评价。以下将对黑龙江医院的等保测评程序进行具…

三品PLM管理系统软件:制造企业工程变更管理的革新者

在当今快速变化的市场环境中&#xff0c;制造企业面临着前所未有的挑战。客户需求的不断变化、供应链的波动、设计过程中的不确定性以及产品生命周期的缩短&#xff0c;都要求企业能够迅速响应并适应这些变化。工程变更管理作为企业响应市场变化、提升产品竞争力的关键环节&…

RSA加密算法因N强度不足破解实例

已知如下RSA密文和公钥信息&#xff0c;要求解密得到明文。 ----------------------- ciphertext&#xff08;HEX&#xff09; 94808F954A8AF9B9 N&#xff08;HEX&#xff09; C6EAD137492B4631 e&#xff08;HEX&#xff09; 10001 ------------------------ 分析过…

Docker-搭建部署Jenkins(保姆篇)

文章目录 Jenkins部署拉取镜像启动容器查看初始密码关闭CSRF Jenkins页面使用解决插件下载缓慢访问jenkins页面推荐插件安装创建一个管理员账号实例配置页面展示 更多相关内容可查看 Jenkins部署 拉取镜像 如果想拉取对应版本请指明版本号 docker pull jenkins/jenkins:lts-…

springboot轻松音乐-计算机毕业设计源码48092

目 录 摘要 1 绪论 1.1研究背景与意义 1.2研究现状 1.3论文结构与章节安排 2 基于微信小程序的轻松音乐系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.3 系统用例分析 2.4 系统…

持久化存储与设备环境查询的最佳实践

ArkUI框架中的PersistentStorage和Environment 在ArkUI框架中&#xff0c;持久化存储和设备环境查询是应用开发中不可或缺的两个重要功能。在本文中&#xff0c;我们将深入了解框架提供的PersistentStorage和Environment&#xff0c;它们的用途、限制条件以及在应用开发中的使…

Linux 防火墙配置指南:firewalld不同服务管理的应用案例(十个)

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作时间&…

云手机批量操作使用场景,从Amazon、TK等软件分析

云手机目前所具备的群控&#xff0c;批量操作&#xff0c;自动化等功能&#xff0c;对于电商&#xff0c;软测&#xff0c;办公&#xff0c;直播&#xff0c;营销等行业有很好的减负作用。 针对于具体的海外APP&#xff0c;云手机具体可以做哪些事情来帮助我们减轻压力&#x…

又一款代码神器,效率直接翻倍!免费的还是香啊!

在现代软件开发的世界里&#xff0c;工具的选择可以极大地影响开发者的效率和体验。而现在&#xff0c;有一款专为“懒人”开发者设计的一站式开发神器横空出世&#xff0c;它就是——MemFire Cloud。这款神器不仅能大幅提升开发效率&#xff0c;而且是免费的。让我们一起来看看…

IEC62056标准体系简介-3.IEC62056-62接口类(IC)

IEC62056-62接口类将IEC 62056-61对象标识系统中的数据项进行分类、归整&#xff0c;采用对象建模的方法构造了计量仪表通信的接口模型&#xff0c;规定了计量仪表的功能、数据显示和数据交换方式等&#xff0c;是COSEM核心组成部分。COSEM把计量仪表看成是公共事业部门商业过程…

vmware 虚拟机扩容 centos 硬盘扩容 kylinos v10扩容

1. 虚拟机先扩容 1.1 关机&#xff0c;并点击系统&#xff0c;让他是点选状态&#xff0c;但是没开机 1.2 右击&#xff0c;点击最下方设置&#xff0c;点击硬盘 1.3 点击扩展磁盘 1.4 选择你需要扩容的大小&#xff0c;数字为总大小 完成提示&#xff1a; 磁盘已成功扩展。您…

李良济“小儿推拿妈妈班”圆满结课,以中医智慧守护儿童健康成长!

孩子生场病&#xff0c;妈妈半条命&#xff01;作为妈妈最害怕的就是孩子生病&#xff0c;自己又无能为力&#xff01; 为了帮助妈妈们&#xff0c;正确应对孩子健康问题&#xff0c;日常生活中科学帮助孩子提升体质少生病&#xff01; 参加此次课程的&#xff0c;不仅有妈妈&a…

LeetCode 2970.统计移除递增子数组的数目 I:深夜刷题之——50的数据n^3暴力秒了

【LetMeFly】2970.统计移除递增子数组的数目 I&#xff1a;深夜刷题之——50的数据n^3暴力秒了 力扣题目链接&#xff1a;https://leetcode.cn/problems/count-the-number-of-incremovable-subarrays-i/ 给你一个下标从 0 开始的 正 整数数组 nums 。 如果 nums 的一个子数组…

软件缺陷简介

缺陷种类 遗漏&#xff0c;指规定或预期的需求为体现在产品种错误&#xff0c;需求是明确的&#xff0c;在实现阶段未将需求的功能正确实现冗余&#xff0c;需求说明文档中未涉及的需求被实现了不满意&#xff0c;用户对产品的实现不满意也成为缺陷 缺陷等级划分 致命&#…

LeetCode刷题之HOT100之最长递增子序列

2024/7/10 晴&#xff0c;睡眠质量良好&#xff0c;到实验室时间9.18。知了在窗外聒噪&#xff0c;似乎让我安心&#xff0c;静下来。做题吧 1、题目描述 2、算法分析 给一个整数数组&#xff0c;要求出里面最长严格递增子序列的长度。遇到这种问题&#xff0c;想到的就是DP算…

基于JavaSpringBoot+Vue+uniapp微信小程序校园宿舍管理系统设计与实现(论文7000字参考+源码+LW+部署讲解)

博主介绍&#xff1a;硕士研究生&#xff0c;专注于信息化技术领域开发与管理&#xff0c;会使用java、标准c/c等开发语言&#xff0c;以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年&#xff0c;拥有近12年的管理工作经验&#xff0c;拥有较丰富的技术架…

多个单元运算符合用???:::

string a "a";string b "b";string c "c";string r a "a" ? b "b" ? c"c" ? "b" : "cc" : "33":"44";string rr a "a"? b "b" ?(c …

突破AI性能瓶颈 揭秘LLaMA-MoE模型的高效分配策略

获取本文论文原文PDF&#xff0c;请在公众号【AI论文解读】留言&#xff1a;论文解读 本文介绍了一种名为“LLaMA-MoE”的方法&#xff0c;通过将现有的大型语言模型&#xff08;LLMs&#xff09;转化为混合专家网络&#xff08;MoE&#xff09;&#xff0c;从而解决了训练MoE…