首页> 基础笔记 >Mysql基础学习 Mysql基础学习
MySQL字符串类数据列类型介绍
作者:小萝卜 2019-08-28 【 MySql 数据库 】 浏览 1171
简介MySQL字符串类数据列类型介绍,CHAR,VARCHAR,TINYBLOB,TINYTEXT,BLOB,TEXT,MEDIUMBLOB,MEDIUMTEXT,LONGBLOB,LONGTEXT,ENUM,SET
MySQL字符串类数据列类型介绍
数据列类型 |
存储空间 |
说明 |
取值范围 |
CHAR[(M)] |
M字节 |
定长字符串 |
M字节 |
VARCHAR[(M)] |
L+1字节 |
可变字符串 |
M字节 |
TINYBLOB,TINYTEXT |
L+1字节 |
非常小的BLOB(二进制大对象)和文本串 |
28-1字节 |
BLOB,TEXT |
L+2字节 |
小BLOB和文本串 |
216-1字节 |
MEDIUMBLOB, MEDIUMTEXT |
L+3字节 |
中等的BLOB和文本串 |
224-1字节 |
LONGBLOB, LONGTEXT |
L+4字节 |
大BLOB和文本串 |
232-1字节 |
ENUM(‘value1’,’value2’…) |
1或2字节 |
枚举:可赋予某个枚举成员 |
65535个成员 |
SET(‘value1’,‘value2’…) |
1,2,3,4或8字节 |
集合:可赋予多个集合成员 |
64个成员 |
字符串类型注意事项:
CHAR和VARCHAR类型的长度范围都在0~255之间
在使用CHAR和VARCHAR类型时,当我们传入的实际的值的长度大于指定的长度,字符串会被截取至指定长度
在使用CHAR类型时,如果我们传入的值的长度小于指定长度,实际长度会使用空格补至指定长度
在使用VARCHAR类型时,如果我们传入的值的长度小于指定长度,实际长度即为传入字符串的长度,不会使用空格填补
CHAR要比VARCHAR效率更高,当占用空间较大
字符串类型注意事项:
BLOB和TEXT类型是可以存放任意大数据的数据类型
BLOB区分大小写,TEXT不区分大小写
ENUM和SET类型是特殊的的串类型,其列值必须从固定的串集中选择
ENUM只能选择其中一个值,SET可以选择多个值
例子:
mysql> create table t2(
-> id int unsigned auto_increment primary key,
-> name varchar(8) not null default '',
-> code char(6),
-> sex enum('m',"w") not null default 'w',
-> info text
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> desc t2;
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(8) | NO | | | |
| code | char(6) | YES | | NULL | |
| sex | enum('m','w') | NO | | w | |
| info | text | YES | | NULL | |
+-------+------------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
mysql>
mysql> insert into t2(name,code,sex,info)
-> values('zhangsan','100086','w','hello world!');
Query OK, 1 row affected (0.05 sec)
mysql> insert into t2(name,code,sex,info)
-> values('xiaolifeidao','12345678','x','aaaaaaaaaaa');
Query OK, 1 row affected, 3 warnings (0.06 sec)
mysql> select * from t2;
+----+----------+--------+-----+--------------+
| id | name | code | sex | info |
+----+----------+--------+-----+--------------+
| 1 | zhangsan | 100086 | w | hello world! |
| 2 | xiaolife | 123456 | | aaaaaaaaaaa |
+----+----------+--------+-----+--------------+
2 rows in set (0.00 sec)
mysql> insert into t2(name,code)
-> values("lisi",'234567');
Query OK, 1 row affected (0.06 sec)
mysql> select * from t2;
+----+----------+--------+-----+--------------+
| id | name | code | sex | info |
+----+----------+--------+-----+--------------+
| 1 | zhangsan | 100086 | w | hello world! |
| 2 | xiaolife | 123456 | | aaaaaaaaaaa |
| 3 | lisi | 234567 | w | NULL |
+----+----------+--------+-----+--------------+
3 rows in set (0.00 sec)
mysql>
mysql> insert into t2(name,code,sex,info)
-> values('zhangsan','100086','w','hello world!');
Query OK, 1 row affected (0.05 sec)
mysql> insert into t2(name,code,sex,info)
-> values('xiaolifeidao','12345678','x','aaaaaaaaaaa');
Query OK, 1 row affected, 3 warnings (0.06 sec)
mysql> select * from t2;
+----+----------+--------+-----+--------------+
| id | name | code | sex | info |
+----+----------+--------+-----+--------------+
| 1 | zhangsan | 100086 | w | hello world! |
| 2 | xiaolife | 123456 | | aaaaaaaaaaa |
+----+----------+--------+-----+--------------+
2 rows in set (0.00 sec)
mysql> insert into t2(name,code,sex,info)
-> values\c
mysql> insert into t2(name,code)
-> values("lisi",'234567');
Query OK, 1 row affected (0.06 sec)
mysql> select * from t2;
+----+----------+--------+-----+--------------+
| id | name | code | sex | info |
+----+----------+--------+-----+--------------+
| 1 | zhangsan | 100086 | w | hello world! |
| 2 | xiaolife | 123456 | | aaaaaaaaaaa |
| 3 | lisi | 234567 | w | NULL |
+----+----------+--------+-----+--------------+
3 rows in set (0.00 sec)
mysql>
很赞哦! (0)
下一篇:MySQL数值类数据列类型介绍