阳江网站建设 公司,有赞分销商城,政务公开做的好的网站有哪些,wordpress 微信编辑器插件前面几节Amy给大家分享了STE集合类型和枚举类型ENUM的测试数据#xff0c;还没来得及看到的读者可以点击这里查看往期文章。之前看到一些平台上很多人咨询mysql是否提供布尔类型的问题。MySQL数据库确实提供布尔类型#xff0c;此数据类型的关键字可以写成#xff1a;布尔类…前面几节Amy给大家分享了STE集合类型和枚举类型ENUM的测试数据还没来得及看到的读者可以点击这里查看往期文章。之前看到一些平台上很多人咨询mysql是否提供布尔类型的问题。MySQL数据库确实提供布尔类型此数据类型的关键字可以写成布尔类型BOOL或布尔类型BOOLEAN但是MySQL数据库数据类型的布尔类型是否也像其他数据库产品一样呢本文就为大家揭开mysql布尔类型的真实面目。(一)数据类型测试(1). 布尔类型BOOL/BOOLEAN 与 微整型TINYINTa). 创建测试表结构rootlocalhost : test 05:12:49 CREATE TABLE boolean_test(ID INT NOT NULL AUTO_INCREMENT,- Online_Flag BOOL,- Lock_Flag BOOLEAN,- PRIMARY KEY(ID)- )ENGINEInnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 0 rows affected (0.01 sec)我们可以发现对于字段类型写成BOOL或者BOOLEANMySQL的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)
) ENGINEInnoDB AUTO_INCREMENT6 DEFAULT CHARSETutf8
1 row in set (0.00 sec)小结我们对比手工输入创建表boolean_test的结构定义与数据库中查阅到表结构定义可以发现二者的差别I.MySQL数据库将字段的数据类型BOOL/BOOLEAN默认地转换成TINYINT(1)II.MySQL数据库自动完成的数据类型转换过程没有给出任何错误或警告信息提示b). 测试数据的写入rootlocalhost : test 05:12:58 INSERT INTO boolean_test(Online_Flag,Lock_Flag) VALUES(TRUE,FALSE);
Query OK, 1 row affected (0.00 sec)rootlocalhost : test 05:13:58 INSERT INTO boolean_test(Online_Flag,Lock_Flag) VALUES(1,0);
Query OK, 1 row affected (0.00 sec)rootlocalhost : test 05:14:04 INSERT INTO boolean_test(Online_Flag,Lock_Flag) VALUES(2,-1);
Query OK, 1 row affected (0.00 sec)rootlocalhost : test 05:14:11 INSERT INTO boolean_test(Online_Flag,Lock_Flag) VALUES(-128,127);
Query OK, 1 row affected (0.00 sec)rootlocalhost : 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)rootlocalhost : 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的数据rootlocalhost : 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 转换成了 1FALSE 转换成了 0II.超过TINYINT数据类型存储的上下限制的值被自动截断III.布尔类型BOOL/BOOLEAN的功能等同于微整型TINYTINT。好了以上就是布尔类型的内容下一节也是这个系列的最后一节我们要讲一讲三种类型的应用场景详解感兴趣的读者可以关注我这样就不会错过了哦~如果这篇文章对你有用的话别忘了点赞收藏呀~