`
xinklabi
  • 浏览: 1591646 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

Mysql数据库int(1)和tinyint(1)的区别&&扩展阅读

 
阅读更多

转自:http://blog.csdn.net/phpwish/article/details/7845921

 

今天看项目的数据库结构设计,发现一个奇怪的地方。

`xxx_detail`   `delflag` int(1) NOT NULL DEFAULT '0' COMMENT '删除标志',


`xxx_category`   `delflag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除标记',

 

问题:int(1) 和 tinyint(1) 有什么区别呢?

像这样的设计,反正我是不会写int(1)的。

 

 查了下,mysql中设置了储存类型后,储存是定长的,也就是说,int(1) 和 int(4) 在硬盘中所占的字节数都是一样的。

 

我们知道,int类型占4个字节,tinyint占1个字节。int(1) 和 int(4) 从本身长度还是存储方式上都是一样的,区别就是显示的长度不同,但是要设置一个参数:如果列制定了zerofill 就会用0填充显示,int(4)指定后就会显示为0002。

 

int(1)和tinyint(4) 相比,肯定int 大。


注意数字类型后面括号中的数字,不表示长度,表示的是显示宽度,这点与 varchar、char 后面的数字含义是不同的。


也就是说不管 int 后面的数字是多少,它存储的范围始终是 -2^31 到 2^31 - 1。
 
综上整型的数据类型括号内的数字不管是多少,所占的存储空间都是一样


tinyint一个字节   smallint  两个字节   MEDIUMINT三个字节 

 

显而易见,int(1) 和 tinyint(1) ,在设计数据库的时候应该选择tinyint(1)。所占的储存空间越少越好,当然要够用才行。像这样储存一个 个位数的字段,还是用tinyint(1)的好。

 

总结:

1.规定类型之后,存储是定长的,int(1)和int(4)从本身长度还是存储方式上都是一样的。mysql里,int(1)和int(4)的区别就是显示的长度,但是要设置一个参数:如果列制定了zerofill 就会用0填充显示,如2 int(3)指定后就会显示为002


2.int 存储占4个字节, tinyint   存储占1个字节,存储长度决定了他们表示的数字范围不同。int表示的数字范围是:从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。tinyint 表示的范围是0-255之间的数字。


3.tinyint(1),和tinyint(3)没什么区别,存123都能存的下,而如果tinyint(3) zerofill 的话,插入值 12,会存储012,zerofill自动左边补零,这才是限制显示长度。

 

 

上面总结的有点乱。下面精简总结:

tinyint(1)  和 tinyint(3) 没什么区别,占用字节都是一位,存储范围都是一样的

tinyint(3) zerofill ,当插入的数据少于3位的时候,左边自动补零,这才是限制显示长度

int(1) 和 tinyint(1) ,够用的情况下,优先选择tinyint(1),因为占字节少、节省空间。

tinyint一个字节   smallint  两个字节   MEDIUMINT三个字节  int 4个字节  BIGINT 8个字节。

 

但是,varchar(5)  这里的5 限制的是储存字符的个数,字符不分贵贱(不分 中文、英文、数字...)。

分享到:
评论

相关推荐

    MySQL数据库设计、优化.pptx

    MySQL数据库设计与优化是数据库管理中的重要环节,它关乎到系统的性能、稳定性和可扩展性。本讲座由叶金荣分享,主要涵盖了多个关键方面,包括规范、基础规范、命名规范、库表规范、字段规范、索引规范以及开发环境...

    MYSQL数据库命名及设计规范

    MYSQL数据库命名及设计规范是数据库设计的重要组成部分,它们决定了数据库的性能、扩展性和数据完整性。本文将详细介绍MYSQL数据库命名及设计规范的重要性和实现方法。 设计原则 MYSQL数据库设计的设计原则是遵守 ...

    Mysql数据库(学习数据库)

    MySQL数据库是一种广泛应用于Web应用程序的关系型数据库管理系统(RDBMS),以其高效、稳定和易用性而备受青睐。本文将深入探讨MySQL的基本概念、特点、SQL数据类型以及约束机制。 一、基本概念 1. 数据库服务器:...

    MySQL 数据库设计实践

    ### MySQL 数据库设计实践 ...通过对MySQL数据库的设计实践进行深入探讨,我们可以更好地理解如何构建高效、稳定且易于维护的数据库系统。这不仅有助于提高数据处理能力,还能为用户提供更好的服务体验。

    PHP+MYSQL数据库编程资料

    在PHP和MySQL数据库编程中,理解数据类型和MySQL常用命令是至关重要的。PHP是一种流行的服务器端脚本语言,常用于动态网页开发,而MySQL则是一个关系型数据库管理系统,两者结合可以构建高效的数据驱动应用程序。 ...

    mysql数据库的学习资料

    MySQL数据库是一种广泛使用的开源关系型数据库管理系统,以其高效、可靠和易于使用而闻名。这份“mysql数据库的学习资料”包含了深入理解和掌握MySQL所需的关键知识点。以下是对这些知识点的详细阐述: 1. **数据库...

    MySQL数据库设计规范1

    MySQL数据库设计规范是确保数据库高效、稳定和易于维护的关键因素。以下是一些核心要点: **一、表设计规范** 1. **命名规范**:库名、表名、字段名应使用小写字母,并以下划线(_)分隔,如`db_name`、`table_name`...

    MySQL数据库:表的字段类型.pptx

    作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。 表的字段类型 数值类型 表的字段类型 日期和时间类型 表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。 每个时间类型有...

    (第八讲) Mysql 简介和创建新的数据库

    - INT:整数类型,包括TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT,用于存储整数值。 - VARCHAR:可变长度字符串,适用于存储长度不固定的文本。 - CHAR:固定长度字符串,存储长度固定的文本。 - FLOAT和DOUBLE:...

    MySql数据库安装包及相关帮助文档

    - 常见的数据类型有整型(TINYINT, INT, BIGINT)、浮点型(FLOAT, DOUBLE)、字符串型(CHAR, VARCHAR, TEXT)、日期和时间类型(DATE, DATETIME, TIMESTAMP)等。 4. **SQL语句基础**: - **DDL(Data ...

    MySql数据库设计技巧

    MySQL数据库设计技巧是数据库管理员和开发人员在构建高效、可靠且可扩展的数据库系统时必须掌握的核心技能。本文将深入探讨几个关键知识点,帮助你优化MySQL数据库的设计。 1. 正确选择数据类型:理解每种数据类型...

    labview与mysql数据库资料.7z

    1. **LabVIEW MySQL驱动程序**:为了在LabVIEW中连接和操作MySQL数据库,首先需要安装支持MySQL的LabVIEW驱动程序,如“MySQL Database Toolkit”或“Database Connectivity Toolkit”。这些工具包提供了所需的接口...

    mysql数据库实用教程课后习题及章总结

    MySQL数据库是一种广泛使用的开源关系型数据库管理系统,它具有丰富的功能和高效的性能。本教程主要涵盖了数据库管理系统的基本概念、MySQL 8.0的新特性、数据库体系结构、关系数据库的优缺点、MySQL服务的启动方法...

    mysql数据库

    5. **数据类型**:MySQL支持多种数据类型,包括整数(INT, TINYINT等)、浮点数(FLOAT, DOUBLE)、字符串(VARCHAR, CHAR)、日期时间(DATE, DATETIME)等,选择合适的数据类型对于存储和处理数据至关重要。...

    mysql数据库开发的36条原则

    【MySQL数据库开发的36条原则】是一套实践总结出的数据库设计规范,旨在提高数据库性能、可维护性和稳定性。这些原则主要针对数据库开发者,强调了数据库设计的关键要素。 1. **尽量不在数据库做运算**:数据库的...

    MySQL数据库的使用-学生信息管理系统

    在PHP中,我们可以使用PDO(PHP Data Objects)或者mysqli扩展来连接和操作MySQL数据库。例如,插入新学生数据的PHP代码可能如下: ```php $servername = "localhost"; $username = "username"; $password = ...

    mysql数据库命名与设计标准规范.docx

    MySQL数据库的命名与设计规范是构建高效、稳定和易于维护的数据库系统的关键。遵循这些标准可以确保数据的一致性、减少冗余,并提高系统的可扩展性。以下是关于MySQL数据库命名和设计的一些主要知识点: 1. **标准...

    2021 最新MySQL互联网大厂面试宝典(附500题)-185页.pdf

    6. MySQL的binlog三种格式及区别:binlog用于记录MySQL数据库中所有对数据库进行修改的操作,包含statement、row和mixed三种格式。statement格式记录每一条会修改数据的SQL语句,row格式记录了每一行数据的改变,而...

Global site tag (gtag.js) - Google Analytics