mysql创建表bool_MySQL数据类型(BOOLEANBOOL)M ySQL数据类型(BOOLEAN && BOOL)
如下所⽰建⽴schema,
drop table boolean_test;
CREATE TABLE boolean_test(
ID INT NOT NULL AUTO_INCREMENT,
flag1 BOOL,
flag2 BOOLEAN,
PRIMARY KEY(ID)
)ENGINE=InnoDB;
好了,运⾏⼀下show create table,如下,
CREATE TABLE `boolean_test` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`flag1` tinyint(1) DEFAULT NULL,
`flag2` tinyint(1) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
你可以看到,bool类型被⾃动转换成了 tinyint,看如下插⼊语句,
insert into boolean_test (flag1,flag2) values (true,false);
insert into boolean_test (flag1,flag2) values (1,0);
insert into boolean_test (flag1,flag2) values (1111111,888888);
最后会报这样的错误,
[Error Code: 1264, SQL State: 22001]  Data truncation: Out of range value for column 'flag1' at row 1
超出了 tinyint 的范围。如下,查询⽰例,
mysql> select * from boolean_test;
+----+-------+-------+
| ID | flag1 | flag2 |
+----+-------+-------+
|  1 |    1 |    0 |
|  2 |    1 |    0 |
+----+-------+-------+
2 rows in set (0.00 sec)
在mysql 客户端中显⽰1和0
================END================
1.BIT[M]
位字段类型,M表⽰每个值的位数,范围从1到64,如果M被忽略,默认为1
2.TINYINT[(M)] [UNSIGNED] [ZEROFILL]  M默认为4
很⼩的整数。带符号的范围是-128到127。⽆符号的范围是0到255。
3. BOOL,BOOLEAN
是TINYINT(1)的同义词。zero值被视为假。⾮zero值视为真。
4.SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默认为6
⼩的整数。带符号的范围是-32768到32767。⽆符号的范围是0到65535。
mysql创建表数据类型
5.MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默认为9
中等⼤⼩的整数。带符号的范围是-8388608到8388607。⽆符号的范围是0到16777215。
6. INT[(M)] [UNSIGNED] [ZEROFILL]  M默认为11
普通⼤⼩的整数。带符号的范围是-2147483648到2147483647。⽆符号的范围是0到4294967295。
7.BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默认为20
⼤整数。带符号的范围是-9223372036854775808到9223372036854775807。⽆符号的范围是0到18446744073709551615。
================END================

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。