MYSQL的数据类型详解

mysql的数据类型

在mysql数据库当中,每一个库都是有多张表来组成的,每一个表都是由行和列来组成的。

所谓建表就是声明列的过程,数据是以文件的形式保存在系统上的。因此,不同的列类型,占用的空间不一样。

选列的原则:够用又不浪费即可

在选择数据类型时考虑如下因素:

1、占据空间

2、储存范围

在声明列的时候,为什么要声明某个字段的数据类型?

数据类型有如下意义:

1、确定该字段的值的类型

2、可以确定该字段所占据的空间

3、可以确定该字段是定长还是变长的

4、该字段如何进行比较以及排序

5、该字段是否能够索引

数据类型大概柯分为:数值型、字符型、日期时间型、枚举型、布尔型

数值型又可以分为整型和浮点型:

其中整型包括:TINYINT、SMALLINT、MEDIUINT、INT、BIGINT

整型类型 占据空间大小 默认是否有无符号 有符号储存范围 无符号储存范围
TINYINT     1byte        有 -2^7~2^7-1  0-2^8-1
SMALLINT     2byte        有 -2^15~2^15-1  0-2^16-1
MEDIUINT     3byte        有 -2^23~2^23-1  0-2^24-1
INT     4byte        有 -2^31~2^31-1  0-2^32-1
BIGINT     8byte        有 -2^63~2^63-1  0-2^64-1

浮点型:包括单精度和双精度浮点型

float(l.f):其中l表示浮点型的长度,不包含正负符号和小数点。f表示小数点的位数



字符型: 包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB等类型

字符类型 是否区分大小写 定长还是 变长 占用空间 实占空间 储存范围
CHAR(n) 不区分 定长 n n 0-255bytes
VARCHAR(n) 不区分 变长 n m 0-65535bytes
BINARY 区分 定长 n n 0-255bytes
VARBINARY 区分 变长 n m 0-65532bytes
BLOB 不区分 变长 n m 0-65535bytes

还有一个为text的字符类型,用来储存文本型的字符

对于变长型的字符类型来说,一般有1-2个字节用来记录储存的字符数。

对于定长型的字符类型来说,如果储存的宽度不足给定的储存宽度,那么就会在该字段后面补空格

取出该字段的时候,会将后面的空格删除掉。(如果内容后面有空格的话,将会被删掉)



日期时间型:包括DATE、TIME、DATETIME、TIMESTAMP

日期时间型 储存范围 占用空间
日期型DATE "1000-01-01→9999-12-31" 3bytes
时间型TIME "-838:59:59"→"838:59:59" 3bytes
日期时间型DATETIME "1000-01-01 00:00:00"→"9999-12-31 23:59:59" 8bytes
时间戳型TIMESTAMP 是1970-01-01 00:00:00到当前的秒数 4bytes
年型YEAR(2) "00-99" 1bytes
年型YEAR(4) "1901-2155" 1bytes


枚举型ENUM:就是列出某个字段的所有可能取得值。储存范围是0-65535bytes

布尔型:只有两种取值,1表示true,0表示false



修饰符

在声明列的时候,可以为这些列加上修饰符,这些修饰符有:

unsigned:表示无符号,非负数,一般用于数值型当中

primary key:设定该列为主键

not  null:该列上的值不能为空

default :表示在声明某个列时,设定该列的默认值

auto_increment:加上该修饰符后,该列必须为整型,且非负数,非空,该列必须是主键或唯一键

例如:CREATE TABLE test(ID INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, Name CHAR(20))

时间: 2024-10-16 15:07:22

MYSQL的数据类型详解的相关文章

MySQL 数据类型 详解

MySQL 数据类型 详解 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定数值字段中的值是否有正负之分或者用零填补. 1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节 范围(-128~127) smallint(m) 2个字节 范围(-32768~32767) mediumint(m) 3个字节 范围(-8388608~83

Mysql数据类型详解

MySQL数据类型包括 1.整数类型,浮点数类型和定点数类型 2.时间和日期类型 3.字符串类型 4.二进制类型 整数类型 标准的SQL中支持INTEGER,SMALLINT这两类整数类型,MySQL除了这两个还有其他的,见下表 类型 大小 范围(有符号) 范围(无符号) 默认宽度 TINYINT 1 字节 (-128,127) (0,255) 4 SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 6 MEDIUMINT 3 字节 (-8 388 608,8 3

MySQL 数据类型 详解 (转载)

数值类型 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定数值字段中的值是否有正负之分或者用零填补. 表列出了各种数值类型以及它们的允许范围和占用的内存空间. 类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1 字节 (-128,127) (0,255) 小整数值 SMALLINT 2 字节 (-32 768,32 767) (0,65

MySQL数据库优化详解(收藏)

MySQL数据库优化详解 mysql表复制 复制表结构+复制表数据mysql> create table t3 like t1;mysql> insert into t3 select * from t1;mysql索引 ALTER TABLE用来创建普通索引.UNIQUE索引或PRIMARY KEY索引ALTER TABLE table_name ADD INDEX index_name (column_list)ALTER TABLE table_name ADD UNIQUE (colu

MySQL配置文件mysql.ini参数详解、MySQL性能优化

MySQL配置文件mysql.ini参数详解.MySQL性能优化 my.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数. my.ini分为两块:Client Section和Server Section.   Client Section用来配置MySQL客户端参数.   要查看配置参数可以用下面的命令: show variables like '%innodb%'; # 查看innodb相关配置参数 show status like

PHP100-第三讲 PHP5.4 语法、常量、变量、数据类型详解

内容摘要: ①PHP5.4 的基本语法与写作格式 ②PHP5.4 的变量与变量数据类型 ③PHP5.4 的系统常量与自定义常量 PHP5.4 的基本语法与写作格式: 任何程序语言都有自己的语言风格,PHP语言也有自己独特的风格,虽然也继承了许多Perl和C的语言特色.但经过多年的发展PHP已经成为了一个成熟 的编程语言,所以我们还需要认真的学习PHP的独特语法.PHP一个很大的特色就是与HTML标签语言进行混编,这种模式是今后很长一段学习过程中所用到 的格式,因此我们先来通过一个例子来认识一下P

MySQL中EXPLAIN详解

MySQL中EXPLAIN详解 explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了: 如:explain select username,first_name form hx,itlearner where a.id=b.id EXPLAIN列的解释: id:本次 select 的标识符.在查询中每个 select都有一个顺序的数值. select_type :查询类

MySQL关闭过程详解和安全关闭MySQL的方法

这篇文章主要介绍了MySQL关闭过程详解和安全关闭MySQL的方法,在了解了关闭过程后,出现故障能迅速定位,本文还给出了安全关闭MySQL的建议及方法,需要的朋友可以参考下 www.qdmm.com/BookReader/114529,58420799.aspx www.qdmm.com/BookReader/114529,58484600.aspx www.qdmm.com/BookReader/114529,58486256.aspx www.qdmm.com/BookReader/1145

如何查看mysql数据库的引擎/MySQL数据库引擎详解

一般情况下,mysql会默认提供多种存储引擎,你可以通过下面的查看: 看你的mysql现在已提供什么存储引擎:mysql> show engines; 看你的mysql当前默认的存储引擎:mysql> show variables like '%storage_engine%'; 你要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):mysql> show create table 表名; MySQL数据库引擎详解 作为Java程序员,MySQL数据库