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

news2024/11/13 6:53:03

目录

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

一、增加(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 ExamTable
 order by final  desc
 limit 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;

                删除前:                                        删除后

                      

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

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

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

相关文章

全网最适合入门的面向对象编程教程:46 Python函数方法与接口-函数与事件驱动框架

全网最适合入门的面向对象编程教程&#xff1a;46 Python 函数方法与接口-函数与事件驱动框架 摘要&#xff1a; 函数是 Python 中的一等公民,是一种可重用的代码块,用于封装特定的逻辑&#xff1b;事件驱动框架是一种编程模式&#xff0c;它将程序的控制流转移给外部事件,如用…

Simulink库模块作用及简单应用(一)

01--Data Store Memory模块 数据存储模块一般是和数据写入还有数据访问一同搭配使用的 可以从帮助文档看到该模型如下的关键使用信息&#xff1a; Data Store Memory 模块定义并初始化一个命名的共享数据存储&#xff0c;即一个内存区域&#xff0c;供指定相同数据存储名称的…

客户端负载均衡Ribbon 小实例

文章目录 一&#xff0c;概述二&#xff0c;实现过程三&#xff0c;项目源码1. 源码放送&#xff1a;2. 部署方式 四&#xff0c;功能演示五&#xff0c;其他 一&#xff0c;概述 一般来说&#xff0c;提到负载均衡&#xff0c;大家一般很容易想到浏览器 -> NGINX -> 反…

Java 每日一刊(第一期):Java 的历史

文章目录 Java 的起源与诞生Java 的早期发展&#xff08;1995-2000&#xff09;Java 的转型与扩展&#xff08;2000-2010&#xff09;Oracle 时代的 Java&#xff08;2010-至今&#xff09;本期小知识 Java 的起源与诞生 Java 的历史可以追溯到 20 世纪 90 年代&#xff0c;由 …

【数据结构(初阶)】——二叉树

【数据结构】——二叉树 文章目录 【数据结构】——二叉树前言1. 树的概念及结构1.1 树的概念1.2 树的结构 2. 二叉树的概念及结构2.1 二叉树的概念2.2 二叉树的结构2.3 二叉树的性质 3. 二叉树顺序结构及概念3.1 二叉树的顺序结构3.2 堆的概念及结构3.3 堆的实现3.3.1 堆的基本…

【C++ Qt day9】

2、将day1做的登录界面升级优化【资源文件的添加】 3、 使用手动连接&#xff0c;将登录框中的取消按钮使用第2种方式的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上…

黑马点评16——多级缓存-JVM进程缓存

文章目录 什么是多级缓存导入商品案例初识Caffeine实现进程缓存 什么是多级缓存 但是现在的nginx的压力太大了&#xff0c;所以nginx也要部署成集群 当然我们的redis、tomcat都可以部署成集群 导入商品案例 我们在docker中开启了一个mysql的数据库&#xff0c;里面配置了一个…

C和指针:高级指针话题

进一步探讨指向指针的指针 int i; int *pi; int **ppi; 这些声明在内存中创建了下列变量。如果它们是自动变量&#xff0c;无法猜测它们的初始值。 二级指针指向一级指针 ppi&pi; *ppi&i; ia; *pia; **ppia; 为什么要使用指针&#xff1f; 因为函数传参使用值传递不会…

[C#学习笔记]接口的特性与用法

视频地址&#xff1a;一期视频看透C#接口的全部特性及用法_哔哩哔哩_bilibili 强烈推荐学习C#和WPF的朋友关注此UP&#xff0c;知识点巨多&#xff0c;讲解透彻&#xff01; 一、总览 public interface IOverall {/// <summary>/// 最普通的方法/// </summary>v…

[数据集][目标检测]打电话检测数据集VOC+YOLO格式8985张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;8985 标注数量(xml文件个数)&#xff1a;8985 标注数量(txt文件个数)&#xff1a;8985 标注…

【C++】C++入门基础,详细介绍命名空间,缺省参数,函数重载,引用,内联函数等

目录 1. 命名空间 1.1 使用命名空间的目的 1.2 命名空间定义 1.3 命名空间使用 2. 缺省参数 2.1 缺省参数概念 2.2 缺省参数分类 2.3 实际案例 2.4 注意事项 3. 函数重载 3.1 函数重载概念 3.2 函数重载原理 4. 引用 4.1 引用的概念 4.2 引用的特性 4.3 使用…

JavaScript案例---求质数

n等于19&#xff0c;是质数 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"wid…

OpenAI Gymnasium, are there any libraries with algorithms supporting it?

题意&#xff1a;对于OpenAI Gym&#xff0c;是否有支持它的算法库&#xff1f; 问题背景&#xff1a; OpenAI has released a new library called Gymnasium which is supposed to replace the Gym library. There are many libraries with implamentations of RL algorithms…

机械学习—零基础学习日志(Python做数据分析02)

现在开始使用Python尝试做数据分析。具体参考的网址链接放在了文章末尾。 引言 我通过学习《利用Python进行数据分析》这本书来尝试使用Python做数据分析。书里让下载&#xff0c;anaconda&#xff0c;使用Jupyter来写代码&#xff0c;只是下载一个anaconda的确有点费时间&am…

RabbitMQ 04 集群,用于提高系统性能

01.背景 02.单个节点的MQ会持久化的记录什么数据 03.集群情况下的MQ会持久化的记录什么数据 04.集群中的队列 单个节点的队列&#xff1a; 集群的队列&#xff1a; 05. 两个原因&#xff1a; 这样做带来的好处&#xff1a; 05.集群的交换机 交换机的本质 交换机在集…

Unity TextMeshPro 设置竖排

默认竖排是这样的 但是我们要的竖排效果并不是这样我们要是竖排连续的根据文本限制来进行换行 第一步我们先设置文本的旋转Z轴为90如下图 然后我们给文本加一个Tag <rotate270> 如下图 但是这个效果还是不是我们想要的效果我们可以使用TexeMeshPro提供的一个选项EnableR…

97.游戏的启动与多开-共享内存多开检测

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;易道云信息技术研究院 上一个内容&#xff1a;96.游戏的启动与多开-窗口多开检测与破解 以 96.游戏的启动与多开-窗口多开检测与破解 …

Word文档的读取(1)

读取一个班的答题卡 解决方法&#xff1a; 导入os模块后&#xff0c;将乔老师的文件夹路径 /Users/qiao/answerKey 赋值给变量allKeyPath。使用os.listdir()函数获取该路径下所有的答题卡名称列表&#xff0c;并赋值给变量allItems。最后使用for循环遍历所有答题卡&#xff0c…

【知识小妙招来喽!】文件防泄密措施有哪些?这6个有效方法防止企业员工泄密!

在信息高度发达的时代&#xff0c;企业数据的安全性和保密性成为了企业运营中不可忽视的重要环节。 一旦敏感文件被泄露&#xff0c;不仅可能导致商业机密被窃取&#xff0c;还可能给企业带来重大的经济损失和声誉损害。 因此&#xff0c;采取一系列有效的文件防泄密措施&…

spring security 中的异常

一、简介 Spring Security 中异常主要分为两大类: 1、AuthenticationException: 认证异常 2、AccessDeniedException: 授权异常 AuthenticationEntryPoint 该类用来统一处理 AuthenticationException 异常 AccessDeniedHandler 该类用来统一处理 AccessDeniedException 异常…