分析MySQL数据类型的长度

分析MySQL数据类型的长度

      MySQL有几种数据类型可以限制类型的"长度",有CHAR(Length)、VARCHAR(Length)、TINYINT(Length)、SMALLINT(Length)、MEDIUMINT(Length)、INT(Length)、BIGINT(Length)、FLOAT(Length, Decimals)、DOUBLE(Length, Decimals)和DECIMAL(Length, Decimals)。

      然而,这些数据类型的长度,并不是都指数据的大小。具体说就是:
(1)CHAR、VARCAHR的长度是指字符的长度,例如CHAR[3]则只能放字符串"123",如果插入数据"1234",则从高位截取,变为"123"。 VARCAHR同理。

(2)TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT的长度,其实和数据的大小无关!Length指的是显示宽度,举个例子:

[cpp] view plaincopy
  1. mysql> create table test(id int(3) zerofill);  
  2. Query OK, 0 rows affected (0.09 sec)  
  3.   
  4. mysql> insert into test(id) values(1),(1234);  
  5. Query OK, 2 rows affected (0.06 sec)  
  6. Records: 2  Duplicates: 0  Warnings: 0  
  7.   
  8. mysql> select * from test;  
  9. +------+  
  10. | id   |  
  11. +------+  
  12. |  001 |  
  13. | 1234 |  
  14. +------+  
  15. 2 rows in set (0.00 sec)  
  

可以看出,id的显示宽度为3,不足的左边补0,数据长度超过的则原样输出。如果没有zerofill,则看不出显示宽度,没有前导零。

(3)FLOAT、DOUBLE和DECIMAL的长度指的是全部数位(包括小数点后面的),例如DECIMAL(4,1)指的是全部位数为4,小数点后1位,如果插入1234,则查询的数据是999.9。过程如下

 

[cpp] view plaincopy
  1. mysql> alter table test add realnum decimal(4,1);  
  2. Query OK, 2 rows affected (0.03 sec)  
  3. Records: 2  Duplicates: 0  Warnings: 0  
  4.   
  5. mysql> insert into test(id,realnum) values(2,1234);  
  6. Query OK, 1 row affected, 1 warning (0.05 sec)  
  7.   
  8. mysql> select * from test;  
  9. +------+---------+  
  10. | id   | realnum |  
  11. +------+---------+  
  12. |  001 |    NULL |  
  13. | 1234 |    NULL |  
  14. |  002 |   999.9 |  
  15. +------+---------+  
  16. 3 rows in set (0.02 sec)  

附录 常见MySQL数据类型(留作备忘)

类 型

大 小

描 述

CAHR(Length)

Length字节

定长字段,长度为0~255个字符

VARCHAR(Length)

String长度+1字节或String长度+2字节

变长字段,长度为0~65 535个字符

TINYTEXT

String长度+1字节

字符串,最大长度为255个字符

TEXT

String长度+2字节

字符串,最大长度为65 535个字符

MEDIUMINT

String长度+3字节

字符串,最大长度为16 777 215个字符

LONGTEXT

String长度+4字节

字符串,最大长度为4 294 967 295个字符

TINYINT(Length)

1字节

范围:-128~127,或者0~255(无符号)

SMALLINT(Length)

2字节

范围:-32 768~32 767,或者0~65 535(无符号)

MEDIUMINT(Length)

3字节

范围:-8 388 608~8 388 607,或者0~16 777 215(无符号)

INT(Length)

4字节

范围:-2 147 483 648~2 147 483 647,或者0~4 294 967 295(无符号)

BIGINT(Length)

8字节

范围:-9 223 372 036 854 775 808~9 223 372 036 854 775 807,或者0~18 446 744 073 709 551 615(无符号)

FLOAT(Length, Decimals)

4字节

具有浮动小数点的较小的数

DOUBLE(Length, Decimals)

8字节

具有浮动小数点的较大的数

DECIMAL(Length, Decimals)

Length+1字节或Length+2字节

存储为字符串的DOUBLE,允许固定的小数点

DATE

3字节

采用YYYY-MM-DD格式

DATETIME

8字节

采用YYYY-MM-DD HH:MM:SS格式

TIMESTAMP

4字节

采用YYYYMMDDHHMMSS格式;可接受的范围终止于2037年

TIME

3字节

采用HH:MM:SS格式

ENUM

1或2字节

Enumeration(枚举)的简写,这意味着每一列都可以具有多个可能的值之一

SET

1、2、3、4或8字节

与ENUM一样,只不过每一列都可以具有多个可能的值


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mysql partition by

一,看原表 select * from user; 二,查询同组年级最大的 select username ,SUBSTRING_INDEX( GROUP_CONCAT(age order by age desc) ,,,1) uuid from ( select uuid ,username ,password ,age from user )b GROUP BY uuid asc; 转载于:https://www.cn…

tomcat内存溢出,修改设置

问题描述: 1. java.lang.OutOfMemoryError: Java heap space JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的…

Mysql导入大容量SQL文件数据问题

mysql在通过导入sql文件可能会出现下面二个问题:1.如果sql文件过大,会出现"MySQL server has gone away"问题;2.如果sql文件数据有中文,会出现乱码 解决问题:问题1:出现MySQL server has gone away"问题,是因为mysql默认的"max_allowed_packet"变量…

电脑的引导启动快捷键

组装机主板品牌笔记本品牌台式机主板品牌启动按键笔记本品牌启动按键台式机品牌启动按键华硕主板F8联想笔记本F12联想台式机F12技嘉主板F12宏基笔记本F12惠普台式机F12微星主板F11华硕笔记本ESC宏基台式机F12映泰主板F9惠普笔记本F9戴尔台式机ESC梅捷主板ESC或F12联想ThinkpadF…

swift 4.2 - 根据字符串 push指定控制器

俩个方法 1. 创建类写成 类方法 import UIKit /** 注释:获得VC* 1.字符串 和使用的控制器,直接跳转* 2.用过字符串获得对应VC*/ class JYGetPushVc: NSObject {/// 指定字符串VC跳转,设置titlestatic func pushVcByVcNameAndTitle(pushVcNameStr:String…

linux下IPTABLES配置详解

如果你的IPTABLES基础知识还不了解,建议先去看看.开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[roottp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destination Chain FORWARD (polic…

centos通过添加chrome源来安装chrome

在google网站下载chrome速度很慢,但是添加了chrome的源之后,就可以在终端通过yum install 来安装chrome了,会快很多。 首先在/etc/yum.repos.d里建立一个名为google.repo文件,然后复制以下代码到其中,然后保存&#xf…

鼠标滑过抖动图标

在线演示 本地下载 转载于:https://www.cnblogs.com/qixidi/p/10079608.html

centos7安装VLC播放器

1.安装eple 下载地址:https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm 2.安装nux-dextop下载地址:http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm3.执行yum update 4.…

每日站立会议 12.06

每日站立会议 今天我们开始了对button按钮中素菜部分代码的编写,我负责编写时代码的复审。转载于:https://www.cnblogs.com/grrd17s/p/10079973.html

CentOS安装五笔输入法

安装五笔需要安装一个 ibus-table-wubi 包 yum install ibus libusb ibus-libs ibus-table-wubi 安装好后注销一下系统,让ibus读取新的配置,然后就可以在ibus的设置界面添加wubi了 右击桌面右上角的输入法图标,选择 Preferences,…

Spring的两种代理方式:JDK动态代理和CGLIB动态代理

代理模式 代理模式的英文叫做Proxy或Surrogate,中文都可译为”代理“,所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客…

virtualbox 启动时报Kernel driver not installed (rc=-1908) 的错误

新建虚拟机后启动时出现如下错误:Kernel driver not installed (rc-1908)The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Re-setup the kernel module by executing/etc/init.d/vboxdrv …

拒绝推断问题(转)

拒绝推断(Reject Inference)是金融领域信用评分中的一个术语。对于要向银行借钱的人,我们需要考虑他们赖账的可能性。这样就需要根据他们的各种行为信息和人口统计学特征作为输入,来建立一个信用评分模型,这个建模过程…

查看CentOS系统运行了多久使用uptime命令

对于一些人来说系统运行了多久是无关紧要的,但是对于服务器管理员来说,这是相当重要的信息。 服务器在运行重要应用的时候,必须尽量保证长时间的稳定运行,有时候甚至要求零宕机。 那么我们怎么才能知道服务器运行了多久呢&#xf…

python学习day26 封装 property 类方法 静态方法 反射

封装 广义上面向对象的封装 :代码的保护,面向对象的思想本身就是一种只让自己的对象能调用自己类中的方法 狭义上的封装 —— 面向对象的三大特性之一属性 和 方法都藏起来 不让你看见 私有属性 class Person:__key 123 # 私有静态属性def __init__(se…

CentOS统的7个运行级别的含义

CentOS系统有7个运行级别(runlevel) 运行级别就是操作系统当前正在运行的功能级别。级别是从0到6,具有不同的功能。这些级别定义在/ect/inittab文件中。这个文件是init程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d目录下的文件。 #查看系统运行…

noip2004普及组第2题 花生采摘

题目描述 鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!――熊字”。 鲁宾逊先生和多多都很开心,因为花生正是…

命令补全

yum install -y bash-completion转载于:https://www.cnblogs.com/tony3154/p/10095259.html

Centos查看用户登陆记录

首先简单介绍一下Centos中记录登陆信息的日志文件。 有关当前登录用户的信息记录在文件utmp中;登录进入和退出纪录在文件wtmp中;最后一次登录文件可以用lastlog命令察看。 数据交换、关机和重起也记录在wtmp文件中。所有的纪录都包含时间戳。 每次有一个…