MySQL数据库中null、''、' '三者的区别比较

sql注入详解 目录前言? ?一、漏洞原因分析二、漏洞危害三、sql注入防范四、如何挖掘sql注入漏洞五、常见的注入手法联合查询(union注入)报错注入基于布尔的盲注基于时间的盲注HTTP头注入宽字节注入堆叠查询二阶注入六、sql注入getshell的几种方式结构化查询语言(Structured Query Language,缩写:SQL),是一种特殊的编程语言,用于数据库中的标准数据查询语言。SQL注入(SQL Injection)是一种常见的Web安全漏洞,主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没 阅读详情

前言:
今天,一个群里在讨论关于字段为空时候的问题。顿时,兴趣盎然,研究了一番!

1.创建测试表

 create table test(id int(2),num varchar(2));

说明:id字段是为了更好的看出被筛选的行,类似于行号作用;num字段之所以为varchar类型是因为int插值不能为’‘或’ ',于是创建了这样的一张表。

2.插入测试值

insert into test (id,num) values (1,'我');
insert into test (id,num) values (2,'在');
insert into test (id,num) values (3,'测');
insert into test (id,num) values (4,'试');
insert into test (id) values (5);  					/* null 空值 */
insert into test (id,num) values (6,'看');
insert into test (id,num) values (7,'结');
insert into test (id,num) values (8,'果');
insert into test (id,num) values (9,''); 			/* '' 空字符 */
insert into test (id,num) values (10,' '); 			/* ' ' 空格 */

3.查询测试值

select * from test;

在这里插入图片描述
由上图可知:空值是会显示为null值,而空字符,空格并不会显示什么,肉眼难以区分。那么,我们使用一点技术手段!嘿嘿~

select *,length(num) from test;

在这里插入图片描述
通过上面的查询结果,我们不难得出如下结论:
1.表中字段被插入空值后表现为null值,是一种待填充状态,占据空间;
2.空字符被插入后表现为空白(空值),长度为0,不占空间;
3.空格被插入后表现为空白(空值),长度为空格数,占据空间。

后记:
我们在日常工作过程中,经常要过滤空值,通过上面的结论可以看出,最好使用length()函数来计算出字符长度然后设置一定的条件,比如电话号码肯定大于等于5位数,家庭住址肯定大于等于8个字符长度等等,根据业务场景做出判断。当然,也可以加上不为null的条件,如 where num is not null,或者两者都加上。我们日常工作要求两个条件都要加。据说为了适应不同的关系型数据库,比如DB2…

 select * from test where length(num)>1;
 select * from test where num is not null and length(num)>1;

两者结果一样,如下所示:
在这里插入图片描述
但是,要想筛选出空值的行,包括null值,得需要好好思考一下。

select * from test where num is null;

在这里插入图片描述

select * from test where  length(num) = 0;

在这里插入图片描述

select * from test where  length(num) = 1;

在这里插入图片描述

select * from test where num is null or length(num) = 0;

在这里插入图片描述

特殊字符大全-表情字符-指示符号-汉语拼音-希腊字母-俄文-注音-箭头-月日文-花心型-方形-排序-制表-单位,框内字,好看的字符,国际象棋-星座-货币-音乐-聊天表情昵称测试输入等[请勿转载抄袭] 特殊字符大全-汉语 拼音 希腊 字母 俄文 注音 箭头 月 日文 序集花 心型 方形 点数 绘制表单位,框 内字 排序 字符 国际 象棋 星座 货币 音乐 扑克 名称 昵称 测试输入等[已整理] 阅读详情

相关推荐

一个Android应用层开发如何转型深入Android Framework?

不知何时起,单纯的Android应用层开发越来越少了,主流技术演变也越来越快,从之前的rxjava到如今的协程,从之前MVC到如今的MVVM,还有Flutter、Compose等技术,可以说是日新月异。

m0_64420071的博客 1914

Datawhale 知识图谱组队学习之Task 4 用户输入->知识库的查询语句

Datawhale 知识图谱组队学习 之 Task 4 用户输入->知识库的查询语句 文章编写人:王翔 github 地址: 特别鸣谢:QASystemOnMedicalGraph 目录 Datawhale 知识图谱组队学习 之 Task 4 用户输入->知识库的查询语句 目录 一、引言 二、什么是问答系统? 2.1 问答系统简介 2.2 Query理解 2.2.1 Query理解介绍 2.2.2 意图识别 2.2.3 槽值填充 三、任务实践 四、 主体类 EntityE

Andrew_zjc的博客 911

python编程实现制作网络流量监控动画

c,实时显示网络带宽使用情况,用柱状图或折线图表示不同时间段的流量变化。通过 Python编程实现图形库(如 Pygame、Tkinter、Matplotlib 等)来实现计算机网络基础概念的可视化动画。global bars # 声明 bars 为全局变量。# 获取当前网络流量。# 创建图形和坐标轴。

qq_42788199的博客 718

如何在jsp上查询并显示数据库mysql的数据表格

需要在jsp上实现查询数据库的表格(就是通过用户输入查询表格) 总体的思路: 1.首先用户在jsp中输入需要查询的对象并跳转Servlet。 2.Servlet在后台接收到数据。 3.Servlet与数据库建立连接,并且在Servlet输入 sql代码与用户输入的信息 去查询Mysql数据库里的表格。 4.在Servlet中接收数据库查询到的信息。 5.再通过跳转跳转到一个新的jsp页面中,并在页面中输出查询出来的表格。

超级无敌皮皮超的博客 9万+

记录思科cisco交换机升级iso步骤

Cisco Nexus 93180交换机版本升级

a635161812的博客 4378

读书笔记:深度学习入门-基于python的理论与实现(俗称鱼书)

终于从头到尾把鱼书看完啦,真的是非常入门,非常查漏补缺,对新手很友好,对有一定基础的人也非常不错。看完不复习等于没看,所以今天开始复盘,顺便写这篇读书笔记。希望分享给没看过这本书或者看过这本书的同僚们参考,欢迎大家指教。我将从第三章神经网络开始复习,前两章内容书里已经非常基础and清楚了。(会持续更新滴).........

博客而已 1万+

Unicdoe【真正的完整码表】对照表(二)汉字Unicode表

注意:下面这两段是代理区。即第1——16平面的间接表示,四个字节的汉字就在这里表示 D800-DBFF:High-half zone of UTF-16 DC00-DFFF:Low-half zone of UTF-16 本篇中包含了所有常用汉字27973个,剩余汉字使用代理区标识 欢迎查看字符编码相关博客专栏 比如:由iPhone emoji问题牵出的UTF-16编码,UTF-8编码探究

郭晓东的专栏 199万+

5分钟搞定mmdetection3d多模态推理可视化:从KITTI数据集到3D检测结果展示

本文提供了一份快速上手MMDetection3D进行多模态推理可视化的实战指南。文章详细介绍了从环境搭建、KITTI数据集准备,到模型选择、配置解析,再到执行多模态推理并生成3D检测结果可视化的完整流程,旨在帮助开发者在30分钟内快速验证模型并直观展示检测效果。

weixin_29051149的博客 250

MySQL 中NULL和空值的区别?

做一个积极的人 编码、改bug、提升自己 我有一个乐园,面向编程,春暖花开! 01 小木的故事 作为后台开发,在日常工作中如果要接触Mysql数据库,那么不可避免会遇到Mysql中的NULL和空值。那你知道它们有什么区别吗? 学不动了,也不想知道它们有什么区别。大兄弟,不行啊,要面试! 前些天我的好朋友小木去应聘工作,他面试完回来和我聊天回味了一道他的面试题。 面试官:你有用过MyS...

阿飞云漫步 2万+

(14-3)值分布式算法:QR-DQN (Quantile Regression DQN)算法

QR-DQN(Quantile Regression DQN)是一种强化学习算法,它是深度 Q-网络(Deep Q-Network,DQN)的一个变种,旨在更好地处理值函数的不确定性。QR-DQN的实现步骤与传统的DQN类似,但在目标分布计算和损失函数方面有一些不同之处,这使得它能够更好地处理值函数的不确定性。QR-DQN(Quantile Regression DQN)算法的核心思想是将值函数表示为一个分布,而不是传统的单一值估计。在下面的内容中,将讲解一个使用QR-DQN算法的例子。

码农三叔 2053

第四章节 Qt字符串QString详解

QString 的使用方式和 C++标准库的 std::string 字符串的非常相似。

m0_65635427的博客 891

Mysql 数据库默认值选 ''" 、Null和Empty String的区别

????????????个人博客:Harvey的个人博客 ???????????? 1:空值('')是不占用空间的 2: MySQL中的NULL其实是占用空间的。官方文档说明: “NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column...

第二世界 7152

16、天文时间序列分类:基于人工神经网络的研究

本研究探讨了基于人工神经网络的天文时间序列分类方法,重点比较了MLP、LSTM和CNN等模型在BRITE和开普勒K2数据集上的表现。研究发现LSTM不适用于此类数据,而结合特征提取与PSO超参数优化的多层感知器(MLP)在开普勒K2数据上实现了98.55%的二分类准确率。通过精细的数据预处理和高置信度样本选择,显著提升了分类性能。研究成果为恒星变异性识别提供了高效工具,并对天文学与机器学习交叉领域具有重要参考价值。

pz8901234的博客 113

mysql设置varchar 字段的默认值''和null的区别,以及varchar和char的区别

一、背景 根据业务需求,发现以前的同事在设计表的时候,很多字段都没有设置默认值。在mysql5.7版本之后,没有设定默认值的字段,在严格模式下是很容易报错的,所以我这边需要先给每个字段加上一个默认值。 对于常见的int类型,默认值为0就好,但是对于varchar类型呢,默认值是设置为”还是Null呢? 二、‘’和null的区别 1、占用空间问题 (1)、c语言: ‘\0’,这个表示空,需要消耗存...

一个不爱编程的程序猿 2万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

MySQL中的空值 Null 和空字符‘‘

目录1. 空值 `Null` 和空字符 `''`2. 在查询方式上的区别对比2.1. 创建 `SQL` 脚本 1. 空值 Null 和空字符 '' 日常开发中,一般都会涉及到数据库增删改查,那么不可避免会遇到 MySQL 中的 NULL 和空字符 '',二者表面上看都是空,其实存在一些差异的 空值 NULL 的长度是 NULL,不确定占用了多少存储空间,它是占用存储空间的 空字符串 '' 的长度是 0,是不占用空间的* 通俗的讲:空字符串 '' 就像是一个真空状态的杯子,什么都没有;而空值 NULL 就

桐花思雨 8449

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

MySQL 中NULL和空值的区别

1、空值不占空间,NULL值占空间。当字段不为NULL时,也可以插入空值。 2、当使用 IS NOT NULL 或者 IS NULL 时,只能查出字段中没有不为NULL的或者为 NULL 的,不能查出空值。 3、判断NULL 用IS NULL 或者 is not null,SQL 语句函数中可以使用IFNULL()函数来进行处理,判断空字符用 =''或者<>''来进行处理。 4、在进行count()统计某列的记录数的时候,如果采用的NULL值,会别系统自动忽略掉,但是空值是会进行统计到其中的。 5、

kang1011的博客 6253

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

MySQL中 null与not null和null与空值''的区别

相信很多用了MySQL很久的人,对这两个字段属性的概念还不是很清楚,一般会有以下疑问:   1、字段类型是not null,为什么可以插入空值?   2、为什么not null的效率比null高?   3、判断字段不为空的时候,到底要select * from table where column <> ''还是用select * from table where...

289

mysql查询null和空值_mysql 空值(null)和空字符('')的区别

日常开发中,一般都会涉及到数据库增删改查,那么不可避免会遇到Mysql中的NULL和空字符。空字符('')和空值(null)表面上看都是空,其实存在一些差异:定义:空值(NULL)的长度是NULL,不确定占用了多少存储空间,但是占用存储空间的空字符串('')的长度是0,是不占用空间的通俗的讲:空字符串('')就像是一个真空转态杯子,什么都没有。空值(NULL)就像是一个装满空气的杯子,含有东西。二...

weixin_39944074的博客 2144

hive的null/''作为join条件时的区别

hive NULL生成方式: 1 文本方式: 如果通过 load data local inpath'/opt/stu.txt' into table stu 这种上传本地文件数据方式到Hive制造hive NULL的时候,需要在 stu.txt中 用 idname 1zhangsan 2\N 写法,而不是 idname...

阿正的博客 1449

MySQL字段NULL,emptystring, ''

在 建表的时候,通常对于字符串类型的字段,会设置为 not null default null ,但是有时一想,尽然 都 not null 了 为啥还要 default null 不是自相矛盾 多此一举吗? 1.为啥一般我们都会将字段设置为 NOT NULL? (1) mysql中的NULL其实是占用空间的 (2) 如果一个表字段中含有NULL的数据(NULL表示可以为任何值),那么,SQL ...

范特西的博客 3410

MySQL null与not null和null与空值''的区别

相信很多用了MySQL很久的人,对这两个字段属性的概念还不是很清楚,一般会有以下疑问: 我字段类型是not null,为什么我可以插入空值 为毛not null的效率比null高 判断字段不为空的时候,到底要 select * from table where column <> '' 还是要用 select * from table wherecolumn is not nul...

ybcljay的博客 275

空字符和null一样吗MySQL_mysql 空值(null)和空字符('')的区别

日常开发中,一般都会涉及到数据库增删改查,那么不可避免会遇到Mysql中的NULL和空字符。空字符('')和空值(null)表面上看都是空,其实存在一些差异:定义:空值(NULL)的长度是NULL,不确定占用了多少存储空间,但是占用存储空间的空字符串('')的长度是0,是不占用空间的通俗的讲:空字符串('')就像是一个真空转态杯子,什么都没有。空值(NULL)就像是一个装满空气的杯子,含有东西。二...

weixin_33075245的博客 1131

mysql-null与''的区别

一、null与''的区别 MySQL> INSERT INTO my_table (phone) VALUES (NULL); mysql> INSERT INTO my_table (phone) VALUES (''); 这两条语句均会将值插入phone(电话)列,但第1条语句插入的是NULL值,第2条语句插入的是空字符串。第1种情况的含义可被解释为“电话号...

deyu2659的博客 170

mysql空值的说法_MySQL中空值与NULL的区别

学习过关系型数据库的伙伴都知道,NULL是指不确定的值,在数据库中绝对是噩梦的存在;而空值,一般对字符串类型而言,指没有任何值的字符串类型。MySQL中的NULL值和空值区别:NULL值是未知的,占用空间,并且不走索引。相信很多用MySQL很久的人,对这两个字段属性的概念还不是很清楚:1、我字段类型是not null,为什么我可以插入空值?2、为什么not null的效率比null高?3、判断字段...

weixin_42429109的博客 2320

数据库(MySQL,Oracle中)‘’和null的区别

对于MySQL: ''是空的字符串,数据库做非空限定的地方,''仍旧可以插入,而类型为数值型的则不可以。用IS NULL判断时结果为false; null 插入,字符型的,插入的就是null空值,用IS NULL判断时结果为true。而一些数据类型,插入null的时候,不一定为空。比如 timestamp,插入null代表的是系统当前时间;具有auto_increment属性的列,插入nul

didiliu_1111的博客 2298
上一篇: MySQL实现对查询结果的行转列操作
下一篇: 【pymysql】AttributeError: module 'pymysql' has no attribute 'connect'
严小样儿
博客等级 码龄8年 183粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值