[MySQL]关于表的增删改查

目录

1.插入

1.1单行数据+全列插入

 1.2多行插入,指定列插入

​编辑2.查询

2.1全列查询

2.2指定列查询

3.3查询字段为表达式

 2.4别名

​编辑2.5去重

2.6排序

 2.7条件查询

2.7.1基本查询:

2.7.2 AND 和OR

2.7.3范围查询

 2.7.4模糊查询

 2.7.5分页查询 limit

3.修改

4.删除


1.插入

1.1单行数据+全列插入

我们首先创建一张学生表来做为我们的例子:

表里包含的元素有id,学号,姓名,邮箱;

然后我们进行全列插入

格式为 insert into student values(数据1,数据2,数据3)

 1.2多行插入,指定列插入

数据格式:

Insert into stuent(列名,列名,列名)values(数据,数据,数据,),(数据,数据,数据);

2.查询

先创建一个考试成绩表

 create table exam_result(id int,name varchar(20),chinese decimal(3,1),
    -> math decimal(3,1),english decimal(3,1));

 加入一些数据

INSERT INTO exam_result (id,name, chinese, math, english) VALUES
(1,'唐三藏', 67, 98, 56),
(2,'孙悟空', 87.5, 78, 77),
(3,'猪悟能', 88, 98.5, 90),
(4,'曹孟德', 82, 84, 67),
(5,'刘玄德', 55.5, 85, 45),
(6,'孙权', 70, 73, 78.5),
(7,'宋公明', 75, 65, 30);
 

2.1全列查询

 通常情况下不建议使用select *查询,会造成大量的性能资源使用。

1.查询的列越多,意外着需进行传输的数据越大。

2.可能会影响索引的使用

select *from exam_resule;

2.2指定列查询

指定列的顺序不需要按照定义的时候的顺序

语法格是:

select id,name,chinese from exam_result;

3.3查询字段为表达式

表达式不包含字段

select id,name,10 from exam_result;

表达式包含一个字段

select id  ,name,chinese+10 from exam_result;

表达式包含多个字段:

select id,name,english+chinese+math  from exam_result;

 2.4别名

select id,name ,math+chinese +english as 总分 from exam_result;

2.5去重

我们先查询一下math成绩

select math from exam_result;

可以看到98分重复了 我们使用 distnit关键字试试

select distinct math from exam_result;

2.6排序

order by 关键字

desc为降序 默认为升序

降序 desc关键字写到最后面

可以对多个字段排序,排序的优先级随书写顺序

 2.7条件查询

运算符说明
>, >=, <, <=大于,大于等于,小于,小于等于
=等于,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)

注:
1. WHERE条件可以使用表达式,但不能使用别名。
2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分
例子:

2.7.1基本查询:

查询英语成绩不及格的同学

select name,english from exam_result where english < 60;

查询语文成绩好于英语成绩的同学:

select name,chinese,english from exam_result where chinese>english; 

查询总分在200以下的学生:

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

2.7.2 AND 和OR

查询语文成绩大于80,并且英语成绩大于80分的同学

select name,english,chinese from exam_result where chinese>80 and english >80;

猪悟能同学好厉害hhhh

查询语文成绩大于80 或者英语成绩大于80的同学

select name , chinese ,english from exam_resut where chinese>80 or english >80;

观察一下and和or的优先级(一般情况下如果想要哪个优先级高就用小括号给它加起来);

首先我们先查找全部的同学成绩 select *from exam_result;

select *from exam_result where chinese>80 or math>70 and english>70;

 我们给前面的or 打上括号看看

select * from exam_result where (chinese>80 or math>70) and english >70;

可以看到 and 的优先级大于or

2.7.3范围查询

between ...and...

查询语文成绩在80~90之间的同学

select name,chinese from exam_result where chinese between 80 and 90;

使用 and也可以实现

select name,chinese from exam_result where chinese>=80 and chinese<=90;

 2.7.4模糊查询

%匹配多个字符

select name from exam_result where name like '孙%';

_ 匹配一个字符

select name from exam_result where name like '孙_';

 2.7.5分页查询 limit

起始下标为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
 

案例 :按 id 进行分页,每页 3 条记录,分别显示 第 1、2、3 页

select id ,name from exam_result order by id limit 3 offset 0;

select id ,name from exam_result order by id limit 3 offset 3;

select id ,name from exam_result order by id limit 3 offset 6;

3.修改

update from table_name set colume=expr,[colume = expr] [where...] [order by ...] [limit...]

 把孙悟空同学的数学成绩改为80分

update exam_result set math = 80 where name='孙悟空';

将曹孟德的数学成绩改为60,语文成绩改为70

update exam_result set math =60 ,chinese =70 where name ='曹孟德';

将总成绩倒数后三名的数学成绩加上10分

update exam_result set math = math+10 order by math+chinese+english limit 3;


将所有同学的语文成绩变成原来的两倍

首先是这样的

update exam_result set chinese = chinese *2 ;

4.删除

delete from 表名 where... orderby...limit...

案例

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

detele from exam_result where name = '孙悟空';

删除整张表

drop table if exists for_delete;首先判断库里面有没有这张表,有的话就删了

create table for_delete(id int ,name varchar(20)); 创建表

insert into for_delete (name) values('A'),('B'),('C');加入数据

select *from for_delete; 查看表

delete from for_delete; 删除一整张表

selete *from for_delete ;再次查看表,会发现为空了 

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

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

相关文章

vue3 中组合键实现换行

vue3 中组合键实现换行 需求背景 有一个聊天室功能&#xff0c;采用输入框的形式&#xff0c;输入完毕使用Enter&#xff0c;可以直接进行发送。使用一些组合键 比如 commandEnter / shiftEnter / alt Enter … 可以实现换行操作。但现实的情况是&#xff0c;原生 Enter 天然…

【JavaEE Spring】MyBatis 操作数据库(基础操作)

MyBatis 操作数据库 本节目标前⾔JDBC 操作⽰例回顾1. 什么是MyBatis?2. MyBatis⼊⻔2.1 准备⼯作2.1.1 创建⼯程2.1.2 数据准备 2.2 配置数据库连接字符串2.3 写持久层代码2.4 单元测试 3. MyBatis的基础操作3.1 打印⽇志3.2 参数传递3.3 增(Insert)3.4 删(Delete)3.5 改(Upd…

太赞了!微信自动回复法宝,让沟通更高效!

如今&#xff0c;微信已成为人们生活和工作中不可或缺的一部分。然而&#xff0c;对于一些有多个微信账号的人说&#xff0c;常常会因为微信号太多&#xff0c;消息太多没能及时回复&#xff0c;或是客户咨询的问题很多都差不多&#xff0c;每次都要复制粘贴很是麻烦。 要想一…

记录yolov8_obb训练自己的数据集

一.数据集制作 1.标注软件&#xff1a;roLabelImg roLabelImg是基于labelImg改进的&#xff0c;是用来标注为VOC格式的数据&#xff0c;但是在labelImg的基础上增加了能够使标注的框进行旋转的功能。 2.数据格式转换 2.1 xml转txt # 文件名称 &#xff1a;roxml_to_dota.p…

Leetcode—40.组合总和II【中等】

2023每日刷题&#xff08;七十七&#xff09; Leetcode—40.组合总和II 算法思想 实现代码 class Solution { public:vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {vector<vector<int>> ans;vector<int…

深度解析SD-WAN和混合WAN的网络方案区别

在企业网络的不断发展中&#xff0c;根据业务需要选择不同的广域网&#xff08;WAN&#xff09;解决方案显得至关重要。传统的基于传输控制协议/因特网协议&#xff08;TCP/IP&#xff09;的WAN是一种私有广域网&#xff0c;由企业网络和互联网服务提供商&#xff08;ISP&#…

python222网站实战(SpringBoot+SpringSecurity+MybatisPlus+thymeleaf+layui)-热门标签推荐显示实现

锋哥原创的SpringbootLayui python222网站实战&#xff1a; python222网站实战课程视频教程&#xff08;SpringBootPython爬虫实战&#xff09; ( 火爆连载更新中... )_哔哩哔哩_bilibilipython222网站实战课程视频教程&#xff08;SpringBootPython爬虫实战&#xff09; ( 火…

Vue 动态组件与异步组件:深入理解与全面应用

聚沙成塔每天进步一点点 本文内容 ⭐ 专栏简介1. 动态组件实现原理&#xff1a;用法示例&#xff1a; 2. 异步组件实现原理&#xff1a;用法示例&#xff1a; 3. 异步组件的高级应用a. 异步组件的命名&#xff1a;b. 异步组件的加载状态管理&#xff1a; ⭐ 写在最后 ⭐ 专栏简…

element plus表格的表头和内容居中

文章目录 需求分析 需求 对于 element-plus 中的 table 进行表头和内容的居中显示 分析 单列的表头和内容居中 &#xff1a; 在对应的那一列加上align“center” 即可 <el-table-column prop"name" label"商品名称" align"center" />…

c++QT文件IO

1、QFileDialog文件对话框 与QMessageBox一样&#xff0c;QFileDialog也继承了QDialog类&#xff0c;直接使用静态成员函数弹窗。弹出的结果&#xff08;选择文件的路径&#xff09;通过返回值获取。 1&#xff09;获取一个打开或保存的文件路径 // 获取一个打开或保存的文件路…

Unity3D控制人物移动的多种方法

系列文章目录 unity知识点 文章目录 系列文章目录前言一、人物移动之键盘移动1-1、代码如下1-2、效果 二、人物移动之跟随鼠标点击移动2-1、代码如下2-2、效果 三、人物移动之刚体移动3-1、代码如下3-2、效果 四、人物移动之第一人称控制器移动4-1、代码如下4-2、效果 五、And…

从编程中思考:大脑的局部与全局模式(一)

郭靖正在帐篷中用Unity写代码&#xff0c;刚写完一段代码。欧阳锋从帐篷外走进来&#xff0c;正要说点什么&#xff0c;郭靖反应敏捷&#xff0c;转身反手一招神龙摆尾击出&#xff0c;将欧阳锋震出帐篷&#xff0c;灰溜溜逃跑。 using UnityEngine;public class LocalGlobalD…

Maven 综合案例

1. 项目需求和结构分析 需求案例&#xff1a;搭建一个电商平台项目&#xff0c;该平台包括用户服务、订单服务、通用工具模块等。 项目架构&#xff1a; 用户服务&#xff1a;负责处理用户相关的逻辑&#xff0c;例如用户信息的管理、用户注册、登录等。 spring-context 6.0.…

P1320 压缩技术(续集版)(C语言)

基本思路是&#xff1a; 1.读入字符串并计算n值 2.字符串连接&#xff08;要用到strcat&#xff09; 3.输出n值 4.计算字符数并输出 其中输出时第一个数字是0的个数&#xff0c;这个很容易被遗漏。 #include<stdio.h> #include<string.h> int main() {char a[…

centos 7.6 进入单用户模式

1、重启服务器&#xff0c;在选择内核界面使用上下箭头移动 2、选择内核并按“e” 将“RO”改成 rw ,删除 rhgb quiet 添加 init/bin/bash Ctrl X 进入单用户模式 为防止乱码&#xff0c;修改语言为英语 修改完密码建议输入&#xff1a;touch /.autorelabel 更新系统信…

imgaug库图像增强指南(34):揭秘【iaa.Clouds】——打造梦幻般的云朵效果

引言 在深度学习和计算机视觉的世界里&#xff0c;数据是模型训练的基石&#xff0c;其质量与数量直接影响着模型的性能。然而&#xff0c;获取大量高质量的标注数据往往需要耗费大量的时间和资源。正因如此&#xff0c;数据增强技术应运而生&#xff0c;成为了解决这一问题的…

mysql 导入数据 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘

前言: mysql 导入数据 遇到这个错误 1273 - Unknown collation: utf8mb4_0900_ai_ci 具体原因没有深究 但应该是设计数据库的 字符集类型会出现这个问题 例如: char varchar text..... utf8mb4 类型可以存储表情 在现在这个时代会用很多 以后会用的更多 所以不建议改…

SV-7101V网络音频终端产品简介

SV-7101V网络音频终端产品简介 网络广播终端SV-7101V&#xff0c;接收网络音频流&#xff0c;实时解码播放。本设备只有网络广播功能&#xff0c;是一款简单的网络广播终端。提供一路线路输出接功放或有源音箱。18123651365微信 产品特点 ■ 提供固件网络远程升级■ 标准RJ…

CSS之边框样式

让我为大家介绍一下边框样式吧&#xff01;如果大家想更进一步了解边框的使用&#xff0c;可以阅读这一篇文章&#xff1a;CSS边框border 属性描述none没有边框,即忽略所有边框的宽度(默认值)solid边框为单实线dashed边框为虚线dotted边框为点线double边框为双实线 代码演示&…

教你怎么用Docker 部署前端

越来越多的前端团队选择用 Docker 部署前端项目&#xff0c;方法是将项目打包成一个镜像&#xff0c;然后在服务端直接拉镜像启动项目。这种方式可以忽略服务器环境差异&#xff0c;更容易做版本管理。 但我们平常使用 Docker 拉取镜像时&#xff0c;默认会从 Docker Hub 这个…