mysql 整数_MySQL 整数(int)数据类型

MySQL中定义数据字段的类型对你数据库的优化是非常重要的。

MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型.

数值类型(整型)

MySQL支持所有标准SQL数值数据类型。

这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。

关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。

BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。

作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。类型大小范围(有符号)范围(无符号)用途

TINYINT1 字节(-128,127)(0,255)小整数值

SMALLINT2 字节(-32 768,32 767)(0,65 535)大整数值

MEDIUMINT3 字节(-8 388 608,8 388 607)(0,16 777 215)大整数值

INT或INTEGER4 字节(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值

BIGINT8 字节(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值

FLOAT4 字节(-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)单精度

浮点数值

DOUBLE8 字节(-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的值小数值

测试整型(tinyint)

mysql> create table t2 (

-> num tinyint

-> )

-> ;

Query OK, 0 rows affected (0.01 sec)

为什么不是0-255而是-128-127呢?

mysql> insert into t2 values (255);

ERROR 1264 (22003): Out of range value for column 'num' at row 1

mysql> insert into t2 values (128);

ERROR 1264 (22003): Out of range value for column 'num' at row 1

mysql> insert into t2 values (-128);

Query OK, 1 row affected (0.01 sec)

mysql> insert into t2 values (127);

Query OK, 1 row affected (0.01 sec)

注释:插入-128-127就可以,为什么0-255就失败了呢?

数据类型的属性MySQL关键字含义

NULL数据列可包含NULL值

NOT NULL数据列不允许包含NULL值

DEFAULT默认值

PRIMARY KEY主键

AUTO_INCREMENT自动递增,适用于整数类型

UNSIGNED无符号

CHARACTER SET name指定一个字符集

数据类型(unsignde)

unsgned 无符号,列的值从0开始,不为负.

在t2表中增加anum列,使用属性unsigned参数.

mysql> alter table t2 add anum tinyint unsigned;

Query OK, 0 rows affected (0.04 sec)

Records: 0  Duplicates: 0  Warnings: 0

在t2表anum列插入数字255,测试成功.

mysql> insert into t2 (anum) values (255);

Query OK, 1 row affected (0.01 sec)

mysql> select * from t2;

+------+------+------+

| num  | unum | anum |

+------+------+------+

| -128 | NULL | NULL |

|  127 | NULL | NULL |

| NULL | NULL |  255 |

+------+------+------+

3 rows in set (0.00 sec)

mysql> insert into t2 (anum) values (3);

Query OK, 1 row affected (0.01 sec)

插入负数则会报错.

mysql> insert into t2 (anum) values (-23);

ERROR 1264 (22003): Out of range value for column 'anum' at row 1

整数属性(zerofill和M)

那这个int[M]中M是什么意义喃,在定义数值型数据类型的时候,可以在关键字括号内指定整数值(如:int(M),M的最大值为255)显示最大显示宽度,显示宽度M与数据所占用空间,数值的范围无关。 如果在定义字段的时候指定zerofill,那么当数值的显示宽度小于指定的列宽度时候,则默认补充的空格用0代替。

zerofill:适合用于学号,编码,固定宽度的数字,可以用0填充至固定宽度.

学号-->1--->0001

学号-->123-->0123

在t2表中创建一个新的列:

mysql> alter table t2 add sn tinyint(5) zerofill;

Query OK, 0 rows affected (0.43 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> insert into t2 values (4,null,123,2)

-> ;

Query OK, 1 row affected (0.00 sec)

mysql> select * from t2;

+------+------+------+-------+

| num  | unum | anum | sn    |

+------+------+------+-------+

| -128 | NULL | NULL |  NULL |

|  127 | NULL | NULL |  NULL |

| NULL | NULL |  255 |  NULL |

| NULL | NULL |    3 |  NULL |

|    4 | NULL |  123 | 00002 |

+------+------+------+-------+

注意:插入的数字2变为00002.

使用zerofill属性,默认属性unsigned,数值从正数开始不包含负数.

mysql> desc t2;

+-------+------------------------------+------+-----+---------+-------+

| Field | Type                         | Null | Key | Default | Extra |

+-------+------------------------------+------+-----+---------+-------+

| num   | tinyint(4)                   | YES  |     | NULL    |       |

| unum  | tinyint(4)                   | YES  |     | NULL    |       |

| anum  | tinyint(3) unsigned          | YES  |     | NULL    |       |

| sn    |tinyint(5) unsigned zerofill | YES  |     | NULL    |       |

+-------+------------------------------+------+-----+---------+-------+

4 rows in set (0.00 sec)

注意:m要和zerofill一起使用,很多人有个误区,就是我想使用0-9的数字,是不是直接使用M就可以了?

mysql> alter table t2 add sx tinyint(1);

Query OK, 0 rows affected (0.02 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> insert into t2 (sx) values (11),(111);

Query OK, 2 rows affected (0.00 sec)

Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from t2;

+------+------+------+-------+------+

| num  | unum | anum | sn    | sx   |

+------+------+------+-------+------+

| -128 | NULL | NULL |  NULL | NULL |

|  127 | NULL | NULL |  NULL | NULL |

| NULL | NULL |  255 |  NULL | NULL |

| NULL | NULL |    3 |  NULL | NULL |

|    4 | NULL |  123 | 00002 | NULL |

| NULL | NULL | NULL |  NULL |   11 |

| NULL | NULL | NULL |  NULL |  111 |

+------+------+------+-------+------+

7 rows in set (0.00 sec)

注释:如果只是单独的使用M参数,tinyint(M)将没有任何意义。zerfill和M配合使用,用0填充,填充至多宽。

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

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

相关文章

最佳牛围栏(二分)

2020.12.30开始学习AcWing算法《算法竞赛进阶指南》&#xff1b; 上传博客方便复习。 #include <iostream> using namespace std; #include <algorithm> const int N 100001; int n, m; int cow[N]; double sum[N];bool check (double ave) {for (int i 1; i <…

IHostingEnvironment VS IHostEnvironment - .NET Core 3.0中的废弃类型

原文&#xff1a;https://andrewlock.net/ihostingenvironment-vs-ihost-environment-obsolete-types-in-net-core-3/作者&#xff1a;Andrew Lock译者&#xff1a;Lamond Lu本篇是如何升级到ASP.NET Core 3.0系列文章的第二篇。Part 1 - 将.NET Standard 2.0 类库转换为.NET C…

mysql stack is full_mysql优化之表的优化与列类型选择

表的优化与列类型选择列选取原则####1、字段类型优先级整型 > date,time > char,varchar > blob因为 整型&#xff0c;time运算快&#xff0c;节省空间&#xff0c;char/varchar要考虑字符集的转换与排序时的校对集&#xff0c;速度慢&#xff0c;blob无法使用内存临时…

给一个不多于5位的正整数,求出它是几位数?

分别求每一位上的数字&#xff0c;关系如下&#xff1a; 求万位上的数&#xff1a;ten_thousandnum/10000; 求千位上的数&#xff1a;thousand(num%10000)/1000; 求百位上的数&#xff1a;hundred(num%1000)/100; 求十位上的数&#xff1a;ten(num%100)/10; 求个位上的数&#…

【敏捷案例】老板太外行,朝令夕改!要不要拿了年终奖就撤?

快到春节了&#xff0c;不知道有多少人在等着春节后跳槽&#xff0c;想跳槽的原因也很多&#xff0c;其中一个比较普遍的原因是和老板聊不到一块儿去。前两天&#xff0c;有个学员咨询了我们一个问题&#xff0c;因为这个问题比较普遍&#xff0c;拿出来和大家一起讨论一下~提出…

mysql商品规格设计_[电商]我的商品规格设计思路

这部分的设计必然少不了会有商品、货品、规格、规格值表。先说下我对四个表之间关系设计&#xff1a;商品与货品是一对多的关系。规格与规格值是一对多的关系。就这两种关系&#xff0c;关系很清晰&#xff0c;其实我刚开始的设计是这样的&#xff1a;商品与货品是一对多的关系…

冒泡排序及简单优化

普通冒泡排序&#xff1a; //Wecccccccc //2021.1.6 #include <iostream> using namespace std;int main() {int n, a[100];cin >> n;for (int i 0; i < n; i) {cin >> a[i];}for (int i 0; i < n - 1; i) {for (int j 0; j < n - 1; j) {if (a…

【2019总结篇】谈谈数字化时代,ERP如何坐稳数字化底座

源宝导读&#xff1a;面向未来&#xff0c;信息化、在线化、智能化&#xff0c;开放应该是数字化转型的核心要素&#xff01;本文将重点介绍2019年明源云ERP开放平台在推进数字化转型中的核心技术层面的实践成果。一、前言面向未来&#xff0c;信息化、在线化、智能化&#xff…

rjdbc读取mysql_R通过RJDBC连接外部数据库 (转)

1、library(RJDBC)drvconnlibrary(RJDBC)drvconn3、 连接sas的spdslibrary(RJDBC)drvconn dbSendUpdate(conn,"LIBNAME DEMO SASSPDS schemademoschema USERdemo PASSWORD{sas001}ZM0 HOST127.0.0.1 Serv5000") #注释&#xff1a;dbSendUpdate可以执行所有的sql语…

斐波那契数列及其优化

菲波那契数列定义为&#xff1a;f(1) 1; f(2) 1; 当n>2时&#xff0c;f(n) f(n-1) f(n-2)&#xff0c;输入n&#xff0c;求菲波那契数列的第n项。要求&#xff1a;用递归函数求菲波那契数列的第n项。 1.递归 代码如下&#xff08;未优化&#xff09;&#xff1a; //We…

dotNetCore操作Redis(含CentOS7哨兵模式部署)

现在说到使用缓存中间件基本就是 Redis 了&#xff0c;通常开发环境或测试环境部署一个单机版就可以运行了&#xff0c;但要上生产环境还需要进行高可用的方式来部署&#xff0c;本文说说在 CentOS7 中 Redis 高可用的部署以及在 dotNetCore 中怎样调用。环境CentOS&#xff1a…

php和mysql一键安装包_iis+php+mysql一键安装教程和安装包

导读&#xff1a;iis上mysqlphp一键安装 很多用vps的朋友&#xff0c;在windons系统iis上配置mysqlphp环境的时候都非常的头痛&#xff0c;过程非常复杂和麻烦&#xff0c;所以我们推荐大家用mysqlphp一键安装包&#xff1a; 1、下载mysqlphp一键安装包&#xff0c;安装包下载地…

埃氏筛法(素数筛选)

代码如下&#xff1a; //Wecccccccc //2021.1.6 #include <iostream> using namespace std; int vis[100000]; //0为素数&#xff0c;1为不是素数 int main() {int maxn;cin >> maxn;vis[0] vis[1] 1;//0,1都不是素数&#xff0c;所以赋值为1for (int i 2; i &…

程序员过关斩将--自定义线程池来实现文档转码

背景我司在很久之前&#xff0c;一位很久之前的同事写过一个文档转图片的服务&#xff0c;具体业务如下&#xff1a;1. 用户在客户端上传文档&#xff0c;可以是ppt&#xff0c;word&#xff0c;pdf 等格式&#xff0c;用户上传完成可以在客户端预览上传的文档&#xff0c;预览…

mysql开启gtid dump_mysqldump关于--set-gtid-purged=OFF的使用

数据库的模式中我开启了gtid&#xff1a;mysql> show variables like %gtid%;---------------------------------------------| Variable_name | Value |---------------------------------------------| binlog_gtid_simple_recovery | ON || enforce_gtid_consistency | O…

with grant option mysql_mysql用户及权限(WITH GRANT OPTION)

添加用户授权方法一&#xff1a;create user userip identified by password;grant SELECT on op_db.* to userip with grant option;flush privileges;添加用户授权方法二&#xff1a;grant SELECT on op_db.* to userip identified by password with grant option;flush priv…

2019年Linux与开源如何统治技术圈

2019 年&#xff0c;Linux 与开源疯狂发展&#xff0c;ZDNet 专栏作者 Steven J. Vaughan-Nichols 梳理了 5 个年度大事件&#xff0c;从中我们可以看出来技术的未来还是属于 Linux 和开源软件的。1、IBM 以 340 亿美元收购 Red Hat排名第一的是 IBM 收购 Red Hat&#xff0c;这…

Jira更换mysql数据库_JIRA6.0更换数据库到MYSQL

JIRA更换数据库方法说明&#xff1a;jira自带数据库是HSQL&#xff0c;为内存数据库&#xff0c;当数据量比较大时&#xff0c;其性能会有问题&#xff0c;所有将其改为mysql1、准备环境mysql安装程序&#xff1a;mysql-essential-5.0.87-win32.msimysql驱动程序&#xff1a;my…

UnitTest in .NET(Part 4)

Photo &#xff1a;Unit Test in Visual Studio文 | Edison Zhou上一篇我们学习了如何使用模拟对象进行交互测试。这一篇我们则会进一步使用隔离框架支持适应未来和可用性的功能。为何使用模拟框架&#xff1f; 对于复杂的交互场景&#xff0c;可能手工编写模拟对象和存根就会变…

mysql数据库备份总结_MySQL数据库备份总结

一个企业的正常运行&#xff0c;数据的完整性是最关键的&#xff1b;所以我们需要在工作中要很熟练的掌握数据的备份与恢复方法&#xff1b;下面是对Mysql数据库备份的三种方法总结&#xff0c;希望对大家会有所帮助备份开始前的工作环境准备&#xff1a;1、创建用于保存二进制…