1. char类型
char类型是定长的字符串类型。char类型里的每个字符占用1个字节,如果该char类型的长度不足定义时指定的长度,则会在后面自动补空格字符。比如定义了长度为5的char类型字段,如果插入的实际值为"abc",则插入到数据库中的值为"abc ",因为需要占满5个字符。
char类型主要适用于存储长度固定的数据,比如身份证号码、电话号码、邮政编码等,这些数据的长度是固定的,使用char类型不会浪费空间。
1.1 char类型的定义方法
char类型的定义方法和varchar类型相同,都是使用以下格式:
char(长度)
其中长度表示该字段可以存储的字符数。
1.2 char类型的使用场景
char类型适用于存储长度固定的数据,比如姓名、身份证号码、电话号码、邮政编码等。
下面是一个例子:
CREATE TABLE userinfo (
uid INT NOT NULL AUTO_INCREMENT,
name CHAR(20) NOT NULL,
idcard CHAR(18) NOT NULL,
phone CHAR(11) NOT NULL,
PRIMARY KEY (uid)
);
以上代码创建了一个userinfo表,其中name、idcard和phone都是使用char类型定义的,因为这些数据的长度都是固定的。
2. varchar类型
varchar类型是变长的字符串类型。varchar类型里的字符个数是不固定的,根据存储的数据长度而定。与char类型不同的是,varchar类型在存储数据时,会自动去掉末尾的空格字符,比如定义了长度为5的varchar类型字段,如果插入的实际值为"abc",则插入到数据库中的值为"abc",而不是"abc "。
2.1 varchar类型的定义方法
varchar类型的定义方法如下:
varchar(长度)
其中长度表示该字段可以存储的字符数。
2.2 varchar类型的使用场景
varchar类型适用于存储长度不固定的数据,比如地址、电子邮件、网址等数据。
下面是一个例子:
CREATE TABLE user (
userid INT NOT NULL AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
email VARCHAR(50) NOT NULL,
phone VARCHAR(20) NOT NULL,
PRIMARY KEY (userid)
);
以上代码创建了一个user表,其中username、email和phone都是使用varchar类型定义的,因为这些数据的长度都不是固定的。