字符串类型:char,varchar,text,enum,set
字符串类型
1.char
格式:char (M)
2.varchar
格式:varchar (M)
【注意】M表示允许的字符串长度[65535]。M表示的是字符数,而不是字节数。但是最大长度的使用是按照字节来算的。
varchar中M表示,是允许的最大长度,在最大长度范围内就行,可变长度。
char内M表示严格限定的长度,固定长度。
char(5) varchar(5) 说明
'' 5个字节 1个字节 varchar需要一个字节保存字符串总长度
'abc' 5个字节 6个字节
**总结**:1,varchar的空间利用优于char;char的效率比varchar快(速度快)。
2,varchar总长度65535;char的特点,当类型数据超过255个字符时,采用2B表示长度。65535-2=65533
整条记录,需要一个额外的字节(1B),用于保存当前字段的null值。除非所有的字段都不是null,这个字节才可以省略。
给表设置 字符集 方法:
create table s_1 ( a varchar(100)) character set utf8;
注意:字段的最大长度(65535),除了类型本身限制之外,记录的总长度也有限制。
3.text
文本,有很多兄弟类型:
tinytext longtext 表示的字符串长度不一样。
分别可存储大小:
tinytext:1B
text:64KB
mediumtext:16MB
longtext:4GB
3.enum
枚举类型:多个可选值中选择一个(单选)
例子:CREATE TABLE s_2 (gender enum('female','male'));
解析:在INSERT插入数据的时候只能在female和male中选择一个,否则插入失败或者为空值。
例子:select gender+0 from s_2;
解析:显示enum中第几个选项
4.set
集合:不定项选择
例子:CREATE TABLE s_5(name varchar(10),hobby set('basketball','pingpong','soccer','tennis'));
解析:INSERT INTO s_5 VALUES('jack','tennis,soccer,basketball');
【注意】如果插入的值不在set里面,则无法插入该值;可以任意插入set中设置好的一个或者多个值。
字符串类型:char,varchar,text,enum,set的更多相关文章
- mysql列类型char,varchar,text,tinytext,mediumtext,longtext的比较与选择
储存不区分大小写的字符数据 TINYTEXT 最大长度是 255 (2^8 – 1) 个字符. TEXT 最大长度是 65535 (2^16 – 1) 个字符. MEDIUMTEXT 最大长度是 16 ...
- mysql 字符串类型 char varchar
字符类型用在存储名字.邮箱地址.家庭住址等描述性数据 char指的是定长字符,varchar指的是变长字符 #官网:https://dev.mysql.com/doc/refman/5.7/en/ ...
- mysql中char,varchar,text
1.char char最大长度是255字符,注意是字符数和字符集没关系. 1)可以有默认值, 2)尾部有空格会被截断 3)不管汉字.英文,还是其他编码,都可以存255字符 2.varchar 1)va ...
- mysql的char,varchar,text,blob
mysql的char,varchar,text,blob是几个有联系但是有有很大区别的字段类型,这算是mysql的基础吧,可是基础没有学好,恶补一下. 先简单的总结一下: char:定长,最大255个 ...
- [Android Pro] sqlite数据库的char,varchar,text,nchar,nvarchar,ntext的区别
reference : http://blog.csdn.net/xingfeng0501/article/details/7817121 1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索 ...
- sqlite数据库的char,varchar,text,nchar,nvarchar,ntext的区别
1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充. 2.VAR ...
- sqlite数据库的char,varchar,text,nchar,nvarchar,ntext的区别(转)
sqlite数据库存储table1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不 ...
- mysql中字符串类型char(n)和varchar(n)的区别
n的含义 根据网络上找到的结果(不能保证准确),在5.0.3以后版本中,n均代表字符数,而不是字节数:我用来测试的版本是5.7.20,该版本中,n表示字符数. 验证过程如下 建表 CREATE TAB ...
- MySQL——字符串类型——char(n) 和 varchar(n)
MySQL 的 char(n) 和 varchar(n) 括号中 n 代表字符的个数,而非字节个数,这里说的字符不论文字种类,假设一个字段的数据类型被规定为 char(2),则可以在这个字段上插入 ' ...
随机推荐
- 部件MSCOMCTL.OCX或其附件之一不能正确注册:一个文件丢失或无效
部件MSCOMCTL.OCX或其附件之一不能正确注册:一个文件丢失或无效: https://blog.csdn.net/yilese/article/details/71479908
- Vue快速认识
1.Vue入门初识 1.1 Vue.js是什么? 一位华裔前Google工程师(尤雨溪)开发的前端js库 作用: 动态构建用户界面 特点: 遵循MVVM模式 编码简洁, 体积小, 运行效率高, 移动/ ...
- 【转载】python中math模块常用的方法
转自:https://www.cnblogs.com/renpingsheng/p/7171950.html ceil #取大于等于x的最小的整数值,如果x是一个整数,则返回x ceil(x) Ret ...
- svg 放大缩小后的比例
function getCoords(evt) { // 计算出当前屏幕与svg的比例 var canvas = document.getElementById("canvase&qu ...
- SpringBoot--application.yml
application.properties 配置了端口号:9090 application.yml 也配置了端口号:8080 SpringBoot使用9090,以属性为主 1.在applicatio ...
- python:if else 语句
#!/usr/bin/python# -*- coding:utf-8 -*- import os fileName1 = 'a.txt'if os.path.exists(fileName1): f ...
- networkx graph save and load
Generate and parse JSON serializable data for NetworkX graphs. node_link_data(G[, attrs]) Returns da ...
- LitElement(六)生命周期
1.概述 基于LitElement的组件通过响应观察到的属性更改而异步更新. 属性更改是分批进行的,如果在请求更新后,更新开始之前,发生更多属性更改,则所有更改都将捕获在同一次更新中. 在较高级别上, ...
- hyper-v 80070057
微软官网搜索MediaCreation tool进行升级.
- jQuery实现TAB选项卡切换特效简单演示
本文实例为大家分享jQuery实现TAB选项卡切换特效,供大家参考,具体内容如下 1.tab切换 on ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 ...