【MySQL】表的增删查改

    • 创建库创建表
    • 表插入
    • 表更新插入
    • 表替换
    • 插入查询结果
    • 全列查找
    • 指定列查找
    • 查找结果去重
    • where条件查找
    • 筛选分页结果
    • 对查询到的结果进行列值更新
    • delete 和 truncate 的区别

创建库创建表

  • create database 库名称;
  • use 进入的库名称;
  • create table 表名称;

在这里插入图片描述

  • select * from 表名称;
  • desc 表名称; — 查看表信息

在这里插入图片描述

表插入

values 左侧是列属性(如果忽略就是全插入)

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

其中 [] 中的操作是可以去除不写的

下列描述了默认全插入,指定元素插入,和多插入操作

在这里插入图片描述

表更新插入

插入返回对应的情况:
– 0 row affected: 表中有冲突数据,但冲突数据的值和 update 的值相等
– 1 row affected: 表中没有冲突数据,数据被插入
– 2 row affected: 表中有冲突数据,并且数据已经被更新

在原先的插入命令后加入on duplicate key update 需要修改的变量名=更新内容

在这里插入图片描述
在这里插入图片描述

表替换

表的替换和表的插入更新并不一样,表的更新指的是直接在原先基础上进行修改更新,而表替换是进行删除后进行重新插入

替换返回对应的情况:
– 1 row affected: 表中没有冲突数据,数据被插入
– 2 row affected: 表中有冲突数据,删除后重新插入

替换就是将插入命令进行了一个修改将 insert 去掉为 replace
在这里插入图片描述

插入查询结果

– 创建一张空表 no_duplicate_table,结构和 duplicate_table 一样
可以使用like
create table no_duplicate like duplicate_table;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

全列查找

  • 通常情况下不建议使用 * 进行全列查询
    • 查询的列越多,意味着需要传输的数据量越大;
    • 可能会影响到索引的使用。

select * from exam_result;

在这里插入图片描述

指定列查找

select id,name,math from exam_result;

在这里插入图片描述

为指定字段另取一个别名
select id,name,chinese+math+english 总分 from exam_result;

在这里插入图片描述

查找结果去重

select distinct math from exam_result;

在这里插入图片描述

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,english from exam_result where english<60;

在这里插入图片描述

语文成绩在 [80, 90] 分的同学及语文成绩
select name,chinese from exam_result where chinese>=80 and chinese<=90;
在这里插入图片描述
select name,chinese from exam_result where chinese between 80 and 90;

在这里插入图片描述

数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩

mysql> select name,math from exam_result where math = 58 or math = 59 or math = 98 or math = 99;

mysql> select name,math from exam_result where math in(58,59,98,99);
在这里插入图片描述

姓孙的同学 及 孙某同学

% 匹配任意多个(包括 0 个)任意字符
_ 匹配严格的一个任意字符
select name from exam_result where name like '孙%';

select name from exam_result where name like '孙_';
在这里插入图片描述

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

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

在这里插入图片描述

总分在 200 分以下的同学

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

在这里插入图片描述

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

select name,chinese from exam_result where chinese > 80 and name not like '孙%';
在这里插入图片描述

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

select name,chinese,math,english,chinese+math+english 总分 from exam_result where name like '孙_' or chinese+math+englishglish>200 and chinese < math and english > 80;
在这里插入图片描述
在这里插入图片描述

NULL 的查询

在这里插入图片描述
在这里插入图片描述

结果排序

– ASC 为升序(从小到大)
– DESC 为降序(从大到小)
– 默认为 ASC

在这里插入图片描述
查询同学及总分,由高到低

select name,chinese,math,english as total from exam_result order by total;

在这里插入图片描述

筛选分页结果

建议:对未知表进行查询时,最好加一条 limit 1,避免因为表中数据过大,查询全表数据导致数据库卡死

按 id 进行分页,每页 3 条记录,分别显示 第 1、2、3 页
需要有数据才能排序,只有数据准备好了,你才要显示,limit的本质功能是 “显示”
select * from exam_result limit 3 offset 0;
select * from exam_result limit 3 offset 3;
select * from exam_result limit 3 offset 6;
select * from exam_result limit 2,3;
select * from exam_result limit 3;
在这里插入图片描述
进行总分排序

select name,chinese+math+english as total from exam_result where chinese+math+english>200 order by total desc;

在这里插入图片描述

对查询到的结果进行列值更新

注意:更新全表的语句慎用!

将孙悟空同学的数学成绩变更为 80 分
update exam_result set math=80 where name='孙悟空';
在这里插入图片描述

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

update exam_result set math=60,chinese=70 where name='曹孟德';
在这里插入图片描述
== 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分==

update exam_result set math=math+30 order by math+chinese+english asc limit 3;
在这里插入图片描述

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

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

在这里插入图片描述
删除总成绩最后一名

select name,math+english+chinese as total from exam_result order by math+english+chinese asc;

在这里插入图片描述

delete 和 truncate 的区别

注意: truncate 操作慎用

  1. 只能对整表操作,不能像 delete 一样针对部分数据操作;
  2. 实际上 MySQL 不对数据操作,所以比 delete 更快,但是 truncate 在删除数据的时候,并不经过真正的事物,所以无法回滚
  3. 会重置 auto_increment 项
    在这里插入图片描述
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Apollo新版本Beta技术沙龙

有幸参加Apollo开发者社区于12月2日举办的Apollo新版本(8.0)的技术沙龙会&#xff0c;地址在首钢园百度Apollo Park。由于去的比较早&#xff0c;先参观了一下这面的一些产品&#xff0c;还有专门的讲解&#xff0c;主要讲了一下百度无人驾驶的发展历程和历代产品。我对下面几个…

单点登录方案调研与实现

作用 在一个系统登录后&#xff0c;其他系统也能共享该登录状态&#xff0c;无需重新登录。 演进 cookie → session → token →单点登录 Cookie 可以实现浏览器和服务器状态的记录&#xff0c;但Cookie会出现存储体积过大和可以在前后端修改的问题 Session 为了解决Co…

Doris 集成 ElasticSearch

Doris-On-ES将Doris的分布式查询规划能力和ES(Elasticsearch)的全文检索能力相结合,提供更完善的OLAP分析场景解决方案: (1)ES中的多index分布式Join查询 (2)Doris和ES中的表联合查询,更复杂的全文检索过滤 1 原理 (1)创建ES外表后,FE会请求建表指定的主机,获取所有…

Git 应用 -- 多人协作开发场景1

目录 1. 既查看本地仓库的分支&#xff0c;又查看远程仓库的分支&#xff1a; git branch -a &#xff08;但是远程的分支只能查看&#xff0c;不能直接切换到远程的分支上&#xff09; 2. 本地的分支和远程的分支建立连接&#xff1a;git checkout -b [分支名] [要连接远程的…

【模型可解释性系列一】树模型-拿到特征重要度-打印关键因素

接下来一段时间内&#xff0c;会主要介绍下模型可解释性方向的一些常用方法。 模型可解释性&#xff1a;主要用来解释为什么这个样本的特征是这样的时候&#xff0c;模型结果是那样。面向老板汇报工作(尤其是不懂算法的老板)和业务方。 常用的树模型 xgboost、lightgbm这两个…

Ps:文字操作常用快捷键

对文字的设置操作&#xff0c;可在工具选项栏或“字符”面板上进行。但是&#xff0c;如果能记住并使用快捷键&#xff0c;可大大提高工作效率。 设置文字颜色 Color 1、选中几个或全部文字后&#xff0c;除了使用工具选项栏上的“颜色”按钮&#xff0c;还可以使用快捷键 Alt…

Linux系统调试课:PCIe调试手段

文章目录 一、lspci 命令二、pciutils 工具沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本文我们要介绍pcie调试手段。 一、lspci 命令 通过lspci可以查看当前系统挂载了哪些pci设备。 lspci - 列出 PCI 设备 lspci 命令可以列出计算机中所有 PCI 设备的详细信息,…

23、pytest通过skip跳过测试用例

官方实例 # content of test_skip.py import pytest import syspytest.mark.skip(reason"no way of currently testing this") def test_the_unknown():passdef valid_config():return Falsedef test_function():if not valid_config():pytest.skip("unsupport…

Android View.inflate 和 LayoutInflater.from(this).inflate的区别

前言 两个都是布局加载器&#xff0c;而View.inflate是对 LayoutInflater.from(context).inflate的封装&#xff0c;功能相同&#xff0c;案例使用了dataBinding。 View.inflate(context, layoutResId, root) LayoutInflater.from(context).inflate(layoutResId, root, fals…

如何通过navicat连接SQL Server数据库

本文介绍如何通过Navicat 连接SQL Server数据库。如果想了解如何连接Oracle数据库&#xff0c;可以参考下边这篇文章。如何通过Navicat连接Oracle数据库https://sgknight.blog.csdn.net/article/details/132064235 1、新建SQL Server连接配置 打开Navicat软件&#xff0c;点击…

centos7安装Elasticsearch7系列

背景 今天公司项目需要使用Elasticsearch7.17.7。所有网上搜索了一番&#xff0c;查到一个很不错安装方式分享给大家。 Elasticsearch官网发布 从 Elasticsearch 7.x 版本开始&#xff0c;Elasticsearch 发行版包括了自己的 JDK。因此&#xff0c;您不需要单独安装 Java。以…

2023.2版idea安装教程,现在jdk8已经过去式了,不同idea支持的jdk不同。升级jdk后idea也要随之升级

下载idea2023.2版本&#xff0c;下载之前需要删除之前的版本&#xff0c;一定要删除干净&#xff0c;删除程序要勾选那两个delete 下载路径&#xff1a;其他版本 - IntelliJ IDEA (jetbrains.com.cn) 选择2023.2版本 下载后进入安装程序&#xff0c;选择安装目录&#xff0c;然…

去掉参数中第一个“,”

记录一下&#xff0c;前端传参中&#xff0c;传给我参数是“categoryIds: ,1731557494586241026,1731569816263311362,1731569855534579713,1731858335179223042,1731858366821052418” 但是后端&#xff0c;因为我的mybati是in查询&#xff0c;所以因为第一个是“,”。所以会导…

提升设备巡检效率的有效工具

易点易动设备管理系统是一款专注于提升设备巡检效率的高效工具。设备巡检是企业设备管理的重要环节&#xff0c;通过定期巡检设备&#xff0c;可以及时发现潜在问题&#xff0c;预防故障发生&#xff0c;确保设备安全运行。下面将介绍易点易动设备管理系统在设备巡检方面的功能…

Android 12.0 Folder文件夹全屏后文件夹图标列表居中时拖拽app到桌面的优化

1.概述 在12.0的系统rom产品开发中,在Launcher3中在目前的产品需求开发中,对于Launcher3中的文件夹Folder的布局UI 进行了定制化的需求要求把Folder修改为全屏,然后在中间显示文件夹图标的列表,这时候如果Folder是全屏的话,如果拖拽文件夹列表中的app图标,只有拖拽 到屏…

微服务学习(十三):安装Consul

微服务学习&#xff08;十三&#xff09;&#xff1a;安装Consul 一、简介 consul是分布式的、高可用、横向扩展的。 consul提供的一些关键特性&#xff1a; service discovery&#xff1a;consul通过DNS或者HTTP接口使服务注册和服务发现变的很容易&#xff0c;一些外部服…

横向扩展统一存储与备份服务器功能

Infortrend 更新了GS&#xff0c;GSe&#xff0c;GSe Pro统一存储系列的备份服务器功能。该功能降低数据备份成本&#xff0c;并提供灵活的备份策略。通过备份服务器功能&#xff0c;用户可以通过多种途径实现数据备份&#xff0c;包括公有云&#xff08;兼容S3&#xff09;、文…

C# .NET平台提取PDF表格数据,并转换为txt、CSV和Excel表格文件

处理PDF文件中的内容是比较麻烦的事情&#xff0c;特别是以表格形式呈现的各种数据。为了充分利用这些宝贵的数据资源&#xff0c;我们可以通过程序提取PDF文件中的表格&#xff0c;并将其保存为更易于处理和分析的格式&#xff0c;如txt、csv、xlsx&#xff0c;从而更方便地对…

Stable Diffusion AI绘画系列【15】:花丛中的唯美人物写实照

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

【Linux服务器Java环境搭建】07 在linux中安装MySql,以及对MySQL的配置与远程连接

【Linux服务器Java环境搭建】01购买云服务器以及在服务器中安装Linux系统 【Linux服务器Java环境搭建】02 通过xftp和xshell远程连接云服务器 【Linux服务器Java环境搭建】03 Git工具安装 【Linux服务器Java环境搭建】04 JDK安装&#xff08;JAVA环境安装&#xff09; 【Linux服…