`
happmaoo
  • 浏览: 4334096 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MySQL数据库表的列类型

阅读更多

MySQL数据库表的列类型
1. MySQL支持多种列类型:

数值类型、日期/时间类型、字符串(字符)类型。


1.
数值类型:
BIT[(M)],位字段类型;
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

TINYINT[(M)],很小的整数。带符号的范围是-128127。无符号的范围是0255

BOOL
BOOLEAN,是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。是TINYINT(1)的同义词。

SMALLINT[(M)]
,小的整数。带符号的范围是-3276832767。无符号的范围是065535

MEDIUMINT[(M)]
,中等大小的整数。带符号的范围是-83886088388607。无符号的范围是016777215

INT[(M)]
INTEGER[(M)],普通大小的整数。带符号的范围是-21474836482147483647。无符号的范围是04294967295

BIGINT[(M)]

FLOAT[(M,D)]
DOUBLE[(M,D)]DECIMAL[(M[,D])],等等

2.
日期和时间类型:
DATE,日期。支持的范围为'<chsdate year="1000" month="1" day="1" islunardate="False" isrocdate="False" w:st="on">1000-01-01</chsdate>''<chsdate year="9999" month="12" day="31" islunardate="False" isrocdate="False" w:st="on">9999-12-31</chsdate>'MySQL'YYYY-MM-DD'格式显示DATE

DATETIME
,日期和时间的组合。支持的范围是'1000-01-01 00:00:00''9999-12-31 23:59:59'MySQL'YYYY-MM-DD HH:MM:SS'格式显示DATETIME

TIMESTAMP[(M)]
,时间戳。TIMESTAMP值返回后显示为'YYYY-MM-DD HH:MM:SS'格式的字符串,显示宽度固定为19个字符。

TIME
,时间。范围是'-838:59:59''838:59:59'MySQL'HH:MM:SS'格式显示TIME

YEAR[(2|4)]
,两位或四位格式的年。默认是四位格式。在四位格式中,允许的值是190121550000。在两位格式中,允许的值是7069,表示从1970年到2069年。MySQLYYYY 格式显示YEAR

3.
字符串类型:
1)字符串数据类型的列定义可以包括指定字符集的CHARACTER SET属性
c1 CHAR(20) CHARACTER SET utf8
2
)常见的字符串类型
CHAR,单个char表示CHAR(1)的同义词,字符长度为1
CHAR(M)
,固定长度字符串,当保存时在右侧填充空格以达到指定的长度。M表示列长度。M的范围是0255个字符。注释:当检索CHAR值时尾部空格被删除。
BINARY(M)
BINARY类型类似于CHAR类型,但保存二进制字节字符串而不是非二进制字符串。

VARCHAR(M),变长字符串。M 表示最大列长度。M的范围是065,535(VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定。最大有效长度是65,532字节)。注释:MySQL 5.1遵从标准SQL规范,并且不删除VARCHAR值的尾部空格。

注意:MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定)。在 MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节的数据,起始位和结束位占去了3个字 节,也就是说,在4.1或以下版本中需要使用固定的TEXT或BLOB格式存放的数据可以使用可变长的varchar来存放,这样就能有效的减少数据库文 件的大小。


VARBINARY(M)
VARBINARY类型类似于VARCHAR类型,但保存二进制字节字符串而不是非二进制字符串。但是 VARBINARY(M)中M的取值范围却不同0 <= M <= 255


TINYBLOB
,最大长度为255(28–1)字节的BLOB列。
BLOB[(M)]
,最大长度为65,535(216–1)字节的BLOB列。
MEDIUMBLOB

LONGBLOB

TINYTEXT
TEXT[(M)]
MEDIUMTEXT
LONGTEXT
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

ENUM('value1','value2',...),枚举类型。只能有一个值的字符串
SET('value1','value2',...)


<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

关于列类型更详细信息参考:http://dev.mysql.com/doc/refman/5.1/zh/column-types.html

4.着重分析字符串类型:
1CHARVARCHAR类型的不同:
CHAR
为固定长度;VARCHAR为可变长度
2
BINARYVARBINARY类似于CHARVARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。
也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
3
BLOBTEXT类型
a. BLOB

二进制大对象,可以容纳可变数量的数据。

4BLOB类型:TINYBLOBBLOBMEDIUMBLOBLONGBLOB。它们只是可容纳值的最大长度不同。
BLOB
列被视为二进制字符串(字节字符串)
BLOB
列没有字符集,并且排序和比较基于列值字节的数值值。
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

b. TEXT:
4TEXT类型:TINYTEXTTEXTMEDIUMTEXTLONGTEXT。这些对应4BLOB类型,有相同的最大长度和存储需求.
TEXT
列被视为非二进制字符串(字符字符串)
TEXT
列有一个字符集,并且根据字符集的 校对规则对值进行排序和比较。

<!--[if !supportLists]-->· <!--[endif]-->TEXTBLOB列的存储或检索过程中,不存在大小写转换。

<!--[if !supportLists]-->· <!--[endif]-->在大多数方面,可以将BLOB列视为能够足够大的VARBINARY列。

<!--[if !supportLists]-->· <!--[endif]-->可以将TEXT列视为VARCHAR列。

<!--[if !supportLists]-->· <!--[endif]-->BLOBTEXT在以下几个方面不同于VARBINARYVARCHAR
1.
当保存或检索BLOBTEXT列的值时不删除尾部空格。(这与VARBINARYVARCHAR列相同)。
请注意比较时将用空格对TEXT进行扩充以适合比较的对象,正如CHARVARCHAR
2.
对于BLOBTEXT列的索引,必须指定索引前缀的长度。对于CHARVARCHAR,前缀长度是可选的。

VARCHARBLOBTEXT类是变长类型。每个类型的存储需求取决于列值的实际长度(用前面的表中的L表示),而不是该类型的最大可能的大小。

最后需要了解:

11.5.列类型存储需求

分享到:
评论

相关推荐

    MySql数据库的列类型(字段类型).

    MySql数据库的列类型(字段类型).MySql数据库的列类型(字段类型).MySql数据库的列类型(字段类型).MySql数据库的列类型(字段类型).

    MySql数据库的列类型(字段类型).pdf

    MySql数据库的列类型(字段类型).pdf

    MySql数据库的列类型(字段类型)[参考].pdf

    MySql数据库的列类型(字段类型)[参考].pdf

    java比较两个mysql数据库中的表信息差异

    一个简单JAVA 小工程进行两个MYSQL数据库对象的比较,导入eclipse中,修改jdbc.properties文件中的JDBC信息,然后直接运行action包类中的main方法,生成EXCEL,excel中包含表,表中列,索引,函数过程差异比对结果。...

    MySql数据库的列类型(字段类型)

    详细介绍了mysql的不同列表类型,mysqler们可以大补一下.

    Java实体类字段生成工具类-将数据库表列字段转为Java实体类驼峰字段

    1、在Java开发中,常常需要将数据库表列字段换成Java实体类字段。但是手动实现这个转换过程比较慢,且容易出错,影响开发效率。为了解决这个问题,开发了这个Java实体类字段生成工具类。 2、该工具类可以将数据库表...

    mysql数据库应用形考任务(实训1~4.zip)

    熟悉MySQL环境的使用,掌握在MySQL中创建数据库和表的方法,理解MySQL支持的数据类型、数据完整性在MySQL下的表现形式,练习MySQL数据库服务器的使用,练习CREATE TABLE,SHOW TABLES,DESCRIBE TABLE,ALTER TABLE...

    mysql数据库全部字段类型

    BIGINT 大整数,带符号的范围是-9223372036854775808到9223372036854775807 ...BLOB 最大长度为65,535(216–1)字节的BLOB列 BOOL 是TINYINT(1)的同义词。zero值被视为假。非zero值视为真 CHAR 固定长度字符串

    Java比较两个mysql数据库表结构的差异

    一个简单JAVA 小工程进行两个MYSQL数据库对象的比较,导入eclipse中,修改jdbc.properties文件中的JDBC信息,然后直接运行action包类中的main方法,生成EXCEL,excel中包含表,表中列,索引,函数过程差异比对结果。...

    java获取mysql数据库表的属性

    本代码是通过java连接mysql数据库,然后获取当前数据库的所有表,以及所有表的属性(包括列名,列类型等)

    Mysql数据库设计.pdf

    Mysql数据库设计 数据库设计 MYSQL数据库设计 串转义序列 \0 NUL(ASCLL 0) \' \" \b 退格 \n 新⾏ \r 回车 \t 制表符 \\ 反斜杠 数值列类型 TINYINT 1字节 ⾮常⼩的整数 有符号值:-128⾄127 ⽆符号值:0⾄255 ...

    MySql数据库表的基础操作

    对数据库中的表进行操作前,需要先使用该数据库:use 数据库名; 1、创建表 语法:create table 表名(数据类型 字段名,数据类型 字段名......); 可以使用comment 或 -- (空格)添加注释: 2、显示表 显示当前数据库...

    mysql培训经典教程

    mysql 数据库 从列类型到优化等很详细

    Mysql数据库从入门到精通.rar

    4.MySQL的数据类型和建库策略详解 5.MySQL多表操作和备份处理 6.MySQL索引分类和各自用途 7.MySQL中的字符串比较函数 8.MySQL中字符串函数详细介绍 9.都出深入SELECT语句的查询功能 10.浅谈MySQL存储引擎选择InnoDB...

    MySQL数据库:表的创建SQL语句.pptx

    (列名 数据类型 [not null | null] [default 列默认值] [primary key]...) engine = 存储引擎 语法说明: []表示可选项,|表示二选一 if not exists ,加一个判断,只有该表不存在时才执行 engine=存储引擎,mysql...

    比较两个MYSQL数据库中的对象差异

    一个简单JAVA 小工程进行两个MYSQL数据库对象的比较,导入eclipse中,修改jdbc.properties文件中的JDBC信息,然后直接运行action类中的main方法,生成EXCEL,excel中包含表,表中列,索引,函数过程差异比对结果。...

    MySQL数据库查询优化

    课程大纲: 第1课 数据库与关系代数 综述数据库、关系代数、查询优化技术 综述数据库调优技术 预计时间1小时 第2课 数据库查询优化技术总揽 ...真正认识、掌握MySQL的查询优化技术,大步流星步入查询优化的高手之列。

    MySQL数据库管理与应用.docx

    数据库资料:1.创建数据库 create database 数据库名 2.查看数据库(查看所有的)...列名 数据类型 ) 是否允许为空: 如果该列设置不允许为空,那么填写数据时必须填写,否则报错 5.向表中插入数据:insert into 表名

    MySQL数据库中创建学生表SQL语句

    mysql数据库创建学生表 这个SQL语句会创建一个名为 "Students" 的表,其中包括以下列: • StudentID: 学生的唯一标识,使用 AUTO_INCREMENT 进行自动递增,作为主键。 • FirstName: 学生的名字,限制为最大长度为...

    mysql数据库设计规范.docx

    为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索引失效,...

Global site tag (gtag.js) - Google Analytics