[MySQL]DQL语句(一)

     查询语句是数据库操作中最为重要的一系列语法。查询关键字有  select、where、group、having、order by、imit。其中imit是MySQL的方言,只在MySQL适用

    数据库查询又分单表查询和多表查询,这里讲一下单表查询。

基础查询

# 查询指定列
SELECT * FROM 表名
# 查询所有列
SELECT 列名1,列名2,... FROM 表名

     " * "  表示所有

条件查询

关键字WHERE

WHERE 筛选条件

NULL的特殊性 

     null数据在mysql中比较特殊,在值运算中,任何值与null进行运算结果都为null;在逻辑运算中,任何条件与null进行逻辑运算结果都为false。在逻辑运算中,如果想表示不为空或者为空,格式应当为: 值 IS NOT NULL 或 IS NULL

运算符和关键字

=等于
!=不等于
<>不等于
<小于
<=小于等于
>大于
>=大于等于
BETWEEN a AND b在a和b之间,包含a和b
IN(值1,值2,...)属于所举的值
IS NULL为空
AND、&&
OR、||
NOT、!

    NOT一般和IS NULL 和 IN 搭配使用,组成IS NOT NULL 和 NOT IN,分别表示不为空和不属于

模糊查询

    模糊查询可以在所有的字符串类型的数据的查询中使用。

    模糊查询需要在WHERE语句中使用

通配符

  关键字LIKE中,符号"_"用于表示任意的字符,10个连续的"_"就表示长度为10的任意字符串

  关键字LIKE中,符号"%"用于表示0~n个任意的字符

下面举例说明

# 查询长度为6且第3和第4个字符为"5h"的字符串
WHERE str LIKE '__5h__';# 查询以'@163.com'结尾的字符串
WHERE str LIKE '%@163.com';# 查询包含子字符串"lai"的字符串
WHERE str LIKE '%lai%';

字段控制查询

去除重复记录

    在一张表中某个字段有着重复的记录,要查询结果去除重复记录,需要使用关键字DISTINCT,字段名处可以为多个字段或"*"

# 查询student表的'name'字段并去除重复记录
SELECT DISTINCT name FROM student;

 添加别名

    添加别名需要使用关键字AS

    查询数据时,不只能够查询已有的字段名,还可以以原有的字段为基础,添加新的列。

    例:查询所有的员工信息,添加一行,其值为基础工资+奖金

SELECT *,sal+comm FROM emp;

    像上例代码进行查询时,最终结果里最后一列上方的字段名为显示为sal+comm,这时候为了美观,就需要使用到关键字 AS 来添加别名。

# 设置别名时可以不添加'',使用''包围字符也不会有影响
SELECT *,sal+comm AS 总工资 FROM emp;# 不只是自定义的字段才能用添加别名,添加别名时, AS 可以省略不写
SELECT name 姓名,id 学号 FROM student;

转换NULL

    在运算中,如果碰到了NULL值会影响最终查询结果,这时需要使用运算式IFNULL(字段名,替换值),在查询时如果某条记录的"字段名"处的值为null,则将其替换为替换值进行匹配。

    替换值只在进行匹配时使用,不会替换掉记录中的null值,也不会影响最终显示结果

# 查询所有字段并添加一行,其数据为sal + comm的值,若comm值为null,则替换为0进行运算
SELECT *,sal+IFNULL(comm,0) AS 总工资 FROM emp;# 查询所有字段,条件是name的值不为空。若name值为空,则将null替换成'蒂蒂'进行逻辑运算
SELECT * FROM stu WHERE IFNULL(name,'蒂蒂') IS NOT NULL; 

     为了方便解释上方红色字体一行,这里放一下第二个例子的查询结果

排序

    排序需要使用到关键字ORDER BY

    其中ASC表示升序排序,也是默认值;DESC表示降序排序。

# 字段名1可以是字段2,升序排序,ASC是默认值,可以不写
SELECT 字段名1 FROM 表名 ORDER BY 字段名2 [ASC];# 降序排序的DESC就不可以省略了# 先按年龄降序排序,再按学号升序排序
SELECT * FROM student ORDER BY age DESC,id [ASC];

聚合函数

    聚合函数是纵向计算的函数,一般在SELECT语句中使用

函数描述
COUNT()统计指定列不为NULL的记录行数
MAX()计算指定列的最大值,字符串类型列使用字符串排序运算
MIN()计算指定列的最小值,字符串类型列使用字符串排序运算
SUM()计算指定列的数值和,如果列类型不是数值类型,计算结果为0
AVG()计算指定列的平均值,如果列类型不是数值类型,计算结果为0

     NULL值不参与所有的聚合函数计算,写语:

SELECT 聚合函数(字段列表) FROM 表名 ;

分组查询

    分组查询需要使用GROUP BY关键字

    聚合函数经常和分组查询GROUP BY 一起使用,而且聚合函数往往会在分组查询后才执行,这里关系到MySQL查询语句的执行顺序,具体可查看我的另一篇文章:查询语句的执行顺序

SELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [ HAVING 分组 后过滤条件 ];

分页查询

分页操作在业务系统开发时,也是非常常见的一个功能,我们在网站中看到的各种各样的分页条,后台

都需要借助于数据库的分页操作。MySQL使用LIMIT用来限定查询结果的起始行,以及总行数。

语法:

SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数 ;

注意事项:

    起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。这里另外提一下,有关字符串的函数,它们对字符串的起始索引为1,也就是想要表示该字符串中的第一个字符,应当使用1表示,而不是0。

    分页查询目前没有统一的关键字,都是数据库的方言来实现,MySQL中是LIMIT。

    如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。

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

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

相关文章

如何理解ref,toRef,和toRefs

1. ref ref 是 Vue 3 提供的一个用于创建响应式数据的 API。它可以用来创建简单的响应式变量&#xff0c;例如数字、字符串、布尔值或对象等。通过使用ref&#xff0c;当数据发生变化时&#xff0c;相关的组件视图会自动更新。 用法 创建响应式数据&#xff1a; import { ref …

Java 批量导出Word模板生成ZIP文件到浏览器默认下载位置

是不是你们要找的&#xff01;是不是你们要找的&#xff01;是不是你们要找的&#xff01; 先看效果&#xff1a; 1.word模板格式 2.模板位置 3.需要的依赖 <!--POI-TL实现数据导出到word模板--><dependency><groupId>cn.hutool</groupId><artifact…

使用 Nuxt 快速初始化 shadcn-vue 项目

更多 shadcn-vue 中文文档在 Torna Nuxt 安装并配置Nuxt 1. 创建项目 首先&#xff0c;使用 create-nuxt-app 创建一个新的 Nuxt 项目。 如果你选择使用 JavaScript 模板&#xff0c;那么必须存在 jsconfig.json 文件&#xff0c;这样命令行工具&#xff08;CLI&#xff09;…

Flarum:简洁而强大的开源论坛软件

Flarum简介 Flarum是一款开源论坛软件&#xff0c;以其简洁、快速和易用性而闻名。它继承了esoTalk和FluxBB的优良传统&#xff0c;旨在提供一个不复杂、不臃肿的论坛体验。Flarum的核心优势在于&#xff1a; 快速、简单&#xff1a; Flarum使用PHP构建&#xff0c;易于部署&…

CPU用户时间百分比

在计算机系统中&#xff0c;"CPU用户时间百分比&#xff08;CPU User Time&#xff09;"是一个性能监控指标&#xff0c;它描述了CPU在用户模式下执行的累积时间与总的CPU时间的比例。这个指标可以帮助我们了解系统在执行用户态程序时的负载情况。下面是一些关于CPU用…

vue系列==Vuex状态管理器

1、Vuex状态管理器 1、创建一个Vuex的store对象来统一管理多个组件之间共享的状态数据。在创建store对象时&#xff0c;可以配置state、getters、mutations和actions这4个对象&#xff0c;组件之间共享的状态数据在state对象中指定&#xff0c;而基于状态数据的计算属性可以在g…

ubuntu20.04安装ros与rosdep

目录 前置配置 配置apt清华源 配置ros软件源 添加ros安装源&#xff08;中科大软件源&#xff09; 设置秘钥 更新源 ros安装 安装ros 初始化 rosdep 更新 rosdep 设置环境变量 安装 rosinstall 安装验证 启动海龟仿真器 操控海龟仿真器 rosdep安装更新 安装 使用…

C#读取.ini配置文件

INI文件&#xff08;Initialization File&#xff09;是一种简单的文本文件格式&#xff0c;用于存储程序的配置信息。在Visual Studio中&#xff0c;INI文件通常用于存储应用程序或项目的设置和配置数据。这些设置可能包括数据库连接字符串、应用程序参数、用户偏好等。 INI文…

mobile频段要查找、设置并获取相关参数,该怎么破?

今天我们一起来学习查找和设置mobile频段&#xff0c;并获取相关参数。 一、mobile概述 1.1 简介 “4G mobile”指的是第四代移动通信技术&#xff0c;常用于描述通过4G网络进行的高速无线数据传输和通信。4G网络最显著的特征是其高速数据传输能力。理论上&#xff0c;4G可以…

「C/C++」C++11 之<thread>多线程编程

✨博客主页何曾参静谧的博客📌文章专栏「C/C++」C/C++程序设计📚全部专栏「VS」Visual Studio「C/C++」C/C++程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid函数说明目…

CSS元素类型(二)

CSS元素类型 重点 CSS元素类型基本的3种类型&#xff1a;1 块【div]1 可以设置宽度/高度2 如果你不设置宽度的话 宽度父元素3 独占一行【父元素的一行】4 margin【外边框】 auto[自动 将左右二边的空白区域平均分配给元素两端]父元素的居中效果空白区域 父元素宽度 - 本身元…

InsCode线上IDE推荐及使用指南

小编在使用inscode后非常震撼&#xff0c;惊叹于他的线上IDE功能和各类其他功能。 割绳子小游戏,这是小编在inscode上做的游戏部署的网站&#xff0c;大家可以去游玩&#xff0c;有什么值得改进的请大家多多指点。 接下来小编分两期为大家带来inscode线上及线下IDE推荐和使用…

[SAP ABAP] SMW0上传模板

通常来说&#xff0c;一个批量导入的程序必须使用指定的模板&#xff0c;我们需要将模板保存到SAP系统中&#xff0c;以便用户下载并更改。这里我们可以使用事务码SMW0解决上述的问题 1.选择二进制类型 2.输入存放的包 3.创建对象 选择需要进行上传的本地模板文件到SAP系统中 …

LSTM模型改进实现多步预测未来30天销售额

项目源码获取方式见文章末尾&#xff01; 600多个深度学习项目资料&#xff0c;快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【BiLSTM模型实现电力数据预测】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实…

中科蓝汛GPIO操作说明

第一种写法&#xff1a; GPIO配置输入模式 //内部上拉 GPIOBDE | BIT(4); //数字IO使能: 0为模拟IO, 1 为数字IO GPIOBDIR | BIT(4); //控制IO的方向: 0为输出, 1为输入. GPIOBFEN & ~BIT(4);//0:当作通用GPIO使用 //1:当作其它功能性IO GPIOBPU | BIT(4); //10K上拉…

docker file容器化部署Jenkins(一)

Jenkins Github地址&#xff1a;https://github.com/jenkinsci/jenkins 国内镜像地址&#xff1a;https://docker.aityp.com/ 准备工作 # 创建持久化卷目录 mkdir /data/jenkins_home/Jenkins拉取镜像 # 由于Jenkins需要JDK&#xff0c;所以直接拉取带有JDK的Jenkins镜像 doc…

3DDFA-V3——基于人脸分割几何信息指导下的三维人脸重建

1. 研究背景 从二维图像中重建三维人脸是计算机视觉研究的一项关键任务。在虚拟现实、医疗美容、计算机生成图像等领域中&#xff0c;研究人员通常依赖三维可变形模型&#xff08;3DMM&#xff09;进行人脸重建&#xff0c;以定位面部特征和捕捉表情。然而&#xff0c;现有的方…

高并发编程

一台64G内存的服务器QPS可以达到9W&#xff0c;TPS&#xff08;事务&#xff09;可以达到5K&#xff0c;每个TPS大约包含18个QPS.只读的话QPS可以达到30~40万.阿里云有相关测试工具、测试方法、测试结果。 1、volatile 保证可见性&#xff0c;禁止指令重排&#xff0c;避免多线…

HTML 基础标签——表单标签<form>

文章目录 1. `<form>` 标签:定义表单容器2. `<input>` 标签:多用途输入控件3. `<textarea>` 标签:多行文本输入框4. `<select>` 标签:下拉选择框5. `<option>` 标签:下拉菜单选项6. `<button>` 标签:按钮元素7. `<label>` 标签…

GraphQL 与 Elasticsearch 相遇:使用 Hasura DDN 构建可扩展、支持 AI 的应用程序

作者&#xff1a;来自 Elastic Praveen Durairaju GraphQL 提供了一种高效且灵活的数据查询方式。本博客将解释 Hasura DDN 如何与 Elasticsearch 配合使用&#xff0c;以实现高性能和元数据驱动的数据访问。 此示例的代码和设置可在此 GitHub 存储库 - elasticsearch-subgraph…