原文:mysql基础之基本数据类型

列类型学习

mysql三大列类型

整型

Tinyint/ smallint/ mediumint/int/ bigint(M) unsigned zerofill

字符串型

Char(M)

Varchar(M)

Text 文本类型

日期时间类型

Date 日期

Time 时间

Datetime 时间时间类型

Year 年类型

整形:

整型系列所占字节与存储范围的关系.

定性: 占字节越多,存储范围越大.

下图: 是具体的数字分析

Tinyint 1个字节 8个位  0 - 2^8-1  ,  0-255

-2^7 ----> +2^7-1

分析:

Smallint 2个字节 , 16位  0----2^16-1 = 65535

-2^15 ---> +2^15-1, -32768 -> 32767

一般而言,设某类型 N字节

N字节 , 8N位.

0 ----> 2^8N-1

-2^(8N-1)  ---> +2^(8N-1) -1;

对于int型 : 占的字节越多,存储的范围也越大.

整型系统的可选参数 : XXint(M)  unsigned zerofill

例: age tinyint(4) unsigned ,或者  stunum smallint(6) zerofill;

Unsigned: 代表此列为无符号类型, 会影响到列的存储范围. (范围从0开始)

(不加unsinged, 则该列默认是有符号类型,范围从负数开始)

Zerofill: 代表0填充, 即: 如果该数字不足参数M位, 则自动补0, 补够M位.

1: 如果没有zerofill属性, 单独的参数M,没有任何意义.

2:如果设置某列为zerofill,则该列已经默认为 unsigned,无符号类型.

小数型

Float(M,D),decimal(M,D)

M叫"精度" ---->代表"总位数",而D是"标度",代表小数位.(小数右边的位数)

浮点数占多大的空间呢

答: float 能存10^38 ,10^-38

如果M<=24, 点4个字节,否则占8字节

用来表示数据中的小数,除了float---浮点.

还有一种叫定点decimal,定点是把整数部分, 和小数部分,分开存储的.

比float精确,他的长度是变化的.

空间上的区别:

Float(M,D), M<=24, 4个字节, 24 <M <=53, 8个字节

Decimal () ,变长字节.

区别: decimal比float精度更高, 适合存储货币等要求精确的数字,

见下例:

字符串性:

Mysql 字符串类型

Char 定长类型

Char(M)  , M 代表宽度, 0<=M<=255之间

例:Char(10)  ,则能输入10个字符.

Varchar 变长类型

Varchar(M), M代表宽度, 0<=M<=65535(以ascii字符为例,utf822000左右)

0000000000

00\0\0\0\0\0 (char型,如果不够M个字符,内部用空格补齐,取出时再把右侧空格删掉)

注:这意味着,如果右侧本身有空格,将会丢失.

通过concat函数可以验证!

M 代表字符长度,和是否是汉字和字母无关。

Blob,是二进制类型,用来存储图像,音频等二进制信息.

意义: 2进制,0-255都有可能出现.

Blob在于防止因为字符集的问题,导致信息丢失.

比如:一张图片中有0xFF字节, 这个在ascii字符集认为非法,在入库的时候,被过滤了.

enum选择一个,set选择多个

日期时间类型

Year 年(1字节)    95/1995,  [1901-2155],

在insert时,可以简写年的后2位,但是不推荐这样.

[00-69] +2000

[70-99] + 1900,

即: 填2位,表示 1970 - 2069

Date 日期  1998-12-31

范围: 1000/01/01 ,9999/12/31

Time 时间  13:56:23

范围: -838:59:59 -->838:59:59

datetime 时期时间  1998-12-31 13:56:23

范围: 1000/01//01 00:00:00  ---> 9999:12:31 23:59:59

timestamp

时间戳:

是1970-01-01 00:00:00 到当前的秒数.

一般存注册时间,商品发布时间等,并不是用datetime存储,而是用时间戳.

因为datetime虽然直观,但计算不便.


mysql基础之基本数据类型的更多相关文章

  1. mysql基础知识之数据类型与约束

    一.约束 作用: 保证数据的完整性和一致性表的设计 1.not null 和 default not null 是放在最后用来约束 前面 数据类型的 (在原有基础上本来可以主键后面可以为空,但是一旦在 ...

  2. MySQL基础操作与数据类型

    目录 1.文件夹(库) 2.文件(表) 3.文件的一行内容 4.创建表的完整语法 5.整型类型 6.补充sql_mode 7.浮点型 8.字符类型 9.日期类型 10.枚举与集合类型 1.文件夹(库) ...

  3. MYSQL基础笔记(六)- 数据类型一

    数据类型(列类型) 所谓数据烈性,就是对数据进行统一的分类.从系统角度出发时为了能够使用统一的方式进行管理,更好的利用有限的空间. SQL中讲数据类型分成三大类:1.数值类型,2.字符串类型和时间日期 ...

  4. { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型

    MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...

  5. MySQL基础(1) | 数据类型

    MySQL基础(1) | 数据类型 数值类型 TINYINT #小整数值,1 字节,有符号(-128,127),无符号(0,255) SMALLINT #大整数值,2 字节 MEDIUMINT #大整 ...

  6. Mysql基础(三):MySQL基础数据类型、完整性约束、sql_mode模式

    目录 2.MySQL基础数据类型.完整性约束.sql_mode模式 1. MySQL常用数据类型 2. 完整性约束 3. MySQL的sql_mode模式说明以及设置 2.MySQL基础数据类型.完整 ...

  7. 数据库02 /MySQL基础数据类型、完整性约束、sql_mode模式

    2.MySQL基础数据类型.完整性约束.sql_mode模式 目录 2.MySQL基础数据类型.完整性约束.sql_mode模式 1. MySQL常用数据类型 MySQL常用数据类型预览 1. 1 数 ...

  8. MySQL基础篇(2)数据类型

    MySQL提供了多种数据类型,主要包括数值型.字符串类型.日期和时间类型. 1.数值类型 整数类型:TINYINT(1字节).SMALLINT(2字节).MEDIUMINT(3字节).INT(INTE ...

  9. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...

随机推荐

  1. WIN8 、WIN7 下IIS7.5、IIS8 的rewrite 伪静态功能设置方法

    原文 WIN8 .WIN7 下IIS7.5.IIS8 的rewrite 伪静态功能设置方法 win7和win8系统都自带有iis的功能.关于IIS的安装,上一篇已经讲述,这里就不重复了. 下面说下在w ...

  2. CSDN博客ByeBye

    情绪csdn定制博客博客是不够的,没有足够的光.对于我这种极简的人,不合适. 我们不打算更新的博客. 至http://blog.edagarli.com/ 版权声明:本文博主原创文章.博客,未经同意不 ...

  3. IP地址解析

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...

  4. Ajax 实现无刷新页面

    注意:如本文所用,在前面的文章库的数目可以在源代码中找到,我将指示在文本,其中链路,为了缩短制品的长度,阅读由此带来的不便.乞求被原谅. 评论文章 Ajax 实现无刷新页面.其原理.代码库.代码. 这 ...

  5. 最近ubuntu 14.04 cpu高入住故障排除

    最近linux始终使用cpu实现全值, 双核cpu这始终是一个核心100%,还有的正常核.top这一发现输入法框架fcitx加载,直接kill它,不能用于发现狗输入法,令: fcitx fcitx-q ...

  6. 嘿嘿。今天学习了AJAX的几个方法

    原文:嘿嘿.今天学习了AJAX的几个方法 今天学习了AJAX的几个方法,其实我很早在公司实习的时间就认识了它,但是对它一无所知,也并没有去学习它,今天学习它让我感到很兴奋因为重新了解了它,嘿嘿,下面就 ...

  7. C 这些东西的内存管理

    一.内存介绍 本文主要介绍C内存管理基本概念,以及C语言编译后的可执行程序的存储结构和执行结构. 在用户存储空间,一个C程序的在内存中的分配分类5大部分:代码段.全局已初始化数据段.bss段.堆和栈. ...

  8. 网络资源(3) - iBatis视频

    2018_08_24 http://v.youku.com/v_show/id_XMjk2ODY2OTE2.html iBatis视频教程01

  9. 于ios7在遇到一些发展deprecated问题

    cell.textLabel.textAlignment = UITextAlignmentCenter; 现在我想写cell.textLabel.textAlignment =NSTextAlign ...

  10. rdlc报告vs2008编辑正常,在vs2012在对错误的编辑

    最近我们的系统开发的工具vs2008升级到2012,由于系统是非常的报告是由rdlc发展.今天 有需要修改的报告满足需求.直接使用vs2012正确rdlc报告编辑,结果本次变动后.报表都报错. 后来我 ...