字符串类型

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的更多相关文章

  1. mysql列类型char,varchar,text,tinytext,mediumtext,longtext的比较与选择

    储存不区分大小写的字符数据 TINYTEXT 最大长度是 255 (2^8 – 1) 个字符. TEXT 最大长度是 65535 (2^16 – 1) 个字符. MEDIUMTEXT 最大长度是 16 ...

  2. mysql 字符串类型 char varchar

    字符类型用在存储名字.邮箱地址.家庭住址等描述性数据   char指的是定长字符,varchar指的是变长字符 #官网:https://dev.mysql.com/doc/refman/5.7/en/ ...

  3. mysql中char,varchar,text

    1.char char最大长度是255字符,注意是字符数和字符集没关系. 1)可以有默认值, 2)尾部有空格会被截断 3)不管汉字.英文,还是其他编码,都可以存255字符 2.varchar 1)va ...

  4. mysql的char,varchar,text,blob

    mysql的char,varchar,text,blob是几个有联系但是有有很大区别的字段类型,这算是mysql的基础吧,可是基础没有学好,恶补一下. 先简单的总结一下: char:定长,最大255个 ...

  5. [Android Pro] sqlite数据库的char,varchar,text,nchar,nvarchar,ntext的区别

    reference : http://blog.csdn.net/xingfeng0501/article/details/7817121 1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索 ...

  6. sqlite数据库的char,varchar,text,nchar,nvarchar,ntext的区别

    1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充. 2.VAR ...

  7. sqlite数据库的char,varchar,text,nchar,nvarchar,ntext的区别(转)

    sqlite数据库存储table1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不 ...

  8. mysql中字符串类型char(n)和varchar(n)的区别

    n的含义 根据网络上找到的结果(不能保证准确),在5.0.3以后版本中,n均代表字符数,而不是字节数:我用来测试的版本是5.7.20,该版本中,n表示字符数. 验证过程如下 建表 CREATE TAB ...

  9. MySQL——字符串类型——char(n) 和 varchar(n)

    MySQL 的 char(n) 和 varchar(n) 括号中 n 代表字符的个数,而非字节个数,这里说的字符不论文字种类,假设一个字段的数据类型被规定为 char(2),则可以在这个字段上插入 ' ...

随机推荐

  1. C++中局部变量的返回

    在写 “根据中序和后序遍历顺序,构建树的问题” 时,原本这只是一个非常简单的问题,但是突然发现一直有错误.代码如下: node* get_root(int x1, int x2, int y1, in ...

  2. phpstorm实现分屏展示代码

    第一种 选择你要分屏的页面 [Window]—>[Editor Tabs]—>[Split Vertically]or[Split Horizontally]  第二种 把鼠标箭头放到你想 ...

  3. 解决:java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlObject报错问题。

    利用POI操作PPT一直报如下错误java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlObject 是因为项目中缺少一个包xmlbeans ...

  4. vue学习指南:第十五篇(详细) - Vuex

    Vuex 一.基础 1. Vuex 相当于 vue的数据仓库 2. Vuex 是 vue 的状态管理工具 3. Vuex中的 state 只能通过mutations 改变 4. Vuex很适合做购物车 ...

  5. 一文带你看清HTTP所有概念(转)

    一文带你看清HTTP所有概念   上一篇文章我们大致讲解了一下 HTTP 的基本特征和使用,大家反响很不错,那么本篇文章我们就来深究一下 HTTP 的特性.我们接着上篇文章没有说完的 HTTP 标头继 ...

  6. [JZOJ5060] 公路建设

    题目描述 在Byteland一共有n个城市,编号依次为1到n,它们之间计划修建m条双向道路,其中修建第i条道路的费用为ci. Byteasar作为Byteland公路建设项目的总工程师,他决定选定一个 ...

  7. mysql的优化总结

    1,允许数据库适当冗余提高查询效率 2,对于索引的使用要适当

  8. IIS学习笔记

    IIS传输笔记 1.作用 IIS 将网站开发代码传输到服务器上,就是为了网站的发布 2.下载安装 我是使用的云服务器,windows sever 2012 2.1打开"服务器管理器" ...

  9. 《Head first设计模式》学习笔记 – 迭代器模式

    <Head first设计模式>学习笔记 – 迭代器模式 代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示. 爆炸性新闻:对象村餐厅和对象村煎饼屋合并了!真是个 ...

  10. 使用pip install mysqlclient命令安装mysqlclient失败?(基于Python)

    我们使用Django.flask等来操作MySQL,实际上底层还是通过Python来操作的.因此我们想要用Django来操作MySQL,首先还是需要安装一个驱动程序.在Python3中,驱动程序有多种 ...