[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.rhkb.cn/news/463553.html

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

相关文章

【Unity】鼠标点击获取世界坐标位置:物体移动至鼠标点击的位置

需求说明 鼠标点击3D场景时&#xff0c;可以获取其所在的世界坐标&#xff1b; 鼠标点击3D物体时&#xff0c;可以获取该物体&#xff1b; 鼠标点击3D物体时&#xff0c;可以让玩家移动至该物体&#xff1b; 成果展示 Scene部分 关于仓库栏的设置&#xff0c;物体如何进入…

使用nvm切换node版本失败

​ 使用nvm切换node版本失败&#xff08;原node版本v20.14.0&#xff0c;我使用nvm use 16.9.1切换node版本后&#xff0c;显示Now using node v16.9.1可当我使用命令node -v查看当前node版本时还是v20.14.0&#xff0c;意味着版本切换失败&#xff09;&#xff1a; 这个原因大…

Hive数据库操作语法

数据类型 内部表和外部表 内部表 &#xff08;CREATE TABLE table_name ......&#xff09;未被external关键字修饰的即是内部表&#xff0c; 即普通表。 内部表又称管理表,内部表数据存储的位置由hive.metastore.warehouse.dir参数决定&#xff08;默认&#xff1a;/user/h…

【Python TensorFlow】入门到精通

TensorFlow 是一个开源的机器学习框架&#xff0c;由 Google 开发&#xff0c;广泛应用于机器学习和深度学习领域。本篇将详细介绍 TensorFlow 的基础知识&#xff0c;并通过一系列示例来帮助读者从入门到精通 TensorFlow 的使用。 1. TensorFlow 简介 1.1 什么是 TensorFlow…

设计模式08-行为型模式1(命令模式/迭代器模式/观察者模式/Java)

五、行为型模式 **行为模式的定义&#xff1a;**行为型模式是对不同的对象之间划分职责和算法的抽象化。行为型模式定义了系统中对象之间的交互与通信&#xff0c;研究系统在运行时对象之间的相互通信与协作&#xff0c;进一步明确对象的职责&#xff0c;包括对系统中较为复杂的…

服务器作业2

关闭防火墙 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 配置文件 创建用户nfs-upload [rootlocalhost ~]# useradd -u 210 nfs-upload [rootlocalhost ~]# groupmod -g 210 nfs-upload 创建tom用户 [rootlocalhost ~]# useradd tom 查看to…

【数据结构】堆:建堆/向下调整/上向调整/堆排序/TOK问题

文章目录 前言堆的定义1.大小堆2.完全二叉树 堆的实现堆的数据结构初始化销毁取堆顶元素判断堆是否为空父结点和子结点下标关系&#xff08;重要&#xff09; 向下调整法-O(n)小堆版大堆版 向上调整法-nlog(n)堆的插入和删除插入(调用向上调整)删除(调用向下调整) 构建最大堆向…

java学习1

一、运算符 1.算术运算符 在代码中&#xff0c;如果有小数参与计算&#xff0c;结果有可能不精确 1-1.隐式转换和强制转换 数字进行运算时&#xff0c;数据类型不一样不能运算&#xff0c;需要转成一样的&#xff0c;才能运算 &#xff08;1&#xff09;隐式转换&#xff1a…

20.体育馆使用预约系统(基于springboot和vue的Java项目)

目录 1.系统的受众说明 2.开发环境与技术 2.1 Java语言 2.2 MYSQL数据库 2.3 IDEA开发工具 2.4 Spring Boot框架 3.需求分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.2 系统流程分析 3.3 系统性能需求 3.4 系统功能需求 4.系…

Halcon3D image_points_to_world_plane详解

分三个部分来聊聊这个算子 一,算子的参数介绍 二,算法的计算过程 三,举例实现 第一部分,算子的介绍 image_points_to_world_plane( : : CameraParam, WorldPose, Rows, Cols, Scale : X, Y) 参数介绍: CameraParam,:相机内参 WorldPose 世界坐标系,也叫物体坐标系(成…

【启程Golang之旅】并发编程构建简易聊天系统

欢迎来到Golang的世界&#xff01;在当今快节奏的软件开发领域&#xff0c;选择一种高效、简洁的编程语言至关重要。而在这方面&#xff0c;Golang&#xff08;又称Go&#xff09;无疑是一个备受瞩目的选择。在本文中&#xff0c;带领您探索Golang的世界&#xff0c;一步步地了…

无人机场景 - 目标检测数据集 - 夜间车辆检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍&#xff1a;无人机场景夜间车辆检测数据集&#xff0c;真实场景高质量图片数据&#xff0c;涉及场景丰富&#xff0c;比如夜间无人机场景城市道路行驶车辆图片、夜间无人机场景城市道边停车车辆图片、夜间无人机场景停车场车辆图片、夜间无人机场景小区车辆图片、夜…

HTML学习笔记十

系列笔记目录 第一章 HTML的概述 第二章 URL简介 第三章 网页元素的属性 第四章 html字符编码 第五章 网页的语义结构 第六章 文本标签 第七章 列表标签 第八章 图像标签 第九章 链接标签 第十章 多媒体标签 多媒体标签 系列笔记目录前言一、简介二、常用标签2.1<video>2…

Thumb 汇编指令集,Thumb 指令编码方式,编译 Thumb 汇编代码

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ Thumb指令集 ARM 指令集&#xff1a;最早在 1985 年随第一代 ARM 处理器问世。ARM 指令集一开始是 32 位固定长度的指令&#xff0c;用于各种计算任务。 Thu…

【Clikhouse 探秘】ClickHouse 物化视图:加速大数据分析的新利器

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…

【HarmonyOS NEXT】在 HarmonyOS NEXT 中实现优雅的加载动画

【HarmonyOS NEXT】在 HarmonyOS NEXT 中实现优雅的加载动画 在移动应用开发中&#xff0c;加载动画是提升用户体验的重要工具。在应用程序处理数据或加载页面时&#xff0c;为用户提供视觉反馈尤为关键。在这篇博客中&#xff0c;我们将探讨如何在 HarmonyOS NEXT 中使用 Sta…

Redis高级篇之缓存一致性详细教程

文章目录 0 前言1.缓存双写一致性的理解1.1 缓存按照操作来分 2. 数据库和缓存一致性的几种更新策略2.1 可以停机的情况2.2 我们讨论4种更新策略2.3 解决方案 总结 0 前言 缓存一致性问题在工作中绝对没办法回避的问题&#xff0c;比如&#xff1a;在实际开发过程中&#xff0c…

C++_day2

目录 1. 引用 reference&#xff08;重点&#xff09; 1.1 基础使用 1.2 特性 1.3 引用参数 2. C窄化&#xff08;了解&#xff09; 3. 输入&#xff08;熟悉&#xff09; 4. string 字符串类&#xff08;掌握&#xff09; 4.1 基础使用 4.2 取出元素 4.3 字符串与数字转换 5. …

Vuex的基本使用

文章目录 一、Vuex概述1.是什么2.使用场景3.优势4.注意二、如何构建vuex多组件共享数据环境1.创建项目2.创建三个组件3.源代码三、vuex 的使用 - 创建仓库1.安装 vuex2.新建 `store/index.js` 专门存放 vuex3.创建仓库 `store/index.js`4 在 main.js 中导入挂载到 Vue 实例上5.…

WPF+MVVM案例实战(二十一)- 制作一个侧边弹窗栏(CD类)

文章目录 1、案例效果1、侧边栏分类2、CD类侧边弹窗实现1、样式代码实现2、功能代码实现3 运行效果4、源代码获取1、案例效果 1、侧边栏分类 A类 :左侧弹出侧边栏B类 :右侧弹出侧边栏C类 :顶部弹出侧边栏D类 :底部弹出侧边栏2、CD类侧边弹窗实现 1、样式代码实现 在原有的…