Mysql表的查找进阶

重点细节知识:NULL是表示表里这个格子是空着的,NULL参与各种运算都是->false,但是只有这个才是可以用NULL等于NULL成功的 <=>。,看一下,下图的区别,下面的是连空也算上了

补充一个is 用法,和上面语句一样的意思,不详细说明了,也不是很重要


前言

提示:数据库增删查改,数据库约束


正文开始

💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫💫

一、查询成绩(范围查询),在某个区间

1.💓

区间一般有开有闭区间(一般计算机中的区间是前闭后开)

而我们常用的between  and是全闭区间的

select  * from 表名 where chinese(查找的列) between  80 and 90;

=select *from  表名 where chinese chinese>=80 and chinese<=90 

2.💞

查询数学成绩是(某某分,某某分)的人

select *from student where math in(58,59,60,61);//查找数学成绩是58,59,60,61的人

=select *from student where math =58 or math=59 or math=60 or math=61

 3.💛

查询某某姓名之类的(模糊查询 LIKE)

mysql提供模糊查询,适用于相对简单的,

%匹配0或任意个字符

此刻a开头是确定的,其余的他是三个字还是两个字没有区别(他不做处理了)

 _匹配1个任意字符

a_就是a后面+单字;

a_ _ a后面+两个字;

 ⚠️like缺陷:

1.牛马字符串,长难怪的

2.使用会牺牲一定时间

💙 

4.分页查询:

          limit:针对查询出来的结果,进行一定截取,取出其中的一部分(如同第一页有几个几个这种)

select *from 表名 limit  任意数字(你一页要有几个数据);

下图四个一页(前四个,第一页),

 假如想看下一页(即5-8页),就正常limit 数字后面+offset 数字(offset后面的数字,是代表从4的下一个开始。也就是5,但还是一夜有四个)

从8开始,但是我下面没有数据了,所以就三个。

二、修改数据

1.修改数据😄

把bb语文改为7.7

update student set chinese=7.7 where name ="bb";

当然了修改数据肯定也能多行一起修改,

当然组合技能,把分最低的三个人(一页是3个人,这么说可能更明确一点)每个加1分

选择分最低使用:

select from student order by chinese+math+english limit 3;(分最低的三个人)

更改数据😏

update student set math=math+1 order by chinese+math+english limit 3;(每个数学+1分);

表放了一部分,可以观察到,空集并不参与正常的运算加10之类的。

⚠️:

select中支持的条件,排序,分页对于update同样生效

但假如update后无任何条件会如何呢?

我们可以看到所有行都为0了,

❗️❗️❗️

update:很危险,操作可能会比(损失200个的)删库还麻烦,因为,假如没设定好条件,你也不清楚什么东西被改了,恢复成本是可能会更高  

2.删除数据😍

 delete from 表名 where 条件  直接删除符合条件的行

下面这个是把名字cba的删除了

删除 ,按行来删除,无法删除列,(要想删除列,可通过update把指定条件的行的指定列,设为null。(关系型数据库,所有的行的列,都是一致的)

如果delete没有指定条件,则全部删除,如同删表差不多(❗️❗️❗️

区别: delete from 表还在,数据删除没了,删除库,是表和数据都不在了)

以后的假如我们能设置这种接口最好统一一点(好记,学习成本低)

但是SQL的语句不统一,这四个不好记。

insert into

select from 

update 表名

delete from

这东西就像我们java中都不好记:

数组长度:arr.length;

字符串长度:s.length();

List元素:List.size();


三、数据库约束

我们希望数据符号要求,mysql:提供方一些机制,对数据进行一定检查——这种机制叫约束 😘

NOT NULL:某列中不可以存NULL值

UNIQUE:唯一性(身份证就是唯一的)

DEFAULIT:默认值

PRIMARY KEY:主键:一条记录的身份标志(NOT NULL与UNIQUE的集合,非空且唯一)

当你+了NOT NULL

not null是给列名指定,,写在列名后面

那么你就不能插入空值

唯一

unique:不允许某列数据,在这个指定列中重复

下图就是不予许,他在姓名这里重复。

✨✨✨

对于带有unique的数据,会进行查询,看结果是否已经存在,存在才直接插入,修改也是这样子。

 🌟  🌟  🌟 

entry :还是很熟悉的,大家看到entry想起了什么,map 对吧,一般情况下,map无法

直接遍历,需要map 转到set就可以遍历了。

可能大家不知道这个key 的含义,key下面的UNI什么意思,其实UNI是说name这个东西要求是独一无二的

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

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

相关文章

python实现远程服务器的操作

前言 测试过程中经常会遇到需要将本地的文件上传到远程服务器上&#xff0c;或者需要将服务器上的文件拉到本地就行操作&#xff0c;以前安静经常会用到xftp工具。今天介绍一种python库Paramiko&#xff0c;可以帮助我们通过代码的方式进行完成对远程服务器的上传和下载操作。…

OpenCV for Python 实战(一):获取图片拍摄GPS地址并自动添加水印

Hello 我们在OpenCV每天的基础博客当中已经更新了很多了&#xff0c;那么今天我们就来结合前几天的内容。做一个获取属性然后添加对应属性的水印。那让我们赶快开始吧~ 文章目录 图片EXIFPython 获取EXIFexifread库使用方法转换成文字地址 添加水印cv2.putText() 每日总结 图片…

了解应用层

应用层 1. 概述2. 应用程序组织方式2.1 C/S方式2.1 P2P方式 3. 动态主机配置协议DHCP3.1 DHCP工作流程 4. 域名系统DNS4.1 域名结构4.2 域名分类4.3 域名服务器4.3.1 分类 4.4 DNS域名解析过程 5. 文件传输协议FTP5.1 FTP工作流程 6. 电子邮件系统6.1 邮件信息格式6.2 简单邮件…

信息的表示与处理 (深入理解计算机系统第二章)

刚学习这本书没多久&#xff0c;感觉里面讲的东西挺多的&#xff0c;前后的关联性比较强。学着后面的还需要看看前的才可以更好的理解。 2.1信息存储 无符号(unsigned) 编码是基于传统的二进制表示法的&#xff0c;表示大于或者等于零的数字。 二进制补码(twos-complement)编…

存储过程——用户自定义变量、局部变量

1.用户自定义变量 在会话一定义的变量在会话二中是用不了的。 使用set指令定义变量,并为变量赋值&#xff0c;mysql中赋值推荐使用 :&#xff0c;因为在mysql中没有这个比较运算&#xff0c;也带有比较运算的功能&#xff0c;因此赋值运算推荐使用 : set myname itcast; se…

软件测试面试题及答案【史上最全】

以下是软件测试相关的面试题及答案&#xff0c;欢迎大家参考! 1、你的测试职业发展是什么? 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&…

边缘提取总结

边缘提取&#xff1a;什么是边缘&#xff1f; 图象的边缘是指图象局部区域亮度变化显著的部分&#xff0c;该区域的灰度剖面一般可以 看作是一个阶跃&#xff0c;既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相 差较大的灰度值。 边缘有正负之分&#xff0c;就像…

uni-app:实现账号密码登录,并且实现当页面登录过该账号在下次登录时无需再输入账号密码(本地缓存实现)

效果 前端代码 一、完整代码 <template><view><view class"all"><view class"title"><image :src"title_login" alt"图片损坏" /></view><form class"login-form" submit"fo…

IDEA汉化插件

一、使用IDEA插件功能 重启IDEA 二、下载中文包 手动注入 进官网找自己IDEA对应版本的&#xff0c;下载压缩包&#xff1a;点我进官网 看自己的IDEA版本 把压缩包拖进去&#xff0c;IDEA里打开着文件也没关系 重启IDEA

[算法通关村] 1.2 链表的插入

上一节我们谈到了链表的概念&#xff0c;以及链表的创建方法&#xff0c;忘记的小伙伴可以复习一下&#xff1a; [算法通关村] 1.1 单向链表的创建 今天我们来探究一下链表的插入&#xff0c;链表的插入共有 3 种可能性&#xff0c;分别是在链表的头部插入、在中间插入&#x…

Cilium

Cilium是一个开源的、面向Kubernetes和容器环境的网络插件&#xff0c;用于提供高级的网络和安全功能。它是一个用于容器网络和网络层四、七层安全的项目&#xff0c;旨在简化网络和安全层的管理&#xff0c;并提供高性能和低延迟的数据包处理。Cilium通过BPF&#xff08;Berke…

UE5 用DLL文件制作第三方插件

本篇博文介绍了&#xff0c;如果在UE 中如何使用第三方库&#xff0c;及制作成插件的方法。 DLL 文件是上篇文章中创键的具体的方法见上篇文章。下面开始介绍方法 首先&#xff0c;创建一个空白的 UE5 C 项目&#xff0c;然后再创建一个空白内容的插件&#xff0c;如下图所示 …

STM32MP157驱动开发——按键驱动(线程化处理)

文章目录 “线程化处理”机制&#xff1a;内核函数线程化处理方式的按键驱动程序(stm32mp157)编程思路button_test.cgpio_key_drv.cMakefile修改设备树文件编译测试 “线程化处理”机制&#xff1a; 工作队列是在内核的线程的上下文中执行的 工作队列中有多个 work&#xff0…

【TypeScript】类型推断与类型别名的使用方式。

什么是类型推断&#xff1f; 在 TypeScript 中&#xff0c; 如果声明变量时&#xff0c;没有明确的指定类型&#xff0c;那么 TypeScript 会依照类型推论&#xff08;Type Inference&#xff09;的规则推断出一个类型。 以下代码虽然没有明确指定类型&#xff0c;但是会在编译的…

【043】解密C++ STL:深入理解并使用 list 容器

解密C STL&#xff1a;深入理解并使用list容器 引言一、list 容器概述二、list容器常用的API2.1、构造函数2.2、数据元素插入和删除操作2.3、大小操作2.4、赋值操作2.5、数据的存取2.6、list容器的反转和排序 三、使用示例总结 引言 &#x1f4a1; 作者简介&#xff1a;一个热爱…

浮点型在内存中的存储

目录 1.浮点数是什么&#xff1f; 2. 浮点数存储规则 1.浮点数是什么&#xff1f; 就是数学中的小数。 常见的浮点数&#xff1a; 3.14159 1E10&#xff08;1*10^10&#xff09; 浮点数家族包括&#xff1a; float、double、long double 类型。 浮点数表示的范围&#x…

Bean的生命周期

目录 1、实例化Bean 2、设置Bean的属性 3、初始化Bean &#xff08;1&#xff09;、执行通知 &#xff08;2&#xff09;、初始化的前置方法 &#xff08;3&#xff09;、初始化方法 &#xff08;4&#xff09;、执行自定义方法 &#xff08;5&#xff09;、初始化的后置…

API接口:如何通过使用手机归属地查询

随着手机普及率的不断增加&#xff0c;手机号码的信息查询也成为了一个非常实用的功能。本文将介绍如何通过使用手机归属地查询API接口实现查询手机号码所在地的功能。 首先&#xff0c;我们需要一个可以查询手机号码所在地的API接口。目前市面上有很多免费或付费的API接口可供…

《Ansible自动化工具篇:ubuntu操作系统基于ansible工具一键远程离线部署之K8S1.24.12二进制版集群》

一、部署背景 由于业务系统的特殊性&#xff0c;我们需要针对不同的客户环境部署二进制版K8S集群&#xff0c;由于大都数用户都是专网环境&#xff0c;无法使用外网&#xff0c;为了更便捷&#xff0c;高效的部署&#xff0c;针对业务系统的特性&#xff0c;我这边编写了 基于a…

uni-app中的uni.requireNativePlugin()

这个方法是用来引入原生插件的方法&#xff0c;自 HBuilderX 1.4 版本起&#xff0c;uni-app 支持引入原生插件&#xff0c;使用方式如下&#xff1a; const PluginName uni.requireNativePlugin(PluginName); // PluginName 为原生插件名称 引入插件的类型有三种&#xff1…