mysql Int数据类型长度学习笔记

1、数值类型    列类型 需要的存储量    TINYINT 1 字节    SMALLINT 2 个字节    MEDIUMINT 3 个字节    INT 4 个字节
int(M) 在 integer 数据类型中,M 表示最大显示宽度。
在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。
和数字位数也无关系 int(3)、int(4)、int(8)
在磁盘上都是占用 4 btyes 的存储空间。

除了字段类型设 zerofill(补零)有点不同外,int(M) 跟 int 数据类型是相同的。
补零的情况:
mysql> desc test;
+-------+--------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------------------+------+-----+---------+----------------+
| id | int(3) unsigned zerofill | NO | PRI | NULL | auto_increment |
+-------+--------------------------+------+-----+---------+----------------+
1 row in set (0.01 sec)
mysql> select * from test ;
+------+
| id |
+------+
| 001 |
| 010 |
| 1234 |
+------+
3 rows in set (0.00 sec)
不补零:
mysql> desc test;
+-------+--------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------+------+-----+---------+----------------+
| id | int(3) | NO | PRI | NULL | auto_increment |
+-------+--------+------+-----+---------+----------------+
1 row in set (0.01 sec)
mysql> select * from test ;
+------+
| id |
+------+
| 1 |
| 10 |
| 1234 |
+------+
3 rows in set (0.00 sec)
感觉就是为了排版方便

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

 
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) 

表列出了各种数值类型以及它们的允许范围和占用的内存空间。
    类型 大小 范围(有符号) 范围(无符号) 用途
    TINYINT 1 字节 (-128,127) (0,255) 小整数值
    SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
    MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
    INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
    BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
    FLOAT 4 字节 (-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度
    浮点数值
    DOUBLE 8 字节 (1.797 693 134 862 315 7 E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度
    浮点数值
    DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值
    INT 类型

时间: 2024-10-28 09:50:18

mysql Int数据类型长度学习笔记的相关文章

Java 和 C/C++ 中的char 类型长度学习笔记

java 和 c/c++ 中的char 类型长度学习笔记 这两天在帮同学改一个加密程序.以下是c++语言的核心代码: char cpass[5]; for(int j=0;j<instring.length();j++){      cpass[j] ^= npwd;}   但是转成 java 写时会出现问题,乍一看,几乎可以原封不动的转换,可是结果却是有问题的. 经过网上资料的查找发现,是char类型的问题.实际上这就涉及到 c/c++ 中的数据类型和 java 的数据类型的比较. 先说 ch

python3数据类型的学习笔记

在 Python 中, 每个值都有一种数据类型,但您并不需要声明变量的数据类型.Python会根据每个变量的初始赋值情况分析其类型. Python 有多种内置数据类型.以下是比较重要的一些: Booleans[布尔型] 或为 True[真] 或为 False[假]. Numbers[数值型] 可以是 Integers[整数](1 和 2).Floats[浮点数](1.1 和 1.2).Fractions[分数](1/2 和 2/3):甚至是 Complex Number[复数]. Strings

PHP与MYSQL交互函数表学习笔记

最近一直在研究PHP与MYSQL,感觉PHP与MYSQL交互的函数都是过程化的,当然也有mysqli扩展,面向对象,Java和C#写多了之后,再写PHP,有些不适应,感觉又回到了学C的年代.今天学习了一些函数,记录下来,以便日后忘记时,可以参考. 说 明 函 数 名 函 数 详 细 函 数 说 明 建立数据库连接 mysql_connect() resource mysql_connect([string hostname [:port] [:/path/to/socket] [, string

oracle数据类型的学习笔记

一.数据类型 1.char char是一个定长字符串,会用空格填充来达到其最大长度.如果该列没有插入数据为null,插入数据没有到定义的长度,用空格填充. 2.nchar 这是一个包含unicode格式数据的定长字符串. 3.varchar2 目前这也是varchar的同义词.这是一个变长字符串,与char类型不同,它不会用空格填充至最大长度. 4.nvarchar2 这是一个包含unicode格式数据的变长字符串. 5.raw 这是一种变长二进制数据类型,这说明采用这种数据类型存储的数据不会发

MySQL入门教程之学习笔记

慢速SQL:执行时间超过给定时间范围的查询就称为慢速查询. 在MySQL中如何记录慢速SQL? 答:可以在my.cnf中设置如下信息:   1 [mysqld]  2 ; enable the slow query log, default 10 seconds  3 log-slow-queries  4 ; log queries taking longer than 5 seconds  5 long_query_time = 5  6 ; log queries that don't u

JAVA基本数据类型初始化学习笔记

除了boolean默认false,char--〉/u0000,其他的都为0 基本数据类型和引用类型的区别主要在于基本数据类型是分配在栈上的,而引用类型是分配在堆上的. 由此,我们分析一下"=="和equals()的区别. 首先,我定以两个String对象  代码如下 复制代码 String a="abc"; String b="abc"; 然后 if(a==b){System.out.println("a==b");} els

MYSQL存储过程及事件学习笔记

关于mysql下的存储过程以及事件的创建 下面这个存储过程主要实现的功能就是查询表里面半年前的数据,如果有就存到文件,然后将数据删除.  代码如下 复制代码 CREATE DEFINER = `root`@`localhost` PROCEDURE `NewProc`() BEGIN select COUNT(*) INTO @count from S_ACCOUNT  where date_add(registerTime, interval 6 month)<=NOW();  IF @cou

php数据类型的学习笔记

php数据类型 php支持八种原始类型(type). 4种标量类型:  string (字符串),integer(整型),float(浮点型,也作double),boolean(布尔型) 两种复合类型:  array(数组),object(对象) 两种特殊类型:  resource(资源),NULL(空) 布尔型(boolean) 语法:要指定一个布尔值,使用关键字 TRUE 或 FALSE.两个都是大小写不敏感的. 当转换为 boolean 时,以下值被认为是 FALSE:  1> 布尔值 F

Ubuntu Server 12.04 安装mysql 5.6.10学习笔记

首先,下载二进制版本的mysql包: http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.10-linux-glibc2.5-x86_64.tar.gz 因为Ubuntu Server上 wget比较慢,所以我是直接在windows用迅雷下载好,然后WinSCP上传到服务器的,看各自喜好了. 上正题. 包放在~/Download目录下,全部安装命令如下: 1.解压tar.gz  代码如下 复制代码 tar –xzf mysql-5.6.10-li