MySQL 列类型-字符串型
来源:互联网 发布:硬盘mac不能写入文件 编辑:程序博客网 时间:2024/06/16 08:13
字符串类型
M表示的字符数,而不是字节数
Gbk 255字节 = 127字符数
Char (M)(最大255字节):
M表示允许的字符串长度。
规定了一个M长度的字符串。
空间固定为5个字节。
Varchar (M):
M表示允许的最大字符串长度
规定了一个最长为M长度的字符串。
空间为当前字符个数+1。
上两个区别:
Char(5)/Varchar(5)
‘’(空字符串) 5/1 varchar需要一个字节保存字符串的总长度
‘abc’ 5/4
‘abcdf’ 5/6
Char 时间效率高于Varchar (原因:varchar需要计算长度)
Varchar 空间效率高于 Char
注意:
字段的最大长度限制
1.类型本身的限制,例如char最大字节255.
2.记录的总长度也有限制.
真实的varchar的长度:
总长度65535
面试题目:
当类型数据的字符长度超过255个字符时,采用2个字节来表示长度。
65535-2=65533。
又由于整条记录需要额外的字节用于保存当前字段的null值。
(有一些字段为null值)。
Null 可以使用与所有字段中,因此需要所有字段都为null
才可以省去null的字节。
此外,定义一个字段时,也需要一段字节数。
Text(2^16)(65535可以全部用于保存长度,不用计算字符长度,而且不用定义M):
有很多兄弟类型:
Tinytext Long text;
文本框,用户讨论等。
Enum 枚举类型(多个已知的选项选一个)
65535 2个字节
表面上是字符串,但内部是整型保存。
Set 集合类型(多个已知的选项不定选择几个)
最多占用8个字节;
1字节=8个bit;
最多64个组合类型
create table str_1 /* 查看utf-8最大字符数*/( a varchar (65535))character set uft-8; /*错误提示最大为21845个字符*/create table str_1 ( a varchar (21845))character set uft-8; /*错误提示,一个记录有最长长度的限制*/create table str_1 ( a varchar (21844))character set uft-8; /*成功*/create table str_2 /* 查看gbk最大字符数*/( a varchar (65535))character set gbk; /*错误提示最大为个字符*/ create table str_3 ( a varchar (65533))character set latin1; /*错误提示记录太长*/create table str_3 ( a varchar (65533) not null)character set latin1; /*成功*/create table str_4( a varchar (65532), b tinyint /*tinyint 占用一个字节长度*/); /*错误提示,提示记录太长*/create table str_4( a varchar (65532)not null, b tinyint); /*错误提示,提示记录太长*/create table str_4( a varchar (65532) not null, b tinyint not null); /*成功*/create table str_5( a text, b text /*成功,理论上占用空间(2^16+2)*2 但是在定义时没有计算其所占用的空间*/);create table str_6(gender enum('female','male') /*enum*/);insert into str_6 values ('male');insert into str_6 values ('female');insert into str_6 values ('other'); /*保存失败,可以+显示内部原因,直到原因后,可以以下操作*/insert into str_6 values ('2'); /*成功*/create table str_7 /*set*/(hobby set('basketball','football','swim'));insert into str_7 values('basketball,football') /*成功,+0 显示 3 内部以位运算保存*//*状态保存机制basketball:001football:010swim:100*/
- MySQL 列类型-字符串型
- mysql基础: mysql列类型--字符串
- MySQL 列类型-数值型
- MySQL 学习教程(三)【整理】-列类型( 数值型/ 日期时间型/ 字符串型)
- 史上最简单的 MySQL 教程(十一)「列类型 之 字符串型」
- MySQL 列类型-日期时间型
- MySQL - 列类型
- MYSQL列类型参考
- MySQL的列类型
- Mysql 列类型
- mysql 列类型
- MySQL列类型
- MySQL列类型总结
- mysql列类型选择
- mysql的列类型
- MySQL列转字符串
- MySQL列类型和列上约束
- mysql数据类型及列类型
- SVM支撑矢量机
- hdu5902 数论
- D3.js中的Scale用法
- 协议栈 栈close 处理流程
- Anaconda3 + PyQt5 + Eric6
- MySQL 列类型-字符串型
- hadoop-hive本地和伪分布式模式的安装
- Android中的MVC和MVP对比
- Java编程基本功训练题(1~10)
- 前端工程师的前后端交互指南
- 4-11-初学排序与查找
- 获取字符串中字母出现的次数
- 比特波特关系
- dnw2配置