你看到的这个文章来自于http://www.cnblogs.com/ayanmw

转载自:http://blog.csdn.net/daydreamingboy/article/details/6310907

分析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指的是显示宽度,举个例子:

mysql> create table test(id int(3) zerofill);

Query OK, 0 rows affected (0.09 sec)

mysql> insert into test(id) values(1),(1234);

Query OK, 2 rows affected (0.06 sec)

Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from test;

+------+

| id |

+------+

| 001 |

| 1234 |

+------+

2 rows in set (0.00 sec)

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

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

mysql> alter table test add realnum decimal(4,1);

Query OK, 2 rows affected (0.03 sec)

Records: 2 Duplicates: 0 Warnings: 0

mysql> insert into test(id,realnum) values(2,1234);

Query OK, 1 row affected, 1 warning (0.05 sec)

mysql> select * from test;

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

| id | realnum |

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

| 001 | NULL |

| 1234 | NULL |

| 002 | 999.9 |

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

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一样,只不过每一列都可以具有多个可能的值

mysql查看表的结构的mysql语句为:

mysql查看表结构命令,如下:

desc 表名;

show columns from 表名;

describe 表名;

show create table 表名;

use information_schema;

select * from columns where table_name='表名';

顺便记下:

show databases; --显示数据库列表

use 数据库名; --设置为当前工作数据库

show tables; --显示当前工作数据库 下的表 列表

原有一unique索引AK_PAS_Name(PAC_Name)在表tb_webparamcounter中,

执行以下sql修改索引

alter table tb_webparamcounter drop index AK_PAS_Name;

alter table tb_webparamcounter add UNIQUE AK_PAS_Name(PC_ID,PAC_Name);

若发现索引的逻辑不对,还需要再加一个字段进去,执行

alter table tb_webparamcounter drop index AK_PAS_Name;

alter table tb_webparamcounter add UNIQUE AK_PAS_Name(PC_ID,PAC_Name,PAC_Value);

注意:这时的PC_ID,PAC_Name,PAC_Value三个字段不是FOREIGN KEY

否则必需先drop FOREIGN KEY,再重做上一步才行

顺便提下oracle

select * from v$database;

select * from all_users;

select * from user_tables;

转载请注明出处:http://www.cnblogs.com/ayanmw 我会很高兴的!

mysql 字段 decimals_[转]分析MySQL数据类型的长度【mysql数据字段 中length和decimals的作用!熟悉mysql必看】...相关推荐

  1. [转]分析MySQL数据类型的长度【mysql数据字段 中length和decimals的作用!熟悉mysql必看】...

    转载自:http://blog.csdn.net/daydreamingboy/article/details/6310907 分析MySQL数据类型的长度 MySQL有几种数据类型可以限制类型的&q ...

  2. mysql排序后如何取最前和最后的数据_天天写order by,你知道Mysql底层如何执行吗?...

    作者:不才陈某 前言 在实际的开发中一定会碰到根据某个字段进行排序后来显示结果的需求,但是你真的理解order by在 Mysql 底层是如何执行的吗?假设你要查询城市是苏州的所有人名字,并且按照姓名 ...

  3. 通过TikTok的发展历程来分析未来的趋势,找到2022年的热点在哪里?跨境卖家必看的综合分析

    当TikTok问世以来,用户人数和热度只增不减.越来越多跨境卖家涌入平台,把握住TikTok平台的福利.2020年是TikTok的元年,那么2022,就是TikTok充满期待的一年.今天元柚就和大家盘 ...

  4. 2022-08-12 mysql/stonedb-Q16-并行执行分析

    摘要: mysql/stonedb-Q16-并行执行分析 问题记录: 并行执行无法获取数据: (gdb) bt #0 0x0000000002d51ca8 in Tianmu::core::Filte ...

  5. Mysql数据库查询去除重复_mysql数据库如何去重复数据

    mysql数据库去重复数据的方法: 方法一:防止表中出现重复数据 当表中未添加数据时,可以在MySQL数据表中设置指定的字段为PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据 ...

  6. flink设置watermark以及事件时间字段源码分析

    flink设置watermark以及事件时间字段源码分析 背景 1.1.提取时间戳字段,用于事件时间语义处理数据 1.2.设置水位线(水印)watermark TimestampAssigner 核心 ...

  7. Tableau desktop(二)--数据连接及数据字段

    由于最近比较忙,没有及时更新博客,今天继续前边,记录一下tableau的学习过程. 2.数据连接及数据字段 要开始分析数据,首先需要连接到一个或多个数据源.数据源从简单的Excel工作簿,到复杂的SQ ...

  8. 分析数万条旅游评论数据后,告诉你国庆“坑爹”景点背后的秘密......

    来源:早起Python 大家好,说一个鬼故事:你的假期余额不足,这个国庆,你出去旅游了吗? 每次假期后网友总爱去微博.知乎吐槽国庆旅游的坑爹景点,相关话题也频上热榜,在国庆期间也有相关文章[1]通过整 ...

  9. 分析MySQL数据类型的长度

    分析MySQL数据类型的长度 MySQL有几种数据类型可以限制类型的"长度",有CHAR(Length).VARCHAR(Length).TINYINT(Length).SMALL ...

  10. 初识mysql数据字段属性_MySQL数据库~~~~初识、基础数据类型

    一 数据库初识 1.1 什么是数据库 数据库(DataBase,简称DB),简而言之可视为电子化的文件柜----存储电子文件的处所,用户可以对文件中的数据运行新增,截取,更新,删除等操作. 所谓数据库 ...

最新文章

  1. React+Redux开发实录(一)搭建工程脚手架
  2. mysql 手工修复_MySQL自动备份和手工恢复
  3. 算法 --- 二叉树查找树的先序(中序、后序)遍历的js实现
  4. 数据结构与算法--将数组排成最小的数
  5. html5 audio api 录音,如何使用HTML5 Web Audio API录制我的声音
  6. python连接数据库步骤_Python连接mysql数据库
  7. [转]Decide.com是怎么做商品价格预测的
  8. C/C++ 中的指针
  9. 苹果macOS Mojave发布,四年来最大更新
  10. 【CCCC】L2-029 特立独行的幸福 (25分),模拟题,set用法
  11. pythonide的作用_你知道Python神器IDE是什么吗?
  12. 【读书】《当我跑步时,我谈些什么》书评:我跑步时,只是跑着
  13. linux r语言 安装包下载,R语言安装程序包(示例代码)
  14. clion-debug调试步骤
  15. 使用labelme打标签,详细教程
  16. 四路组相联原理_计算机组成原理中是如何求是几路组相联映像?
  17. 0x00007FFE51EF1208 (ucrtbase.dll)considers invalid parameters fatal.
  18. 微信商户平台,开通企业付款到用户零钱功能
  19. 老毛桃 装WIN 10 系统
  20. Link-aggregation端口聚合

热门文章

  1. vscode 如何快速跳出括号
  2. cesium添加天地图,从环境配置到加载天地图
  3. 在Linux平台中调试C/C++内存泄漏方法 (腾讯和MTK面试的时候问到的)
  4. 这世上倒底有没有神仙——说“Excel不是数据库,是不是犯了白马非马论的错误??...
  5. hosts文件位置及作用
  6. PUT和POST的区别
  7. 终面(HR面)_职业竞争力和职业规划
  8. Perl语言的多线程(一)
  9. 【错题】#10兰州烧饼——思考角度的转换
  10. 在虚拟机中ping了停不下来怎么办?