【MySQL探索之旅】MySQL数据表的增删查改(初阶)

在这里插入图片描述

📚博客主页:爱敲代码的小杨.

✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》

❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️

🙏小杨水平有限,欢迎各位大佬指点,相互学习进步!

文章目录

  • 0. 前言
  • 1. 新增(Create)
    • 1.1 单行数据+全列插入
    • 1.2 多行数据+全列插入
    • 1.3 指定列插入
  • 2. 查询(Retrieve)
    • 2.1 全列查询
    • 2.2 指定列查询
    • 2.3 表达式查询
    • 2.4 别名
    • 2.5 去重
    • 2.6 排序
    • 2.7 条件查询
    • 2.8 分页查询
  • 3. 修改(Update)
  • 4. 删除(Delete)

0. 前言

前面我们学习了MySQL数据库和数据表的创建、删除。接下来我们就需要将数据保存在数据表中。今天我们就来学习数据表的增删查改(CRUD)。CRUD即增加(Create),查询(Retrieve),更新(Update),删除(Delete)四个单词的首字母缩写。

1. 新增(Create)

一旦创建数据库和数据表,下一步就是向数据表中添加数据。MySQL 通过 insert 语句来添加一条或多条数据。

语法格式:

insert into 表名 values (表达式, ...., 表达式);

示例:创建学生表

-- 创建学生表 id 
create table student(id int, name varchar(20));

1.1 单行数据+全列插入

-- 插入两条记录,表达式数量必须和定义表的列的数量及顺序一致
insert into student values(1,'张三');
insert into student values(2,'李四');

image-20240313203051521

1.2 多行数据+全列插入

-- 同时插入两条记录
insert into student values(4, '王五'),(5,'赵六');

image-20240313203404822

【注意】:一次插入多条数据,效率往往比多次插入一条数据要高。

1.3 指定列插入

-- 表达式 数量必须和指定列数量及顺序一致
insert into student(name) values('王麻子')

image-20240313203744483

2. 查询(Retrieve)

MySQL 通过 select 语句来查询数据,查询结果通常会生成一个临时表。

语法格式:

select 列名 from 表名;

示例:

-- 创建成绩表 学好 姓名 语文成绩 数学成绩 英语成绩
create table result(id int, name varchar(20), chinese decimal(3,1), math decimal(3,1), english decimal(3,1));-- 插入数据
insert into result values (1,'张三',67, 98, 56);
insert into result values (2,'孙悟空', 87.5, 78, 77);
insert into result values (3,'李四',90,56.5,78);
insert into result values (4,'王五',90,98,78);

2.1 全列查询

-- 通常情况下不建议使用 * 进行全列查询
-- 查询的列越多,意味着需要传输的数据量越大,可能导致数据库崩溃
select * from result;

image-20240313205802296

2.2 指定列查询

-- 指定列的顺序不需要按定义表的顺序来
select name,id from result;

image-20240313210118315

2.3 表达式查询

-- 表达式不包含表达式
select id,name,10 from result;

image-20240313210323819

-- 表达式包含一个字段
select id,name,chinese+10 from result;

image-20240313210627016

-- 表达式包含多个字段
select id,name,chinese+math+english from result;

image-20240313210731457

2.4 别名

为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称,语法:

select 表达式 as 别名 from 表名;
-- 表中列名=别名
select id,name,chinese+math+english as 总分 from result;

image-20240313211014758

2.5 去重

MySQL 使用 distinct关键字对某列数据进行去重:

-- 数学成绩98重复了
select math from result;
select distinct math from result;

image-20240313211244387

2.6 排序

语法:

select 列名 from 表名 order by 列名 [asc | desc];
  1. 没有 order by 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序

  2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面

    select id,name from result order by name;
    select id,name from result order by name desc;
    

    image-20240313214121972

  3. 使用表达式及别名排序

    select id,name,chinese+math+english as 总分 from result order by 总分;
    select id,name,chinese+math+english as 总分 from result order by 总分 desc;
    

    image-20240313214628675

  4. 可以对多个字段进行排序,排序优先级随书写顺序

    -- 查询所有同学的成绩按数学升序、语文降序排序
    select * from result order by math,chinese desc;
    

    image-20240313214827019

2.7 条件查询

学习条件语法之间我们先学习条件查询需要用到的运算符:比较运算符和逻辑运算符

比较运算符:

运算符说明
> < >= <=大于、小于、大于等于、大于等于
=等于 NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=>等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!= <>不等于
between a1 and a2范围匹配,[a1 a2],如果 a1<= value <= a2,返回 TRUE(1)
in(option,…)如果是option中的任意一个,返回TRUE(1)
is null是null
is not null不是null
like模糊匹配。
%表示任意多个(包含0个)任意字符
_表示任意一个字符

逻辑运算符:

运算符说明
and多个条件必须都为 TRUE(1),结果才是 TRUE(1)
or任意一个条件为 TRUE(1), 结果为 TRUE(1)
not条件为 TRUE(1),结果为 FALSE(0)

【注意】:

  1. where 条件可以使用表达式,但是不能使用as 别名
  2. and 的优先级高于or,在同时使用的,需要使用小括号()括起来优先执行的部分。

示例:

  • 基础查询

    -- 查询语文成绩大于80分的同学
    select * from result where chinese > 80;
    -- 查询数学成绩小于英语成绩的同学
    select * from result where math < english;
    -- 查询总成绩大于230的同学
    select id,name,chinese+math+english as 总成绩 from result where chinese+math+english < 230;
    

    image-20240313220918020

  • andor

    -- 查询语文成绩大于80数学成绩小于80的同学
    select * from result where chinese>80 and math<80;
    -- 查询语文成绩大于90或者数学成绩大于80
    select * from result where chinese>90 or math>80;
    
  • 范围查询

    1. between...and...

      -- 查询语文在[80,90]之间的同学
      select * from result where chinese between 80 and 90;-- 替换成 and 实现
      select * from result where chinese >= 80 and chinese <= 90;
      

      image-20240313222846074

    2. in

      -- 查询数学成绩是58 或者 68 或者 78 或者 88 或者 98的同学
      select * from result where math in(58,68,78,88,98);
      -- 替换成 or 实现
      select * from result where math=58 or math=68 or math 78 or math=88 or math=98;
      

      image-20240313223500118

  • 模糊查询:like

    select * from result where name like "张%";
    select * from result where name like "%张";
    select * from result where name like "_张";
    select * from result where name like "张_";
    

    image-20240313224300769

  • null 查询

    -- 查询名字为null的同学
    select * from result where name is null;
    -- 查询名字不为null的同学
    select * from result where name is not null;
    

    image-20240313224557812

2.8 分页查询

语法:

-- 起始下标为0
-- 从0开始筛选n条记录
select 列名 from 表名 [where] [order by] limit n;
-- 从s开始筛选n条记录
select 列名 from 表名 [where] [order by] limit s,n;
-- 从s开始筛选n条记录 建议使用第二种
select 列名 from 表名 [where] [order by] limit n offset s;

案例:

-- 查询表的前3条记录
select * from result order by id limit 3;
-- 查询表的3到6条记录
select * from result order by id limit 3,3;
select * from result order by id limit 3 offset 3;

image-20240313230402479

3. 修改(Update)

语法:

update 表名 set 列名 = 值 where 表达式;

示例:

-- 将张三的数学成绩修改80
update result set math = 80 where name = '张三';
-- 将王五的数学成绩修改90,语文修改95
update result set math = 90,Chinese = 95 where name = '王五';

4. 删除(Delete)

语法:

delete from 表名 [where] [order by] [limit];

示例:

-- 删除张三同学这条记录
delete from result where name = '张三';
-- 删除整张表delete from result;

image-20240313231458383

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

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

相关文章

【Java设计模式】十九、中介者模式

文章目录 1、中介者模式2、案例3、总结 1、中介者模式 如图&#xff1a; 同事类之间关联较多时&#xff0c;整体出现网状结构&#xff0c;耦合度极高。一个对象一变动&#xff0c;好多对象都得改。若变为右边的星形结构&#xff0c;则一个类的变动&#xff0c;只影响自身与中介…

二叉树算法

递归序 每个节点都能回到3次! 相当于2执行完然后返回了代码会往下走,来到3节点 小总结: 也就是4节点先来到自己一次,不会执行if,先调用自己左边的那个函数,但是是null,直接返回。 这个函数执行完了,就会回到自己,调用自己右边的那个函数,结果又是空,又返回,回到…

鸿蒙API9+axios封装一个通用工具类

使用方式&#xff1a; 打开Harmony第三方工具仓&#xff0c;找到axios&#xff0c;如图&#xff1a; 第三方工具仓网址&#xff1a;https://ohpm.openharmony.cn/#/cn/home 在你的项目执行命令&#xff1a;ohpm install ohos/axios 前提是你已经装好了ohpm &#xff0c;如果没…

最适合Oracle数据库的Linux操作系统?

先声明&#xff1a;以下观点仅供参考。我只引用网上的一些观点&#xff0c;包括官网等。 Oracle数据库认证的Linux操作系统 最近老被问到Oracle Linux免费吗&#xff1f;因为用户需要安装Oracle数据库&#xff0c;面临选择操作系统的问题。 首先&#xff0c;Oracle数据库 19…

考研C语言复习进阶(2)

目录 1. 字符指针 2. 指针数组 3. 数组指针 3.1 数组指针的定义 3.2 &数组名VS数组名 4. 函数指针 5. 函数指针数组 6. 指向函数指针数组的指针 7. 回调函数 8.三步辗转法 9. 指针和数组笔试题解析 10. 指针笔试题 指针的主题&#xff0c;我们在初级阶段的《指…

【小沐学C#】C#文件读写方式汇总

文章目录 1、简介2、相关类介绍3、代码示例3.1 FileStream&#xff08;流文件&#xff09;3.2 StreamReader / StreamWriter &#xff08;文本文件&#xff09;3.2.1 StreamReader3.2.2 StreamWriter 3.3 BinaryReader / BinaryWriter &#xff08;二进制文件&#xff09;3.3.1…

地理数据 vs. 3D数据

在表示我们周围的物理世界时&#xff0c;地理空间数据和 3D 建筑数据是两个最常见的选择。 他们在各个行业和项目中发挥着至关重要的作用。 从构建数字孪生到可视化城市景观和创建沉浸式应用程序。 尽管地理空间和 3D 建筑数据有相似之处&#xff0c;但它们不可互换。 虽然地…

国投用什么档案管理系统好

国投适合使用综合档案管理系统。这是因为国投通常规模较大&#xff0c;涉及的业务范围也比较广泛&#xff0c;包括行政管理、财务管理、人力资源管理等。 玖拓智能综合档案管理系统能够整合这些不同部门的档案管理需求&#xff0c;提供统一的档案管理平台&#xff0c;方便国投内…

蓝桥杯 填空 卡片

蓝桥杯 填空题 卡片 解题思路&#xff1a; 我们只需要消耗完卡片的个数即可。 代码示例&#xff1a; #include<bits/stdc.h> using namespace std; int a[10]; bool isEnd(){for(int i0;i<10;i){if(a[i]-1)return false;}return true; } bool getN(int x){while(x){i…

SQLiteC/C++接口详细介绍之sqlite3类(五)

快速跳转文章列表&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;四&#xff09; 下一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;六&#xff09;&#xff08;未发表&#xff09; 14.sqlite3_busy_handle…

2024年云仓酒庄:店中店增项新模式,开启葡萄酒文化新篇章

2024云仓酒庄&#xff1a;店中店增项新模式&#xff0c;开启葡萄酒文化新篇章 在葡萄酒行业蓬勃发展的今天&#xff0c;云仓酒庄以其独特的经营模式和创新思维&#xff0c;在市场中脱颖而出。2024年&#xff0c;云仓酒庄继续深化其战略布局&#xff0c;不仅在多地开设酒庄实体…

运维专题.Docker+Nginx服务器的SSL证书安装

运维专题 DockerNginx服务器的SSL证书安装 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/q…

【C++】—— 代理模式

目录 &#xff08;一&#xff09;什么是代理模式 &#xff08;二&#xff09;为什么使用代理模式 &#xff08;三&#xff09;代理模式实现步奏 &#xff08;四&#xff09;代码示例 &#xff08;五&#xff09;代理模式优缺点 &#xff08;一&#xff09;什么是代理模式 …

备考2025年AMC8竞赛:吃透2000-2024年600道真题(免费赠送真题)

我们继续来随机看五道AMC8的真题和解析&#xff0c;根据实践经验&#xff0c;对于想了解或者加AMC8美国数学竞赛的孩子来说&#xff0c;吃透AMC8历年真题是备考最科学、最有效的方法之一。 即使不参加AMC8竞赛&#xff0c;吃透了历年真题600道和背后的知识体系&#xff0c;那么…

软考高级:需求变更管理过程概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

C++学习随笔(4)——类和对象的初探

本章我们来初步学习一下C中的类和对象&#xff01; 目录 1.类的引入 2.类的定义 类的两种定义方式&#xff1a; 3.类的访问限定符及封装 3.1 访问限定符 3.2 封装 4.类的作用域 5.类的实例化 6.类对象模型 6.1 如何计算类对象的大小 6.2 类对象的存储方式猜测 6.3 …

这个学习Python的神仙网站,后悔没早点发现

Python 作为时下最流行的编程语言&#xff0c;很多初学者都将它作为自学编程的首选。不管是有编程经验的开发者&#xff0c;还是新手小白&#xff0c;在这个 AIGC 时代&#xff0c; Python 都可以带你探索新世界。 入门 Python 绝非难事&#xff0c;但如何让自己坚持学下去是如…

用虚拟机安装win10超详细教程。

前言&#xff1a;安装中有任何疑问&#xff0c;可以在评论区提问&#xff0c;博主身经百战会快速解答小伙伴们的疑问 BT、迅雷下载win10镜像&#xff08;首先要下载win10的镜像&#xff09;&#xff1a;ed2k://|file|cn_windows_10_business_editions_version_1903_updated_sep…

Jmeter---跨越线程组传值

1. 创建两个线程组&#xff0c;并添加请求&#xff0c;设置变量并将其设置为全局变量 2. 设置全局变量&#xff1a;使用函数助手的 setProperty 函数&#xff0c;填写相应内容 3. 设置全局变量&#xff1a;创建一个beanShell&#xff0c;把函数生成的内容粘贴过来 4. 获取全局变…

六 超级数据查看器 讲解稿 详情1 概述

六 超级数据查看器 讲解稿 详情1 概述 点此此处 以新界面 打开B站 当前视频教程 APP下载地址 百度 下载地址 ​ 讲解稿全文&#xff1a; 大家好&#xff0c;今天我们讲解一下超级数据查看器详情界面。由于内容较多&#xff0c;讲解要分为7集&#xff0c;这是第一集 首…