MySQL数据库 -- 表的增删查改

news2025/7/5 7:12:38

                       

       今天来讲MySQL数据库的表增删查改操作。今天主要是通过栗子来演示语法使用的,话不多说,直奔主题~

表的增删查改:

CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除)

目录

Create

单行数据 + 全列插入 

多行数据 + 指定列插入 

 插入否则更新

替换

​编辑Retrieve

select列 

全列查询

指定列查询

 查询字段为表达式

 结果去重

where条件

>, >=, <, <= 

=, <=>

BETWEEN a0 AND a1

 IN (option, ...)

LIKE 

语文成绩好于英语成绩的同学 

总分在 200 分以下的同学 

 语文成绩 > 80 并且不姓孙的同学

 孙某同学,否则要求总成绩 > 200 并且 语文成绩 < 数学成绩 并且 英语成绩 > 80 

NULL的查询 

结果排序 

同学及 qq 号,按 qq 号排序显示

查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示 

查询同学及总分,由高到低 

查询姓孙的同学或者姓曹的同学数学成绩,结果按数学成绩由高到低显示 

筛选分页结果 

limit n

limit s,n 

 limit n offset s

Update

将孙悟空同学的数学成绩变更为 80 分

将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分 

将总成绩倒数前三的 3 位同学的数学成绩加上 30 分 

将所有同学的语文成绩更新为原来的 2 倍 

Delete 

删除数据

删除孙悟空同学的考试成绩

删除整张表数据 

截断表

delete from 和 truncate [table] 

插入查询结果

案例:删除表中的的重复复记录,重复的数据只能有一份

聚合函数

 统计班级共有多少同学

统计班级收集的 qq 号有多少 

 统计本次考试的数学成绩分数个数

统计数学成绩总分 

统计平均总分 

 返回英语最高分 

统计平均总分 

返回 > 70 分以上的数学最低分 

group by子句的使用 

测试数据导入

如何显示每个部门的平均工资和最高工资 

显示每个部门的每种岗位的平均工资和最低工资 

显示平均工资低于2000的部门和它的平均工资 

where 和having比较


Create

语法

insert [into] table_name[(column [, column] ...)] values (value_list) [, (value_list)] ...

创建案例:

单行数据 + 全列插入 

举个栗子:

多行数据 + 指定列插入 

举个栗子:

 插入否则更新

由于 主键 或者 唯一键 对应的值已经存在而导致插入失败

选择同步性更新语法:

insert ... on duplicate key update column = value [, column = value] ...

举个栗子:

        我们插入数据时有主键或者唯一键冲突了,我们使用on duplicate key update后,哪一个键先冲突,就更新那一行的数据内容,按照update后的内容进行更新。 

替换

-- 主键 或者 唯一键 没有冲突,则直接插入;
-- 主键 或者 唯一键 如果冲突,则删除后再插入

REPLACE INTO students (sn, name) VALUES (20001, '曹阿瞒');
Query OK, 2 rows affected (0.00 sec)
-- 1 row affected: 表中没有冲突数据,数据被插入
-- 2 row affected: 表中有冲突数据,删除后重新插入

举个栗子:

多个列数据冲突时:

Retrieve

准备工作,创建表结构:

select列 

全列查询

-- 通常情况下不建议使用 * 进行全列查询
-- 1. 查询的列越多,意味着需要传输的数据量越大,会导致数据大量刷屏,效率降低;
-- 2. 可能会影响到索引的使用。

指定列查询

 查询字段为表达式

 结果去重

举个栗子:

注意distinct后面跟一个列名和多个列名的情况。 

where条件

关于比较运算符如下,我们下面通过场景来学习。

>, >=, <, <= 

 

注意,MySQL中比较等于时,是用=来比较的,和语言中的等号是不同的。 

=, <=>

那判断不为NULL呢?

        在这里判断是否为NULL虽说不止一种写法,但是我们只要使用is noll 和is not null来判断就好了,这样降低自己的学习成本,还看起来比较主观。 

BETWEEN a0 AND a1

逻辑运算符:

 IN (option, ...)

LIKE 

语文成绩好于英语成绩的同学 

总分在 200 分以下的同学 

 我们要注意where和order by语句的执行顺序。

where语句中不能取别名

 语文成绩 > 80 并且不姓孙的同学

 孙某同学,否则要求总成绩 > 200 并且 语文成绩 < 数学成绩 并且 英语成绩 > 80 

NULL的查询 

结果排序 

同学及 qq 号,按 qq 号排序显示

查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示 

查询同学及总分,由高到低 

查询姓孙的同学或者姓曹的同学数学成绩,结果按数学成绩由高到低显示 

筛选分页结果 

-- 起始下标为 0
-- 从 0 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;


-- 从 s 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;


-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;

limit n

limit s,n 

      

 limit n offset s

Update

UPDATE table_name SET column = expr [, column = expr ...] [WHERE ...] [ORDER BY ...] [LIMIT ...]

将孙悟空同学的数学成绩变更为 80 分

将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分 

将总成绩倒数前三的 3 位同学的数学成绩加上 30 分 

将所有同学的语文成绩更新为原来的 2 倍 

注意一个细节:

Delete 

删除数据

DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]

删除孙悟空同学的考试成绩

删除整张表数据 

        我们使用delete from 表名删除表数据后,对于表结构是不改变的。 如auto_increment字段记录的默认值是不变的。

截断表

truncate [TABLE] table_name

举个栗子:

delete from 和 truncate [table] 

        delete from操作会被记录在bin log日志中,而truncate操作是不会记录在bin log记录中,说明后者是不适合数据备份的。 

插入查询结果

案例:删除表中的的重复复记录,重复的数据只能有一份

去重操作:

聚合函数

 统计班级共有多少同学

统计班级收集的 qq 号有多少 

          

 统计本次考试的数学成绩分数个数

统计数学成绩总分 

统计平均总分 

 返回英语最高分 

统计平均总分 

返回 > 70 分以上的数学最低分 

group by子句的使用 

测试数据导入

如何显示每个部门的平均工资和最高工资 

显示每个部门的每种岗位的平均工资和最低工资 

显示平均工资低于2000的部门和它的平均工资 

        注意,对于这种情况分组是排到第一步的,where使用就不合适了,因为where几乎是先执行的子句,这时候我们只能借助having来帮助我们筛选。 

where 和having比较

 where和having可以一起配合使用

 给博主点个赞呗~

                            

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

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

相关文章

你适合做自动化测试吗?

上一篇对于自动化测试有了基础了解&#xff0c;这一篇我们来看看你适合做自动化测试吗&#xff1f; 你适合走自动化测试这条路吗&#xff1f; 不管是UI自动化还是接口自动化&#xff0c;肯定的一点是&#xff0c;必须有代码基础&#xff0c;不管是java还是python。所以如果你…

Docker 安装Oracle 11g免费版—无坑小白白版(值得拥有)

​ Docker 安装Oracle 11g免费版—无坑小白白版&#xff08;值得拥有&#xff09; 第一步&#xff1a;登录自己的服务器&#xff08;root用户/或授权用户&#xff09; 第二步&#xff1a;下载 1、下载镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_…

基于概率距离削减法、蒙特卡洛削减法的风光场景不确定性削减附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

MySQL数据库期末考试试题及参考答案(01)

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 一、 填空题 ___在20世纪80年代被美国国家标准学会和国际标准化组织定义为关系型数据库语言的标准。数据模型所描述的内容包括3个部分&#xff0c;分别是数据结构、数据操作…

[论文阅读] Generative Adversarial Networks for Video-to-Video Domain Adaptation

[论文地址] [代码] [AAAI 20] Abstract 来自多中心的内窥镜视频通常有不同的成像条件&#xff0c;如颜色和光照&#xff0c;这使得在一个领域训练的模型通常不能很好地推广到另一个领域。领域适应是解决这一问题的潜在方案之一。然而&#xff0c;现有的工作很少关注基于视频的…

数据结构与算法简介

什么是数据结构 数据结构的研究对象 研究一组有特定关系的数据的存储与处理通过抽象的方法 数据结构的研究内容 数据之间的逻辑关系&#xff1a;存储实现&#xff08;如何存储某种逻辑关系&#xff09; 集合结构&#xff1a;数据元素放在一起&#xff0c;但是元素间没有关系…

Python-Flask 蓝图以及钩子函数(5)

Flask 蓝图一、初识蓝图的页面结构二、创建蓝图的步骤三、钩子函数官方解释&#xff1a;Blueprint 是一种组织一组相关视图及其他代码的方式。与把视图及其他 代码直接注册到应用的方式不同&#xff0c;蓝图方式是把它们注册到蓝图&#xff0c;然后在工厂函数中 把蓝图注册到应…

Git 用法指导

1. 安装 Git 1. linux 安装 Git # 试着输入git&#xff0c;看看系统有没有安装Git&#xff1a; $ git The program git is currently not installed. You can install it by typing: sudo apt-get install git# 安装命令 sudo apt-get install git 如果是其他Linux版本&#…

Vue | Vue.js 高级语法系列

&#x1f5a5;️ Vue.js专栏&#xff1a;Vue.js 高级语法系列 &#x1f9d1;‍&#x1f4bc; 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; ✨ 个人主页&#xff1a;CoderHing的个人主页 &#x1f340; 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️ &#x1f449;…

都说测试行业饱和了,为什么我们公司给初级测试开到了12K?

故事起因&#xff1a; 最近我有个刚毕业的学生问我说&#xff1a;我感觉现在测试行业已经饱和了&#xff0c;也不是说饱和了&#xff0c;是初级的测试根本就没有公司要&#xff0c;哪怕你不要工资也没公司要你&#xff0c;测试刚学出来&#xff0c;没有任何的项目经验和工作经验…

字符串c++练习(KMP等)

反转字符串 文章目录反转字符串反转字符串||替换空格翻转字符串里的单词左旋转字符串找出字符串中第一个匹配项的下标【模板】KMP字符串匹配题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示样例 1 解释数据规模与约定重复的字符串[BOI2009]Radio Transmission 无线…

【Linux】Linux中的环境变量及其意义

目录 一、环境变量的概念 1、让自己写的可执行程序无需路径即可执行的方法 1.1将可执行程序拷贝至/usr/bin/目录下 1.2将test的绝对路径添加至PATH中 二、环境变量相关的命令 三、getenv()&#xff08;获取环境变量&#xff09; 四、main函数命令行参数的解析及意义 1、…

如何基于TS在React中使用Redux Toolkit

什么是Redux Redux 是 JavaScript 应用程序的状态容器&#xff0c;提供可预测的状态管理.可以帮助你开发出行为稳定可预测的、运行于不同的环境&#xff08;客户端、服务器、原生应用&#xff09;、易于测试的应用程序。不仅于此&#xff0c;它还提供超爽的开发体验&#xff0…

【Pytorch with fastai】第 3 章 :数据伦理

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

CentOS7安装MySQL(亲测版)

1 Yum Repository下载安装包文件 [rootlocalhost home]# wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm2 使用yum安装mysql yum install mysql-server执行后报错&#xff0c;官方5.7版本默认没有GPG key, 需要在上述命令上 添加 --nogpgcheck …

图解计算机内部的高速公路 —— 总线系统

本文已收录到 GitHub AndroidFamily&#xff0c;有 Android 进阶知识体系&#xff0c;欢迎 Star。技术和职场问题&#xff0c;请关注公众号 [彭旭锐] 进 Android 面试交流群。 前言 大家好&#xff0c;我是小彭。 在之前的文章中&#xff0c;我们聊到了计算机的冯诺依曼计算…

2022-09-17青少年软件编程(C语言)等级考试试卷(五级)解析

​​​​​​T1. 城堡问题 【题目描述】 图1是一个城堡的地形图。请你编写一个程序,计算城堡一共有多少房间,最大的房间有多大。城堡被分割成mn(m≤50,n≤50)个方块,每个方块可以有0~4面墙。 【输入】 程序从标准输入设备读入数据。第1、2行每行1个整数,分别是南北向、东西…

MySQL数据库基础

文章目录一. 数据库的操作二. 数据库中常用的数据类型三.表的操作四. 总结一. 数据库的操作 1. 创建数据库 创建语法1 crate database [这里填入表名称]; 说明&#xff1a;当我们创建数据库没有指定字符集和校验规则时&#xff0c;系统使用默认字符集&#xff1a;utf8&#xf…

(十二)Jmeter测试dubbo接口

一、概览 先去https://github.com/thubbo/jmeter-plugins-for-apache-dubbo下载扩展jar包将下载的jar包复制到 jmeter/lib/ext/下重启Jmeter创建Dubbo取样器 二、实操 添加dubbo取样器 输入请求详情 参数类型可以在 https://github.com/thubbo/jmeter-plugins-for-apache-…

如何在Retail Link网站上与Walmart进行EDI连接测试?

本文主要介绍通过沃尔玛Walmart供应商平台Retail Link与沃尔玛Walmart建立EDI连接的流程。沃尔玛Walmart作为零售行业中最先使用AS2协议传输EDI数据的企业之一&#xff0c;其AS2经过多年的使用检验&#xff0c;具有安全连接、灵活数据传输等优点&#xff0c;使其经久不衰&#…