程序员的知识教程库

网站首页 > 教程分享 正文

MySql学习笔记22——数据类型(字符型)

henian88 2024-10-24 10:24:35 教程分享 7 ℃ 0 评论

较短的文本:

char

varchar

其他:

binary和varbinary用于保存较短的二进制

enum用于保存枚举

set用于保存集合

较长的文本:

text

blob (较大的二进制)


char和varchar类型

说明:用来保存MySQL中较短的字符串。

字符串类型

最多字符数

描述及存储需求

char(M)

M

M位0~255之间的整数

varchar(M)

M

M位0~65535之间的整数

两种类型的比较:

字符串类型

写法

M的意思

特点

空间

效率

char

char(M)

最大的字符数,可以省略,默认为1

固定长度的字符

比较耗费

varchar

varchar(M)

最大的字符数,不可以省略

可变长度的字符

比较节省


binary和varbinary类型

说明:类似于char和varchar,不同的是它们包含二进制字符串而不包含非二进制字符串。


Enum类型(SQL SERVER不支持)

说明:又称为枚举类型哦,要求插入的值必须属于列表中指定的值之一。

如果列表成员为1~255,则需要1个字节存储

如果列表成员为255~65535,则需要2个字节存储

最多需要65535个成员!

案例:

CREATE TABLE test char (c1 ENUM('a', 'b', 'c'));

INSERT INTO test VALUES('a') ;

INSERT INTO test VALUES('b') ;

INSERT INTO test VALUES('c') ;

INSERT INTO test VALUES('m') ;

INSERT INTO testr VALUES('A') ;

SELECT * FROM test;


m不是范围列表中的值故插入不成功,枚举值不区分大小写

※SQL Server没有枚举类型


可以使用约束限制取值:
列名 VARCHAR(10) NOT NULL CHECK (列名 IN('可选值1', 可选值2', 可选值3))



Set类型

说明:和Enum类型类似,里面可以保存0~64个成员。和Enum类型最大的区别是: SET类型一次可以选取多个成员,而Enum只能选一个。

根据成员个数不同,存储所占的字节也不同

成员数

字节数

1~8

1

9~16

2

17~24

3

25~32

4

33~64

5

CREATE TABLE test char (c1 SET('a', 'b', 'c','d'));

INSERT INTO test VALUES('a') ;

INSERT INTO test VALUES('a,b') ;

INSERT INTO test VALUES('a,c,d') ;

INSERT INTO test VALUES('A,B') ;

SELECT * FROM test;


本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表