MySQL表的增删查改以及基本查询样例

news2025/1/12 7:46:56

文章目录

  • 表的增删查改
    • 创建表
    • 插入单行全列数据
    • 插入多行指定列数据
    • 插入失败则更新
    • 替换
  • select
    • 全列查询
    • 指定列查询
    • 查询字段为表达式
    • 为查询结果指定别名
    • 查询结果去重
  • where
    • 数学小于60的
    • 英语在70到100之间的
    • 名字为王开头的
    • 总分在 200 分以下的
    • 语文成绩 > 80 并且不姓王的
  • 结果排序
    • 升序
    • 降序
  • 筛选分页
  • update
  • 清空表
  • 聚合函数
  • group by
    • 按照组找出薪资最高和平均薪资
    • 显示平均工资低于2000的部门和它的平均工资
  • having和where的区别

表的增删查改

创建表

create table people( 
id int unsigned primary key not null, 
name varchar(20) not null, 
qq varchar(20), 
gender char(1) default '男'
);

一列:列名+类型+约束条件

image-20230825022803359

插入单行全列数据

insert into people values(100, '张三', '12345', '男');

image-20230825023040174

插入多行指定列数据

不指定的列必须能够置为NULL,或者有默认值

insert into people(id, name, gender) values(101, '李四', '男'), 
											(102, '王五', '女');

image-20230825023521859

插入失败则更新

如果出现了由于 主键 或者 唯一键 对应的值已经存在而导致插入失败,可以选择性的进行同步更新操作。

on duplicate key update XXX = XXX, XXX = XXX;

 insert into people(id, name, qq, gender) values(101, '赵六', '123444', '女') 
 on duplicate key update name = '赵六', qq = '123444', gender = '女';

image-20230825024002708

0 row affected: 表中有冲突数据,但冲突数据的值和 update 的值相等

1 row affected: 表中没有冲突数据,数据被插入

2 row affected: 表中有冲突数据,并且数据已经被更新

替换

如果出现了由于 主键 或者 唯一键 对应的值已经存在而导致插入失败,可以删除旧数据插入新数据

不再使用insert 选用 replace

replace into people(id, name, qq, gender) values(100, '赵六', '123444', '女');

image-20230825024408170

1 row affected: 表中没有冲突数据,数据被插入

2 row affected: 表中有冲突数据,删除后重新插入

select

为了下列的演示方便,这里使用一张新的表,具体如图

image-20230825030208058

表中的数据可随意插入测试

全列查询

星号代表全部列,from后面跟上需要查询的表名

select * from people;

image-20230825024640143

指定列查询

指定列的顺序不需要按定义表的顺序来

select id, name from people;

image-20230825024744291

查询字段为表达式

表达式不包含字段 :

select id, name, 10 from stu;

image-20230825030226589

表达式包含一个字段:

select id, name, 10 + math from stu;

image-20230825030323985

表达式包含多个字段:

select id, name, chinese + math from stu;

image-20230825030414076

为查询结果指定别名

select id, name, chinese + math + english 总成绩 from stu;

image-20230825030518110

查询结果去重

select distinct math from stu;

where

where 可以指定条件去查询,包括运算符,逻辑运算符等

运算符说明
>, >=, <, <=大于,大于等于,小于,小于等于
=等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=>等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!=, <>不等于
BETWEEN a0 AND a1范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 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)

数学小于60的

select name, math from stu where math < 60;

image-20230825030949651

英语在70到100之间的

select name, english from stu where english >= 70 and english <= 100;

image-20230825031124818

使用其他的逻辑运算符同理

名字为王开头的

% 匹配任意多个(包括 0 个)任意字符

_ 匹配严格的一个任意字符,使用该符号后面只能有一个字符

select name from stu where name like '王%';

image-20230825031335876

总分在 200 分以下的

需要特别注意别名不能用在 WHERE 条件中

select name, math + chinese + english 总分 from stu where math + chinese + english < 200;

image-20230825031528688

语文成绩 > 80 并且不姓王的

select name, chinese from stu where chinese > 80 and name not like '王%';

image-20230825031710798

结果排序

升序

order by XXX — XXX即为需要排序的列

NULL值比任何值都小

select name, math from stu order by math;

image-20230825032021739

降序

order by XXX desc

select name, math from stu order by math desc;

image-20230825032137945

筛选分页

可以指定从哪一列开始显示几行数据,

limit 跟上显示几行数据,offset 跟上开始的列

select * from stu limit 3 offset 0;

image-20230825032921191

update

更新指定的数据

注意不支持+=的写法

update stu set math = math + 30;

image-20230825034004278

可以搭配where使用

清空表

delete:

使用delete清空表,不会更新自增长值

truncate:

只会清空表,并且不可回滚,更新自增长值

聚合函数

COUNT([DISTINCT] expr)返回查询到的数据的 数量
SUM([DISTINCT] expr)返回查询到的数据的 总和,不是数字没有意义
AVG([DISTINCT] expr)返回查询到的数据的 平均值,不是数字没有意义
MAX([DISTINCT] expr)返回查询到的数据的 最大值,不是数字没有意义
MIN([DISTINCT] expr)返回查询到的数据的 最小值,不是数字没有意义

group by

为了方便体现出效果,新增三张表,分别对应员工信息,部门信息,薪资等级。

image-20230901224331350

其中员工信息中的部门编号为外键,与部门信息表关联。

按照组找出薪资最高和平均薪资

select deptno, max(sal) 最高薪资, avg(sal) 平均 from emp group by deptno;

指定列名分组,根据列中不同行的数据进行分组。

image-20230901224918713

分组也可以已多个列作为条件,已多个列作为条件分组时就会出现一个列出现多次的情况

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

select deptno, avg(sal) 平均 from emp group by deptno having 平均 < 2000;

image-20230901225927818

having通常和group by一起用,作用和where类似

having和where的区别

两者都能进行条件筛选。

但是where不能用来做分组后的条件筛选,而having可以充当where使用(不推荐)。因为一张表也可以看作是分组后只有一张表所以having也可以使用。

可以先用where对整体进行筛选之后再分组聚合统计之后再用having进行分组后的条件筛选。二者可以结合使用

image-20230901230705389

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

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

相关文章

IDEA设置文件编码

IDEA设置文件编码 File->Settings->Editor->File Encodings 均设置为utf-8 新项目 设置 文件编码 点击New Projects Setup 再点击Settings for New Projects File->Settings->Editor->File Encodings 均设置为utf-8

Spring-TX 事务

目录 一、事务的种类 二、Spring事务管理器 三、事务注解使用 四、事务注解属性 一、事务的种类 1.编程式事务 所谓编程式事务就是用代码手写事务&#xff0c;包含了事务的开始&#xff0c;具体事务&#xff0c;事务的提交和事务的回滚。在这期间就会产生一些冗余问题&am…

Redis 7 第六讲 主从模式(replica)

🌹🌹🌹 此篇开始进入高级篇范围(❤艸`❤) 理论 即主从复制,master以写为主,Slave以读为主。当master数据变化的时候,自动将新的数据异步同步到其它slave数据库。 使用场景 读写分离 容灾备份数据备份水平扩容主从架构 演示案例 注:masterauth、replicaof主…

pytorch如何使用Focal Loss

Focal loss 是 文章 Focal Loss for Dense Object Detection 中提出对简单样本的进行decay的一种损失函数。是对标准的Cross Entropy Loss 的一种改进。 FL对于简单样本&#xff08;p比较大&#xff09;回应较小的loss。 如论文中的图1&#xff0c; 在p0.6时&#xff0c; 标准的…

openGauss学习笔记-57 openGauss 高级特性-并行查询

文章目录 openGauss学习笔记-57 openGauss 高级特性-并行查询57.1 适用场景与限制57.2 资源对SMP性能的影响57.3 其他因素对SMP性能的影响57.4 配置步骤 openGauss学习笔记-57 openGauss 高级特性-并行查询 openGauss的SMP并行技术是一种利用计算机多核CPU架构来实现多线程并行…

使用Vue3和Vite升级你的Vue2+Webpack项目

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

十一、做高并发内存池项目过程中遇到的bug以及调试bug的方法和心得

十一、做高并发内存池项目过程中遇到的bug以及调试bug的方法和心得 第一个bug是内存问题&#xff0c;程序直接崩溃&#xff0c;问题出现在&#xff1a;GetOneSpan函数中的切分span的时候结尾的span1的next没有置空。 第二个bug是还小内存块给span的时候找不到小内存所属的spa…

深入理解 JVM 之——Java 内存区域与溢出异常

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 本篇为深入理解 Java 虚拟机第二章内容&#xff0c;推荐在学习前先掌握基础的 Linux 操作、编译原理、计算机组成原理等计算机基础以及扎实的 C/C 功底。 该系列的 GitHub 仓库&#xff1a;https://github…

LVS 实现四层负载均衡项目实战--DR模式(直接路由Direct Routing)

一、原理 负载均衡器和RS都使用同一个IP对外服务&#xff61;但只有DB对ARP请求进行响应,所有RS对本身这个IP的ARP请求保持静默&#xff61;也就是说,网关会把对这个服务IP的请求全部定向给DB,而DB收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC&#xff08…

MacOS 为指定应用添加指定权限(浏览器无法使用摄像头、麦克风终极解决方案)

起因&#xff1a;需要浏览器在线做一些测评&#xff0c;但我的 Chrome 没有摄像头/麦克风权限&#xff0c;并且在设置中是没有手动添加按钮的。 我尝试了重装软件&#xff0c;更新系统&#xff08;上面的 13.5 就是这么来的&#xff0c;我本来都半年懒得更新系统了&#xff09…

Tomcat安装及环境配置

一、首先确认自己是否已经安装JDK WinR打开运行&#xff0c;输入cmd回车&#xff0c;在DOS窗口中输入java 出现这些说明已经安装了&#xff0c;然后就是查看自己的版本 然后输入java -version 可以看到版本是1.8的 如果没有配置java环境变量&#xff0c;打开系统设置&#…

Linux安装JenkinsCLI

项目简介安装目录 mkdir -p /opt/jenkinscli && cd /opt/jenkinscli JenkinsCLI下载 wget http://<your-jenkins-server>/jnlpJars/jenkins-cli.jar # <your-jenkins-server> 替换为你的 Jenkins 服务器地址 JenkinsCLI授权 Dashboard-->Configure Glob…

渣土车识别监测 渣土车未盖篷布识别抓拍算法

渣土车识别监测 渣土车未盖篷布识别抓拍算法通过yolov7深度学习训练模型框架&#xff0c;渣土车识别监测 渣土车未盖篷布识别抓拍算法在指定区域内实时监测渣土车的进出状况以及对渣土车未盖篷布违规的抓拍和预警。YOLOv7 的策略是使用组卷积来扩展计算块的通道和基数。研究者将…

交叉导轨具有那些方面的优势?

交叉导轨和直线导轨这两种导轨经常被拿出来对比&#xff0c;从结构上来看&#xff0c;交叉导轨是分体结构&#xff0c;组装起来相对于直线导轨比较繁琐&#xff1b;从功能上来看&#xff0c;交叉导轨适合于短行程&#xff0c;高频率、高精度的场合。直线导轨可以做到6000mm单支…

Paimon+StarRocks 湖仓一体数据分析方案

摘要&#xff1a;本文整理自阿里云高级开发工程师曾庆栋&#xff08;曦乐&#xff09;在 Streaming Lakehouse Meetup 的分享。内容主要分为四个部分&#xff1a; 传统数据仓库分析实现方案简介PaimonStarRocks 构建湖仓一体数据分析实现方案StarRocks 与 Paimon 结合的使用方式…

从零开始,掌握C语言中的数据类型

数据类型 1. 前言2. 预备知识2.1 打印整数2.2 计算机中的单位 3. C语言有哪些数据类型呢&#xff1f;3.1 内置类型和自定义类型 4. 每种类型的大小是多少&#xff1f;5. 为什么有这么多数据类型呢&#xff1f;6. 这么多类型应该如何使用呢&#xff1f;6.1 一个小知识 1. 前言 …

Redis功能实战篇之Session共享

1.使用redis共享session来实现用户登录以及token刷新 当用户请求我们的nginx服务器&#xff0c;nginx基于七层模型走的事HTTP协议&#xff0c;可以实现基于Lua直接绕开tomcat访问redis&#xff0c;也可以作为静态资源服务器&#xff0c;轻松扛下上万并发&#xff0c; 负载均衡…

【VR】Network Manager HUD

&#x1f4a6;本专栏是我关于VR开发的笔记 &#x1f236;本篇是——Network Manager HUD Network Manager HUD组件 简介基础知识 简介 网络管理器 HUD是一种快速启动工具&#xff0c;可帮助您立即开始构建多人游戏&#xff0c;而无需首先构建用于游戏创建/连接/加入的用户界面…

云原生Kubernetes:二进制部署K8S单Master架构(一)

目录 一、理论 1.K8S单Master架构 2. etcd 集群 3.flannel网络 4.K8S单Master架构环境部署 5.部署 etcd 集群 6.部署 docker 引擎 7.flannel网络配置 二、实验 1.二进制部署K8S单Master架构 2. 环境部署 3.部署 etcd 集群 4.部署 docker 引擎 5.flannel网络配置…

Ramp 有点意思的题目

粗一看都不知道这个要干什么&#xff0c;这 B 装得不错。 IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwoKJycnCktlZXAgdXMgb3V0IG9mIGdvb2dsZSBzZWFyY2ggcmVzdWx0cy4uCgokIG9kIC1kIC9kZXYvdXJhbmRvbSB8IGhlYWQKMDAwMDAwMCAgICAgNjAyMTUgICAyODc3OCAgIDI5MjI3ICAgMjg1NDggICA2MjY4NiAgIDQ1MT…