boolean 默认_MySQL数据类型测试:BOOLEAN、TINYINT测试数据总结(第八节)

a38bd9159741515374c26bb3d15a89d1.png

前面几节Amy给大家分享了STE集合类型和枚举类型ENUM的测试数据,还没来得及看到的读者可以点击这里查看往期文章。之前看到一些平台上很多人咨询mysql是否提供布尔类型的问题。MySQL数据库确实提供布尔类型,此数据类型的关键字可以写成:布尔类型BOOL或布尔类型BOOLEAN,但是MySQL数据库数据类型的布尔类型是否也像其他数据库产品一样呢?本文就为大家揭开mysql布尔类型的真实面目。

(一)数据类型测试

(1). 布尔类型BOOL/BOOLEAN 与 微整型TINYINT

a). 创建测试表结构

root@localhost : test 05:12:49> CREATE TABLE boolean_test(ID INT NOT NULL AUTO_INCREMENT,->                           Online_Flag BOOL,->                           Lock_Flag BOOLEAN,->                           PRIMARY KEY(ID)->                           )ENGINE=InnoDB CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
Query OK, 0 rows affected (0.01 sec)

我们可以发现对于字段类型写成BOOL或者BOOLEAN,MySQL的SQL语法都是允许通过的,另外我们再通过SHOW命令查阅创建好的表结构:

*************************** 1. row ***************************Table: boolean_test
Create Table: CREATE TABLE `boolean_test` (`ID` int(11) NOT NULL AUTO_INCREMENT,`Online_Flag` tinyint(1) DEFAULT NULL,`Lock_Flag` tinyint(1) DEFAULT NULL,PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

小结:

我们对比手工输入创建表boolean_test的结构定义与数据库中查阅到表结构定义,可以发现二者的差别:

I.MySQL数据库将字段的数据类型BOOL/BOOLEAN默认地转换成TINYINT(1);

II.MySQL数据库自动完成的数据类型转换过程,没有给出任何错误或警告信息提示;

b). 测试数据的写入

root@localhost : test 05:12:58> INSERT INTO boolean_test(Online_Flag,Lock_Flag) VALUES(TRUE,FALSE);
Query OK, 1 row affected (0.00 sec)root@localhost : test 05:13:58> INSERT INTO boolean_test(Online_Flag,Lock_Flag) VALUES(1,0);
Query OK, 1 row affected (0.00 sec)root@localhost : test 05:14:04> INSERT INTO boolean_test(Online_Flag,Lock_Flag) VALUES(2,-1);
Query OK, 1 row affected (0.00 sec)root@localhost : test 05:14:11> INSERT INTO boolean_test(Online_Flag,Lock_Flag) VALUES(-128,127);
Query OK, 1 row affected (0.00 sec)root@localhost : test 05:14:18> INSERT INTO boolean_test(Online_Flag,Lock_Flag) VALUES(-256,256);
Query OK, 1 row affected, 2 warnings (0.00 sec)root@localhost : test 05:14:24> SHOW WARNINGS;
+---------+------+------------------------------------------------------+
| Level   | Code | Message                                              |
+---------+------+------------------------------------------------------+
| Warning | 1264 | Out of range value for column 'Online_Flag' at row 1 |
| Warning | 1264 | Out of range value for column 'Lock_Flag' at row 1   |
+---------+------+------------------------------------------------------+
2 rows in set (0.00 sec)

小结:

I.测试数据表boolean_test的2个字段布尔类型字段,写入的值超过有符号整型TINYINT数据类型存储范围时,出现了字段值截断的警告信息;

II.向测试数据表boolean_test的字段可以写入表达布尔数值的TRUE 或 FALSE是不会报错,也不需要用单引号或双引号括起来;

III.向测试数据表boolean_test的字段可以写入非表达布尔类型的数值,MySQL数据库不会有任何错误或警告信息提示;

c). 显示写入表boolean_test的数据

root@localhost : test 06:31:33> SELECT * FROM boolean_test;
±—±------------±----------+
| ID | Online_Flag | Lock_Flag |
±—±------------±----------+
| 1 | 1 | 0 |
| 2 | 1 | 0 |
| 3 | 2 | -1 |
| 4 | -128 | 127 |
| 5 | -128 | 127 |
±—±------------±----------+
5 rows in set (0.00 sec)

小结:

通过查阅测试表boolean_test的数据,可以发现MySQL数据库中存储的值与数据写入的INSERT语句还是有一些差别,体现在:

I.写入的布尔类型值TRUE 转换成了 1,FALSE 转换成了 0;

II.超过TINYINT数据类型存储的上下限制的值,被自动截断;

III.布尔类型BOOL/BOOLEAN的功能等同于微整型TINYTINT。

好了以上就是布尔类型的内容,下一节也是这个系列的最后一节我们要讲一讲三种类型的应用场景详解,感兴趣的读者可以关注我,这样就不会错过了哦~

如果这篇文章对你有用的话别忘了点赞收藏呀~

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

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

相关文章

flex vue 垂直居中居上_推荐几种在移动端实现垂直居中的方法

推荐几种在移动端实现垂直居中的方法。方法1:table-cellhtml结构垂直居中CSS.box1{display: table-cell;vertical-align: middle;text-align: center;}方法2:display:flex.box2{display: flex;justify-content:center; align-items:Center;}12345方法3&#xff1…

JAVA进阶开发之(数组练习题)

1、题目: 写一个Army类,代表一支军队这个类有一个属性,Weapon[ ] w 数组,用来存储该军队所有武器Army类提供一个构造方法,构造方法里面通过传递一个int类型的参数来限定该类所能拥有的最大武器数量,并用…

python读单行文本求平均值_利用Python读取json数据并求数据平均值

要做的事情:一共十二个月的json数据(即12个json文件),json数据的一个单元如下所示。读取这些数据,并求取各个(100多个)城市年、季度平均值。 { "time_point": "2014-01", "area": "***", "aqi&…

netty cpu 占用率 高_Netty 是如何支撑高性能网络通信的?

作为一个高性能的 NIO 通信框架,Netty 被广泛应用于大数据处理、互联网消息中间件、游戏和金融行业等。大多数应用场景对底层的通信框架都有很高的性能要求,作为综合性能最高的 NIO 框架 之一,Netty 可以完全满足不同领域对高性能通信的需求。…

JAVA进阶教学之(单链表数据结构)

什么是链表: 内存地址不连续,基本单元是节点对象Node,单链表尾结点默认是null 什么是链表中的节点: 节点是单链表中的基本单元,每一个节点都有两个属性 属性一:存储的数据 属性二:下一个节点的内…

eclipse maven打包_Maven 学习

1 Maven 简介Maven 使用项目对象模型(POM,Project Object Model) 的概念,可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具2 Maven 的下载与IDE 的整合1 下载地址http://maven.apche.org2 Eclipse 整合Mave…

vue如何输出一个值_如何利用vue获取当前点击的元素并传值(图文教程) -

thinkphp开发的一个项目,登录成功后又跳转到登录页面,在提交信息后输出session都是正常的,没有问题,但是页面跳转后,session出现丢失现象,无法正常完成登陆。通过查找资料,发现原来是bom头的原因…

JAVA进阶教学之(泛型)

泛型 引言: 泛型:泛型允许程序员在编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型人话:泛型对规定范围产生约束,约束后只能存储泛型指定的类型诞生:JDK5.0以后作用:泛型旨…

python怎么设置代码执行时间_python 代码运行时间获取方式详解

我们知道为了提高代码的运行速度,我们需要对书写的python代码进行性能测试,而代码性能的高低的直接反馈是电脑运行代码所需要的时间。这里将介绍四种常用的测试代码运行速度的方法。 第一种:使用time模块对代码的运行时间进行统计&#xff0c…

JAVA进阶教学之(foreach)

foreach: 概念:就是for循环的一个增强版,可以方便程序员对于数组的直接操作,不用考虑数组下标的情况下进行遍历输出 代码演示: package com.lbj.javase.collection;public class ForEachTest01 {public static void m…

c语言与python通信_C和Python – 与套接字通信

我正在尝试使用UNIX域套接字在C程序和 Python脚本之间进行通信. Python脚本通过UNIX域套接字将数据发送到C程序. 这是我的C程序的相关代码: #include #include #include #include #include #include #define UNIX_PATH_MAX 100 int main(void) { struct socka…

口琴膜片什么作用_2020年半音阶口琴选购攻略,让小白告别选择困难

为什么我会喜欢上口琴,其实是因为小时候看到《数码宝贝》里的阿和吹奏口琴,当时觉得很酷。不过家里条件很差,想要一个但是没提,后来工作买了一把铃木的。不过选口琴是一个很麻烦的事情,品类太多。在了解的过程中&#…

JAVA进阶教学之(集合)

目录 1、集合概述 2、集合存储的数据类型 3、不同的集合,底层都会对应不同的数据结构 4、集合继承结构图(部分接口和类) 5、Collection接口中常用的方法 6、Collection 集合迭代(遍历) 7、Collection的contains…

python中有数组吗_python有数组吗

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!感悟: 1.python列表操作里不允许变量类型的指针2.case1类似于冒泡排序操作,这个是满足…

flutter天气_牛笔!自己用Flutter撸一个天气APP

这是一款简约风格的 flutter 天气项目,提供实时、多日、24 小时、台风路径以及生活指数等服务,支持定位、删除、搜索等操作。下图为主页效果:开始本身作为天气 APP,自定义绘制自然少不了,首页多样的背景效果&#xff0…

电脑远程凭证不工作:解决

电脑 远程桌面连接你的凭据不工作解决方法 方法/步骤 第一步我们首先需要知道远程桌面连接你的凭据不工作原因是,远程的电脑拒绝了访问,需要设置在远程的电脑上设置安全选项,按winR键,打开运行,输入“gpedit.msc”&a…

python汉诺塔递归算法_Python文摘:汉诺塔问题与递归算法

历史传说: 在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜…

python print格式化输出类型_第一讲:Python print() 格式化输出

由于书本上少了这个知识,所以总结如下,各同学看完后完成对应的试题:格式符为真实值预留位置,并控制显示的格式。格式符可以包含有一个类型码,用以控制显示的类型,如下:%s 字符串 (采用str()的显示)%r …

转-递归教学

作者:帅地 链接:https://www.zhihu.com/question/31412436/answer/683820765 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 递归专题连续刷题半年,从小白到学会了套路&#xff…

android游戏编程之从零开始_纯C语言程序员写的编程新手入门基础小游戏之最炫酷推箱子...

很多编程爱好者都编写过推箱子游戏编程吧,最近有好些朋友看见我以前的推箱子程序后,问我是怎么做的。我一直想把这个程序的整个过程写一份详细的东西,与各位编程爱好者分享,一直没空。正好现在放假了,而且离回家还有几…