mysql CHAR
时间: 2023-11-19 17:57:39 浏览: 32
MySQL中的CHAR是一种固定长度的字符串类型,它可以存储0到255个字符。与VARCHAR不同,CHAR类型的数据总是会被空格填充到指定的长度。这意味着,如果你定义了一个长度为10的CHAR类型的列,并且插入了一个长度为5的字符串,那么该字符串将被填充到10个字符的长度,剩余的5个字符将被空格填充。在检索CHAR类型的列时,MySQL默认会删除尾随的空格字符,但是可以通过设置SQL mode中的PAD_CHAR_TO_FULL_LENGTH模式来保留尾随空格。
以下是一个示例,演示了如何创建一个包含CHAR类型列的表,并在检索时保留尾随空格:
```mysql
CREATE DATABASE db_test;
USE db_test;
CREATE TABLE tb (
a VARCHAR(10),
b CHAR(10),
c CHAR(10)
);
INSERT INTO tb VALUES ('a', 'b', 'Hello');
-- 通过 SET 关键字开启 PAD_CHAR_TO_FULL_LENGTH 模式
SET sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';
-- 查询表中的数据,并保留尾随空格
SELECT concat('(', a, ')'), concat('(', b, ')'), concat('(', c, ')') FROM tb;
```
相关问题
mysql char varchar
MySQL中的char和varchar都是用来存储字符串类型的数据的。
char是一种固定长度的字符串类型,它需要指定一个固定的长度,如果存储的数据长度小于指定长度,MySQL会在数据后面自动添加空格来填充。如果存储的数据长度大于指定长度,MySQL会截取数据的前面部分来存储。char类型的数据在存储时会占用指定长度的存储空间,因此如果存储的数据长度不够,会浪费存储空间。
varchar是一种可变长度的字符串类型,它不需要指定固定的长度,可以根据存储的数据长度来动态调整存储空间。varchar类型的数据在存储时只会占用实际数据长度的存储空间,因此可以节省存储空间。但是,由于需要动态调整存储空间,varchar类型的数据在存储和读取时会比char类型的数据慢一些。
MySQL char varchar 区别
在MySQL中,char和varchar都是用来存储字符串的数据类型,但是它们有以下几个区别:
1. 存储方式不同:char是固定长度的,而varchar是可变长度的。
2. 存储空间不同:因为char是固定长度的,所以它占用的存储空间总是相同的,而varchar占用的存储空间则根据存储的实际内容而变化。
3. 索引效率不同:由于char是固定长度的,所以在查找时效率较高,而varchar则相对较慢。
4. 默认值不同:char默认值是空格,而varchar默认值是空值NULL。
因此,在使用时需要根据实际情况选择char或者varchar来存储字符串。如果需要存储固定长度的字符串,可以选择使用char;如果需要存储可变长度的字符串,可以选择使用varchar。