当前位置: 首页 > news >正文

mysql——关于表的增删改查(CRUD)

目录

比较运算符和逻辑运算符图

一、增加(Create)

        1、全列插入

        2、指定列插入

二、查询(Retrieve)

        1、全列查询

        2、指定列查询

        3、别名(as)

        4、表达式查询

        5、去重(distinct)

        6、排序(order by)

        7、条件查询(where)

     (1)基本查询

     (2)AND和OR

     (3)范围查询(between...and...)

     (4)  模糊查询like

     (5) null和is null查询

        8、分页查询(limit)

三、更新(update)

四、删除(delete)


比较运算符和逻辑运算符图

        在学习表的增删改查的前提,我们必须要对比较运算符和逻辑运算符有一个清晰的了解,因为在查询中是必不可少的。

        比较运算符:

运算符解释
>大于
<小于
>=大于等于
<=小于等于
=等于,但对于NULL来说不安全(NULL==NULL结果为NULL)
<=>等于,对于NULL来说是安全的(NULL==NULL结果是true)
!=、<>不等于

BETWEEN a AND b

范围匹配,如果范围是[a,b],结果为TRUE(1)
IN(A,B...)如果是A、B任意一个,就返回TRUE(1)
IS NULL是NULL
IS NOT NULL不是NULL
LIKE模糊匹配。%表示任意多个(包括0个)任意字符;_表示任意一个字符

        逻辑运算符:

运算符解释
AND逻辑与,包含所有条件,则为TRUE(1),否则为FALSE(0)
OR逻辑或,包含任意一个条件,则为TRUE(1),否则为FALSE(0)
NOT逻辑非,如果包含条件为TRUE(1),则为FALSE(0),反之,则为true(1)
XOR逻辑异或(不常用),如果包含所有条件或者一个条件都不包含,则为false(0),否则就为TRUE(1)

        案例用表: 表结构如下;

 create table student(id int comment '序号',sn int comment '学号',name varchar(5) comment '姓名',qq_email varchar(50) comment 'qq邮箱',birthday varchar(4) comment '生日')


 

        表2:成绩表

 成绩表 create table ExamTable(id int ,sn int,name varchar(10),Chinese int,Math int,EngLish int)insert into ExamTable values (01,9,'weq',null,null,null),(01,1,'石昊',60,79,90),(02,2,'云曦',90,99,89);(03,3,'火灵儿',54,87,45),(04,4,'石毅',43,58,90);(05,5,'长弓衍',20,32,null),(06,6,'帝冲',null,78,32),(07,7,'月婵',87,43,23),(08,8,'清猗',89,90,99);

 

        

一、增加(Create)

        固定语法:

        

INSERT [INTO] TABLE_NAME[(column1[,column2],...)] VALUES [(VALUES1[,VALUES2],...)]

        注:其中中括号[ ]里面是指定列插入写法。

        1、全列插入

        全列也就是不选中列,把表中的列全都添加内容,语法如下;

INSERT INTO TABLE_NAME VALUES(VALUES1,VALUES2...)

        例如,给学生表添加新内容,序号为1,序号为01,名字为牛一,qq邮箱为321@qq.com,生日为7月6号(0716)。

        

 insert into student values(1,01,'牛一','321@qq.com','0706')

        2、指定列插入

INSERT [INTO] TABLE_NAME[(column1[,column2],...)] VALUES [(VALUES1[,VALUES2],...)]

        给学生表添加新信息,序号为2,名字为小二,其他不写。

insert into student(id,name) values(02,'小二')

         

        我们发现,我们对于指定列插入,如果有些地方不写信息的话,那么就会用空值(NULL)来代替,这是我们要注意的一点。

二、查询(Retrieve)

        1、全列查询

         语法如下(也是我们最常用的一个查询):

 select * from student

        2、指定列查询

          语法如下:

 select column1,column2... from student

        例如查看表中的序号,学号和名字:

select id,sn,name from student

        效果如下 :

        3、别名(as)

        别名的用法只需要在需要修改的名字后面加别名就行,as也可以不加,例如:我需要查看表中的id、sn、name,且别名分别为序号、学号和名字。

        

select id as '序号',sn as '学号',name '名字' from student

        结果如下:

        我们发现原本的id、sn和name列全都被改成别名了,这就是别名的用法

        4、表达式查询

        表达式查询类似于用列加减法这些,例如,我想查成绩表全部同学的总成绩。

        

select id,sn,name,Chinese+Math+English '总分' from ExamTable;

        

        5、去重(distinct)

        我们在表达式查询看到总分有俩个一样的,我们可以通过distinct去重

        

select distinct  Chinese+Math+English '总分' from ExamTable;

        结果如下(注意:去重需要完全相同

         

        6、排序(order by)

        order by的用法只需要在order by后面加列名就行,例如把数学(Math)成绩按低到高排序一下。

        

select id,sn,name,Chinese,Math,English  from ExamTable order by Math asc; 

        结果如下:

        注意:跟在order by后面的列必须要在select查找范围之内,其次,order by列名后面默认是ASC(升序),而降序需要添加DESC,这个降序DESC和查看表结构的词相同,但意思不同。

        

        7、条件查询(where)

     (1)基本查询

        基本查询主要是用到了比较运算符和逻辑运算符,这个是我们十分常见的查询。

        我们举几个例子,1、查找语文成绩及格的人

                                     2、查找总分俩百以上的人

        1、

select id,sn,name,Chinese from ExamTable where Chinese>60;

        查询结果如下:

        

        2、

select id,sn,name,Chinese+Math+English '总分' from ExamTable where Chinese+Math+English>200;

         结果如下:

     (2)AND和OR

        这个用法也是十分容易的,AND和OR就是一个与和或的概念,比如:我们查找俩个内容,第一个内容是查找语文和数学高于六十分的同学,第二个内容就是查找语文或者数学低于六十分的人。

        1、

select id,sn,name,Chinese,Math from ExamTable where Chinese>60 and Math>60;

         

        2、

select id,sn,name,Chinese,Math from ExamTable where Chinese<60 or Math<60;

         

     (3)范围查询(between...and...)

        这个范围查询的用法也可以用and来替代,俩者可以达成一样的效果,例如查找语文分数在40到60之间的人。

        1、

select id,sn,name,Chinese from ExamTable where Chinese between 40 and 60;

         2、

select id,sn,name,Chinese from ExamTable where Chinese >40 and Chinese<=60;

        结果如下:

        注:betwee...and...的用法and前面和后面的值是一个闭区间。

     (4)  模糊查询like

        模糊查询主要分为俩大点,一个是%模糊查询,一个是_模糊查询,前者是代表前面或者后面缺失的所有内容,而后者只是代表一个字的内容。例如我们需要查找火灵儿这位同学的英语成绩,但我们只知道她的姓,我们可以通过模糊查询来查找。

        

select id,sn,name,Chinese from ExamTable where name Like '火%';

        结果如下:

        但如果我们用_查询火灵儿。

         我们发现我们是查找不出的,因为_只能代表一个字,如果是查找姓石的话能找到石昊和石毅。

        

select id,sn,name,Chinese from ExamTable where name Like '石_';

     (5) null和is null查询

        这个查找相对于前面常用度会低点,但能判断里面的值是否为空,比如我们查找English为空的同学有谁。

        

select id,sn,name,English from ExamTable where English is null;

         

        我们发现能查找出俩位同学,这就是null的用法

        8、分页查询(limit)

        分页查询的语法一共有三种:

        

-- 查找从0行开始到第n行的结果
select [(column1,[column2...]) from table_name [where...] [order by...] limit n;
-- 查找从n行开始到第s行的结果
select [(column1,[column2...]) from table_name [where...] [order by...] limit n,s;
-- 查找从n行开始到第s行的结果(更推荐使用)
select [(column1,[column2...]) from table_name [where...] [order by...] limit s offset n;

        我们三种方法都用一次就很熟悉了。

        1、查找ExamTable表通过id排序从第1行到第5行的同学所有信息。

        

seselect * from ExamTable order by id limit 5;

        查找如下:

        2、查找ExamTable表语文成绩前五名同学的全部信息。

        

select * from ExamTable order by Chinese desc limit 1,5;

         查找如下:

        3、查找ExamTable表总分在第二到第五的同学序号,学号,姓名和总分。

        

select id,sn,name,Chinese+Math+English final from ExamTableorder by final  desclimit 5 offset 1

        结果如下:

        

三、更新(update)

        基本语法:

        

UPDATE TABLE_NAME SET COLUMN1=...[,COLUMN2=...,[COLUMN3=...]]
[WHERE...][ORDER BY...][LIMIT...]

        我们只需要做三个案例就很明确可以使用更新这个了。

        1、将‘石昊的语文成绩修改为80分’。

        

update ExamTable set Chinese=80 where name='石昊'

        修改前:                                                  修改后

        我们发现,进行修改操作把石昊的语文分数已经成功从60分修改到80分。

        注意:由于update的操作是比较危险的,所以在图示化工具的时候可能会出现更新失败的问题,如果更新失败请把下面语句加上去:

        SET SQL_SAFE_UPDATES = 0;

        如果还是想安全一点就设为1就行。

        2、将语文成绩前三的同学成绩都加三十。

       

update ExamTable set Chinese=Chinese+30 order by Chinese desc limit 3;

        修改前:                                                               修改后:

        

        3、将所有同学的语文成绩都加10分。

        

select *,Chinese+Math+English final from ExamTable

        修改前:                                                修改后:

四、删除(delete)

        删除操作基本语法:

        

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

        我们主要写俩个内容就差不多能把这个删除完全掌握,一个是删列的,一个是删表的。

        1、将石昊的成绩删除

        

delete from ExamTable where name='石昊'

        删除前:                                        删除后

         

        2、将Exan_Table表删除

        

delete from ExamTable;

                删除前:                                        删除后

                      

        注意:删除表和更新表的操作都是一个十分危险的操作,而这个操作尽量避免使用,以防出现有关于数据的问题。

相关文章:

mysql——关于表的增删改查(CRUD)

目录 比较运算符和逻辑运算符图 一、增加&#xff08;Create&#xff09; 1、全列插入 2、指定列插入 二、查询&#xff08;Retrieve&#xff09; 1、全列查询 2、指定列查询 3、别名&#xff08;as&#xff09; 4、表达式查询 5、去重&#xff08;distinct&#xff09; 6、…...

docker 重启容器且修改服务映射端口

要重启 Docker 容器并修改服务的映射端口,可以按照以下步骤进行操作: 1. 停止当前运行的容器 如果你想重新配置端口,通常需要先停止当前运行的容器。你可以使用以下命令停止容器: docker stop <container_name_or_id>2. 删除现有容器 为了修改端口映射,你需要删…...

智能提取:OfficeImagesExtractor让文档图片提取更简单

“科技是国之利器&#xff0c;也是民之福祉。” 在数字化办公日益普及的今天&#xff0c;我们对文档处理的需求也在不断增长。尤其是对于Office文档中的图片、视频和音频等多媒体内容的提取&#xff0c;传统的方法是繁琐且效率低下的。在这样的背景下&#xff0c;一款能够高效、…...

【LLM论文日更】| LLM2Vec揭秘大型语言模型的文本嵌入潜能

论文&#xff1a;https://arxiv.org/pdf/2404.05961代码&#xff1a;https://github.com/McGill-NLP/llm2vec机构&#xff1a;McGill University, Mila ServiceNow Research &#xff0c;Facebook CIFAR AI Chair领域&#xff1a;embedding model发表&#xff1a;COLM 2024 研…...

大模型微调有必要做吗?LoRa还是RAG?

我需要对大模型做微调吗&#xff1f; 想自定义大模型时&#xff0c;选择&#xff1a;微调还是RAG还是ICL&#xff1f; 需要对大模型做微调&#xff1f; 在人工智能的世界里&#xff0c;大型语言模型&#xff08;LLM&#xff09;已经成为了我们探索未知、解决问题的得力助手。…...

机器人外呼系统如何使用呢?

智能电话机器人作为人工智能进入电销行业的一个分类&#xff0c;目前已取得不错的成绩。智能电话机器人针对电销行业的痛点所作出了改善。 作为新兴的一种电销手段&#xff0c;很多企业对其充满好奇又望而却步。那么很多朋友都有想知道为什么现在很多人都用AI机器人拓客&#x…...

python-月份有几天

题目描述 小理现在有一份日历&#xff0c;但是这个日历很奇怪并不能告诉小理日期信息。小理现在有年和月&#xff0c;希望你能帮他计算出来这一年这个月有几天。 输入 输入共一行&#xff0c;两个整数&#xff0c;代表年和月&#xff0c;中间用空格隔开。 输出 一个整数&am…...

1017 Queueing at Bank

链接&#xff1a; 1017 Queueing at Bank - PAT (Advanced Level) Practice (pintia.cn) 题目大意&#xff1a; 有n个客户&#xff0c;k个窗口。已知每个客户的到达时间和需要的时长&#xff0c;如果有窗口就依次过去&#xff0c;如果没有窗口就在黄线外等候&#xff08;黄线…...

DPDK 测试说明

文章目录 2.DPDK 测试说明2.1硬件pci加密设备绑定到igb_uio驱动IGB_UIO 主要负责什么内容 &#xff1f; 2.2 test命令使用说明2.3 dpdk-test-crypto-perf命令使用说明2.4 使用testpmd测试网卡性能 2.DPDK 测试说明 2.1硬件pci加密设备绑定到igb_uio驱动 dpdk-stable/usertool…...

上传及接收pdf文件,使用pdfbox读取pdf文件内容

前端上传pdf文件 html <form class"layui-form"><div style"background-color: #ffffff" ><div style"padding: 30px"><div class"layui-form-item"><div class"layui-inline"><label c…...

第一个搭建SpringBoot项目(连接mysql)

首先新建项目找到Spring Initializr 我使用的URL是https://start.spring.io这里最低的JDK版本是17&#xff0c;而且当网速不好的时候可能会显示超时&#xff0c;这里可以选用阿里云的镜像https://start.aliyun.com可以更快一些但是里面还是有一些区别的 我们这里选择Java语言&a…...

docker部署rabbitMQ 单机版

获取rabbit镜像&#xff1a;我们选择带有“mangement”的版本&#xff08;包含web管理页面&#xff09;&#xff1b; docker pull rabbitmq:management 创建并运行容器&#xff1a; docker run -d --name rabbitmq -p 5677:5672 -p 15677:15672 rabbitmq:management --name:…...

PDF 全文多语言 AI 摘要 API 数据接口

PDF 全文多语言 AI 摘要 API 数据接口 PDF / 文本摘要 AI 生成 PDF 文档摘要 AI 处理 / 智能摘要。 1. 产品功能 支持多语言摘要生成&#xff1b;支持 formdata 格式 PDF 文件流传参&#xff1b;快速处理大文件&#xff1b;基于 AI 模型&#xff0c;持续迭代优化&#xff1b;…...

《信息系统安全》课程实验指导

第1关&#xff1a;实验一&#xff1a;古典密码算法---代换技术 任务描述 本关任务&#xff1a;了解古典密码体制技术中的代换技术&#xff0c;并编程实现代换密码的加解密功能。 注意所有明文字符为26个小写字母&#xff0c;也就是说字母表为26个小写字母。 相关知识 为了完…...

Accelerated Soft Error Testing 介绍

加速软错误测试(Accelerated Soft Error Testing, ASET)是一种评估半导体器件或集成电路(ICs)在高辐射环境中发生软错误率(Soft Error Rate, SER)的方法。这种测试方法通过模拟或加速软错误的发生,以便在较短时间内评估器件的可靠性。软错误指的是那些不会对硬件本身造成…...

Redis缓存常用的读写策略

缓存常用的读写策略 缓存与DB的数据不一致问题&#xff0c;大多数都是指DB的数据已经修改&#xff0c;而缓存中的数据还是旧数据的情况。 旁路缓存模式 对于读操作&#xff1a;基本上所有模式都是先尝试从缓存中读&#xff0c;没有的话再去DB读取&#xff0c;然后写到缓存中…...

9月产品更新 | 超10项功能升级,快来看看你的需求上线了吗?

Smartbi用户可以在官网&#xff08;PC端下载&#xff09;&#xff0c;更新后便可以使用相关功能&#xff0c;也可以在官网体验中心体验相关功能。 接下来&#xff0c;我们一起来看看都有哪些亮点功能更新吧。 ▎插件商城 Smartbi麦粉社区的应用市场新增了“插件”模块&#xf…...

ARP协议工作原理析解 (详细抓包分析过程)

目录 1. ARP 协议 2. 工作原理 3. ARP 协议报文格式 4. ARP 缓存的查看和修改 5. tcpdump 抓包分析 ARP 协议工作原理 5.1 搭建 2 台虚拟机 5.2 在主机 192.168.0.155 打开一个shell命令行开启抓包监听 5.3 在主机 192.168.0.155 打开另一个shell命令行 telnet 192.168.…...

axure动态面板

最近转管理岗了&#xff0c;作为项目负责人&#xff0c;需要常常与客户交流沟通&#xff0c;这时候画原型的能力就是不可或缺的本领之一了&#xff0c;关于axure可能很多it行业者都不是很陌生&#xff0c;简单的功能呢大家就自行去摸索&#xff0c;我们这次从动态面板开始讲起。…...

[论文笔记]Making Large Language Models A Better Foundation For Dense Retrieval

引言 今天带来北京智源研究院(BAAI)团队带来的一篇关于如何微调LLM变成密集检索器的论文笔记——Making Large Language Models A Better Foundation For Dense Retrieval。 为了简单&#xff0c;下文中以翻译的口吻记录&#xff0c;比如替换"作者"为"我们&quo…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...