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

MySQL 篇-深入了解 DML、DQL 语言(二)

 🔥博客主页: 【小扳_-CSDN博客】
❤感谢大家点赞👍收藏⭐评论✍

 

文章目录

        1.0 DML、DQL 语言说明

        2.0 使用 DML 实现对数据管理和操作 

        2.1 DML - 增添数据 insert

        2.2 DML - 修改数据 update

        2.3  DML - 删除数据 delete

        3.0 使用 DQL 实现对数据管理和操作 

        3.1 DQL - 基本查询

        3.2 DQL - 条件查询

        3.3 DQL - 分组查询

        3.4 DQL - 排序查询

        3.5 DQL - 分页查询

        4.0 补充相关的函数


        1.0 DML、DQL 语言说明

        DML (Data Manipulation Language) 是用于管理数据库中数据的语言,用于对数据库中的数据进行增加、删除、修改。常见的 DML 操作包括 INSERT、UPDATE、DELETE 。

        DQL (Data Query Language) 是用于查询数据库中数据的语言,用于从数据库中检索所需的数据。常见的 DQL 操作是 SELECT,用于从数据库中检索数据并返回结果集。

        简单来说,DML、DQL 是对表中的数据进行操作,其中 DML 对表中的数据操作有:增添、删除、修改操作,而 DQL 对表中的数据操作有:查询操作。 两者结合使用可以实现对数据库的完整管理和操作。

        

        2.0 使用 DML 实现对数据管理和操作 

        常见的 DML 操作包括 INSERT、UPDATE、DELETE 。

        2.1 DML - 增添数据 insert

一、添加表中数据的 SQL 语句:

-- 指定字段添加数据:
insert into 表名 (字段名1,字段名2) values (值1,值2);-- 全部字段添加数据:
insert into 表名 values (值1,值2,...);-- 批量添加数据 (指定字段):
insert into 表名 (字段名1,字段名2) values (值1,值2),(值1,值2);-- 批量添加数据 (全部字段):
insert into 表名 values (值1,值2,...),(值1,值2,...);

二、实际需求操作:

1)

-- 指定字段增添数据
insert into tb_user (id,username,name) values (2,'张三','李四');

操作结果为:

2)

-- 全部字段增添数据
insert into tb_user values (3,'呆呆','王五',18,'女');

操作结果为:

3)

-- 批量增添指定字段数据
insert into tb_user (id,username,name) values (5,'白白','天天'),(6,'红红','火火');

操作结果为:

4)

-- 批量增添全部字段数据
insert into tb_user values (9,'恍恍','忽忽',20,'男'),(10,'吱吱','喳喳',30,'男');

操作结果为:

三、注意事项:

        1)插入数据时,指定的字段顺序需要与值的顺序是一一对应的。

        2)字符串和日期数据应该包含在引号中。

        3)插入的数据大小,应该在字段的规定范围内。

        2.2 DML - 修改数据 update

一、修改表中数据的 SQL 语句:

-- 修改数据:
update 表名 set 字段名1 = 值1,字段名2 = 值2,...[where 条件];

二、实际需求操作:

1)

-- 修改表中的指定的数据:
update tb_user set name = '恐龙' where id = 2;

该操作结果为:

2)

-- 修改表中的全部数据:
update tb_user set gender = '女';

该操作结果为:

三、注意事项:

        修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。

        2.3  DML - 删除数据 delete

一、删除表中数据的 SQL 语句:

-- 删除数据:
delete from 表名 [where 条件];

二、实际需要操作:

1)

-- 删除表中的指定数据:
delete from tb_user where id = 2;

该操作结果为:

2)

-- 删除表中全部数据;
delete from tb_user;

该操作结果为:

三、注意事项:

        - delete 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。

        - delete 语句不能单独删除某一个字段的值(如果要操作,可以使用 update , 将该字段的值置为 null )。

        3.0 使用 DQL 实现对数据管理和操作 

        对表中的数据进行查询操作,主要的操作方式有:基本查询、条件查询、分组查询、排序查询、分页查询。

        3.1 DQL - 基本查询

一、对表中数据进行基本查询的 SQL 语句:

-- 查询多个字段:
select 字段名1,字段名2,字段名3 from 表名;-- 查询所有字段(通配符):
select * from 表名;-- 设置别名:
select 字段1 [as 别名1], 字段2 [as 别名2] from 表名;-- 去除重复记录:
select distinct 字段列表 from 表名;

二、实际需求操作:

1)

-- 基本查询:查询表中全部数据
select  id, username, name, age, gender from tb_user;
-- 也可以用 * 来替代 id, username, name, age, gender
select * from tb_user;

该操作结果为:

2)

-- 设置别名
select  name as 姓名,gender as 性别 from tb_user;

该操作结果为:

3)

-- 去除重复记录
select distinct gender from tb_user;

该操作结果为:

三、注意事项:

        * 号代表查询所有字段,在实际开发中尽量少用(不直观、影响效率)。

        3.2 DQL - 条件查询

一、对表中数据进行条件查询的 SQL 语句:

-- 条件查询:
select 字段列表 from 表名 where 条件列表;

 

比较运算符:

        >:大于

        >=:大于等于

        <:小于

        <=:小于等于

        =:等于

        <> 或者 !=:不等于

        between...and...:在某个范围之内(含最小、最大值)

        in(...):在 in 之后的列表中的值,多选一

        like 占位符:模糊匹配(_匹配单个字符,% 匹配任意个字符)

        is null:是 null

逻辑运算符:

        and 或 &&:并且(多个条件同时成立)

        or 或 || :或者(多个条件任意一个成立)

        not 或 ! :非,不是

二、实际需求操作:

-- 条件查询:查询表中指定的数据
select id, username, name, age, gender from tb_user where id = 2;
-- 同样可以用 * 来替代 id, username, name, age, gender
select * from tb_user where id = 2;-- 查询 age 为 null 的数据
select * from tb_user where age is null;-- 查询姓李的数据
select * from tb_user where name like '李%';-- 查询姓名为两个字的数据
select * from tb_user where name like '__';-- 查询id为:2,3的数据
select * from tb_user where id in (2,3);-- 查询姓名为李四且年龄为null的数据
select * from tb_user where age is null and name = '李四';

        具体操作结果就不过多赘述了。

        3.3 DQL - 分组查询

一、对表中数据进行分组查询的 SQL 语句:

-- 分组查询:
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];

补充聚合函数说明:        

        聚合函数介绍:将一列数据作为一个整体,进行纵向计算。

        语法:select 聚合函数(字段列表) from 表名;

        主要的聚合函数:

                - count:统计数量

                - max:最大值

                - min:最小值

                - avg:平均数

                - sum:求和

二、实际需求操作:

1)

-- 根据性别分组,分别统计男、女人数总量
select gender '性别' , count(gender) '数量' from tb_user group by gender;

该操作结果为:

2)

-- 对分完组之后的表进行过滤 having
select gender '性别' , count(gender) '数量' from tb_user group by gender having count(gender) > 2;

该操作结果为:

三、注意事项:

        分组之后,查询的字段一般为聚合函数与分组字段,查询其他字段无任何意义。

        执行顺序:where > 聚合函数 > having 。

        where 与 having 区别:

        (1)执行时机不同:where 是分组之前进行过滤,不满足 where 条件,不参与分组;而 having 是分组之后对结果进行过滤。

        (2)判断条件不同:where 不能对聚合函数进行判断,而 having 可以。

        3.4 DQL - 排序查询

一、对表中数据进行排序的 SQL 语句:

-- 排序查询:
select 字段列表 from 表名 [where 条件列表] [group by 分组字段] order by 字段1 排序方式1,字段2 排序方式2...;

排序方式:

        升序为:asc(默认值)

        降序为:desc

二、实际需求操作:

1)

​
-- 按照 id 进行降序排序
select * from tb_user order by id desc;​

该操作结果为:

2)

-- 按照年龄进行降序排序,若年龄相同则按照id降序排序
select * from tb_user order by name desc, id desc;

该操作结果为:

三、注意事项:

        如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。

        3.5 DQL - 分页查询

一、对表中数据进行分页查询的 SQL 语句:

-- 分页查询
select 字段列表 from 表名 limit 起始索引,查询记录数;

        默认起始索引为 0 ,即从 0 开始,公式:起始索引 = (页码 - 1)* 记录数 。

二、实际需求操作:

-- 查询第2页数据,则该起始索引为 3
select * from tb_user limit 3,3;

该操作结果为:

三、注意事项:

        (1) 起始索引从 0 开始,起始索引 = (查询页码 - 1) * 每页显示记录数。

        (2) 分页查询时数据库的方言,不同的数据库有不同都实现,MySQL 中是 limit 。

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

        4.0 补充相关的函数

        

if (表达式,tvalue,fvalue):当表达式为 true 时,取值 tvalue;当表达式为 false 时,取值 fvaluecase 表达式 when value1 then result1 [when value2 then result2] [else result] end

 

相关文章:

MySQL 篇-深入了解 DML、DQL 语言(二)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 DML、DQL 语言说明 2.0 使用 DML 实现对数据管理和操作 2.1 DML - 增添数据 insert 2.2 DML - 修改数据 update 2.3 DML - 删除数据 delete 3.0 使用 DQL 实现对…...

端智能:面向手机计算环境的端云协同AI技术创新

近年来&#xff0c;随着移动端设备软硬件能力的进步&#xff0c;移动端的算力有了很大提升&#xff0c;同时面向移动端的机器学习框架和模型轻量化技术越来越成熟&#xff0c;端上的AI能力逐渐进入大众视野&#xff0c;端智能在电商领域也开始逐步走向规模化应用。通过持续探索…...

PHP函数 “password_hash“ 哈希密码

哈希函数是一种将输入转换为固定长度字符串的方法&#xff0c;这个过程是不可逆的&#xff0c;也就是无法从哈希值还原出原始输入。通过将密码进行哈希处理&#xff0c;即使数据库泄露&#xff0c;攻击者也无法简单地获取到用户密码。 在PHP中&#xff0c;我们可以使用 "…...

第十一天-Excel的操作

目录 1.xlrd-Excel的读模块 安装 使用 获取工作簿 读取工作簿的内容 xlsxwriter-Excel的写模块 安装 使用 生成图表 add_series参数 图表的样式 demo&#xff1a;生成图表 Excel的操作在python中有多个模块&#xff0c;为了能够快速使用&#xff0c;选择了相对简单…...

【java任意文件漏洞修复,使用文件魔数解决】

java任意文件漏洞修复&#xff0c;使用文件魔数解决 背景&#xff1a; 客户进行渗透测试&#xff0c;验证上传文件的程序没有对上传文件作任何过滤&#xff0c;导致可以上传任意文件到服务器&#xff0c;甚至是病毒文件和Webshell木马文件。 解决办法&#xff1a;对于上传的附件…...

LeetCode 热题 100 | 二叉树(二)

目录 1 543. 二叉树的直径 2 102. 二叉树的层序遍历 3 108. 将有序数组转换为二叉搜索树 菜鸟做题&#xff0c;语言是 C 1 543. 二叉树的直径 这道题和 124. 二叉树中的最大路径和 太像了 题眼&#xff1a;二叉树的 直径 是指树中任意两个节点之间 最长路径的长度 。…...

mini-spring|定义标记类型Aware接口,实现感知容器对象

**前言&#xff1a;**如果我们想获得 Spring 框架提供的 BeanFactory、ApplicationContext、BeanClassLoader等这些能力做一些扩展框架的使用时该怎么操作呢。所以我们本章节希望在 Spring 框架中提供一种能感知容器操作的接口&#xff0c;如果谁实现了这样的一个接口&#xff…...

83. 删除排序链表中的重复元素

给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 输入:head = [1,1,2] 输出:[1,2] 输入:head = [1,1,2,3,3] 输出:[1,2,3] 提示: 链表中节点数目在范围 [0, 300] 内-100 <= Node.val <= 100题目数据保证链表已…...

贪心算法

贪心算法 例题1、股票买卖题目信息思路题解 2、货仓选址题目信息思路题解 3、糖果传递题目信息思路题解 4、雷达设备题目信息思路题解 例题 1、股票买卖 题目信息 思路 相邻两天&#xff0c;后>前&#xff0c;则交易一次 题解 #include <bits/stdc.h> #define en…...

MySQL基本知识

目录 一&#xff0c;MySQL的元数据库 1.1.什么是元数据库 1.2.有哪些元数据库 1.3.切换数据库 二&#xff0c;账户管理 2.1.设置权限 2.2.授权用户 2.3.查看权限 2.4.撤销权限 三&#xff0c;MySQL引擎 3.1什么是数据库引擎 3.2.查看数据引擎 3.3.MyISAM引擎 3.4…...

Vue3 (unplugin-auto-import自动导入的使用)

安装 参考链接 npm i -D unplugin-auto-importvite.config.ts里面配置 import AutoImport from unplugin-auto-import/viteAutoImport({imports:[ vue,vue-router]})重新运行项目会生成一个auto-imports.d.ts的文件 /* eslint-disable */ /* prettier-ignore */ // ts-nochec…...

【漏洞复现】大华智慧园区综合管理平台信息泄露漏洞

Nx01 产品简介 大华智慧园区综合管理平台是一款综合管理平台&#xff0c;具备园区运营、资源调配和智能服务等功能。该平台旨在协助优化园区资源分配&#xff0c;满足多元化的管理需求&#xff0c;同时通过提供智能服务&#xff0c;增强使用体验。 Nx02 漏洞描述 大华智慧园区…...

JavaScript的书写方式

JavaScript的书写方式 目前较为流行的是第二种和第三种&#xff0c;第一种很少见。在第二种和第三种推荐使用第三种&#xff0c;因为在日常开发/工作中&#xff0c;第三种是最为常见的 1.行内式 把JS代码嵌入到html元素内部 示例代码 运行效果 由于JS中字符串常量可以使用单引…...

第二十篇-推荐-纯CPU(E5-2680)推理-llama.cpp-qwen1_5-72b-chat-q4_k_m.gguf

环境 系统&#xff1a;CentOS-7 CPU&#xff1a; Intel Xeon CPU E5-2680 v4 2.40GHz 14C28T 内存&#xff1a; 48G DDR3 依赖安装 make --version GNU Make 4.3gcc --version gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9)g --version g (GCC) 11.2.1 20220127 (Red Hat …...

CSS常见选择器

CSS常见选择器 在Web开发中&#xff0c;层叠样式表&#xff08;CSS&#xff09;是用于描述HTML或XML&#xff08;包括SVG和XHTML等其他XML语言&#xff09;文档的样式的语言。CSS描述了文档的表现形式&#xff0c;包括布局、颜色和字体等。在CSS中&#xff0c;选择器是一种模式…...

[LWC] Components Communication

目录 Overview ​Summary Sample Code 1. Parent -> Child - Public Setter / Property / Function a. Public Property b. Public getters and setters c. Public Methods 2. Child -> Parent - Custom Event 3. Unrelated Components - LMS (Lightning Message…...

Unity中URP实现水体(水下的扭曲)

文章目录 前言一、使用一张法线纹理&#xff0c;作为水下扭曲的纹理1、在属性面板定义一个纹理&#xff0c;用于传入法线贴图2、在Pass中&#xff0c;定义对应的纹理和采样器3、在常量缓冲区&#xff0c;申明修改 Tilling 和 Offset 的ST4、在顶点着色器&#xff0c;计算得到 应…...

anaconda指定目录创建环境无效/环境无法创建到指定位置

已经设置目录到D盘 创建环境时还是分配到C盘 可能是指定位置没有开启读写权限&#xff0c;如我在这里安装到了anaconda文件夹&#xff0c;则打开该文件夹的属性->安全->编辑 allusers下的权限全都打勾...

《Docker极简教程》--Docker在生产环境的应用--Docker在生产环境的部署

一、准备工作 1.1 硬件和基础设施要求 硬件和基础设施要求是在部署 Docker 到生产环境之前需要认真考虑和准备的重要方面&#xff0c;以下是一般性的要求&#xff1a; 服务器硬件&#xff1a; CPU&#xff1a;建议使用多核处理器&#xff0c;以支持同时运行多个容器。内存&a…...

算法D31 | 贪心算法1 | 455.分发饼干 376. 摆动序列 53. 最大子序和

贪心算法其实就是没有什么规律可言&#xff0c;所以大家了解贪心算法 就了解它没有规律的本质就够了。 不用花心思去研究其规律&#xff0c; 没有思路就立刻看题解。 基本贪心的题目 有两个极端&#xff0c;要不就是特简单&#xff0c;要不就是死活想不出来。 学完贪心之后再…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

SpringAI实战:ChatModel智能对话全解

一、引言&#xff1a;Spring AI 与 Chat Model 的核心价值 &#x1f680; 在 Java 生态中集成大模型能力&#xff0c;Spring AI 提供了高效的解决方案 &#x1f916;。其中 Chat Model 作为核心交互组件&#xff0c;通过标准化接口简化了与大语言模型&#xff08;LLM&#xff0…...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备&#xff0c;并且图标都没了 错误案例 往上一顿搜索&#xff0c;试了很多博客都不行&#xff0c;比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动&#xff0c;重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...