博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mySql特殊类型命令行_Mysql中的一些类型
阅读量:5939 次
发布时间:2019-06-19

本文共 2852 字,大约阅读时间需要 9 分钟。

列类型

--整数类型

Tinyint:迷你整形 一个字节=8位 最大能表示的数值是0-255 实际区间 -128~127

Smallint:小整形 两个字节 能表示0-65535

Mediumint:中整型 三个字节

Int:整型 四个字节

Bigint:大整型

无符号设定:表示存储的数据在当前字段中,没有负数(只有正数,能达到0-255)

基本语法:在类型之后加上一个unsigned

eg:alter table my_int add int_6 tinyint unsigned;

显示长度:指数据(整型)在数据显示的时候,最多可以显示多长位

Tinyint(3):表示最长可以显示3位

Tinyint(4):表示最长可以显示4位 -128 :由于有负号 也是四位

Zerofill:从左侧开始填充0(左侧不会改变数值大小),所以负数不能使用zerofill

如果使用zerofill(左侧填充0)相当于确定该字段为unsigned(无符号设定)

数据显示的时候,zerofill会在左侧填充0到指定位,如果不足3位,那么填充到3位,如果

本身已经够了或者超出,那么就不再填充

显示长度可以自己设定:超出长度(但是不超出范围)不会影响,只会对不够长度的进行补充(显示长度)

--小数类型

在MySQL中将小数类型又分为两类,浮点型和定点型

浮点型:又称为精度类型,一种有可能丢失精度的数据类型,

Float:又称之为单精度类型:系统提供了四个字节用来存储数据,但是能表示的数据范围比整型大得多大概10^38次方

只能保证大概7个左右的精度(如果数据在7位数以内,那么基本上是准确的,但是如果超过7位数,那么就是不准确的)

Double:又称之为双精度,系统用8个字节来存储数据,表示的范围更大,10^308次方,但是精度也只有15位左右

--时间日期类型

Date

日期类型:系统使用三个字节来存储数据,对应的格式为:YYYY-mm-dd,能表示的范围是

从1000-01-01 到 9999-12-12,初始值为0000-00-00

Time

时间类型:能够表示某个指定的时间,但是系统同样是提供3个字节来存储,对应的格式为:

HH:ii:ss,但是mysql中的time类型能够表示的时间范围要大得多,能表示从-838:59:59-838:59:59

在mysql中具体的用处是用来描述时间段

Datetime

日期时间格式:将前面的Date和Time合并起来,表示的时间,使用8个字节存储数据,

格式为:YYYY-mm-dd HH:ii:ss,能表示的区间1000-01-01 00:00:00到9999-12-12 23:59:59

其可以为0值:0000-00-00 00:00:00

Timestamp

时间戳类型:mysql中的时间戳只是表示从格林威治时间开始,但是其格式依然是:YYYY-mm-dd HH:ii:ss

Year

年类型:占用一个字节来保存,能表示1900-2155年,但是Year有两种数据插入方式;0-99和具体年(1999)

1. 创建对应的时间日期类型的数据表

mysql> create table my_date(d1 date,d2 time,d3 datetime,d4 timestamp,d5 year)charset utf8;

mysql> desc my_date;

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

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

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

| d1 | date | YES | | NULL | |

| d2 | time | YES | | NULL | |

| d3 | datetime | YES | | NULL | |

| d4 | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |

| d5 | year(4) | YES | | NULL | |

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

5 rows in set (0.00 sec)

时间戳类型(timestamp)不能为空,有默认值(CURRENT_TIMESTAMP),为当前时间戳对应的时间,(on update CURRENT_TIMESTAMP)

当数据被更新的时候,这个字段自动更新为当前最新的时间

2. 插入时间值

mysql> insert into my_date values('1900-01-01','12:12:12','1900-01-01 12:12:12','1999-01-01 12:12:12',69);

mysql> select * from my_date;

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

| d1 | d2 | d3 | d4 | d5 |

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

| 1900-01-01 | 12:12:12 | 1900-01-01 12:12:12 | 1999-01-01 12:12:12 | 2069 |

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

1 row in set (0.00 sec)

3. year的特殊性:可以采用两位数的数据插入,也可以采用四位数的年份插入

year进行两位数插入的时候,有一个区间划分,临界点为69和70,当输入69以下,那么系统时间为20+数字,如果

是70以上,时间为19+数字

4. timestamp:当对应的数据被修改的时候,会自动更新(这个被修改的数据不是自己)

5. time类型特殊性:本质是用来表示时间区间,能表示的范围比较大

在进行时间类型录入的时候(time)还可以使用一个简单的日期代替时间,在时间格式之前加一个空格,

然后指定一个数字,系统会自动将该数字转换成天数 * 24 小时,再加上后面的时间.

转载地址:http://mqltx.baihongyu.com/

你可能感兴趣的文章
《精通Linux设备驱动程序开发》——1.5 Linux发行版
查看>>
《术以载道——软件过程改进实践指南》—第1章1.3节如何实施CMMI
查看>>
Harris’s Linked List
查看>>
(流式、lambda、触发器)实时处理大比拼 - 物联网(IoT)\金融,时序处理最佳实践
查看>>
什么Linux服务器最适合你?
查看>>
git 换行符问题,统一linux风格
查看>>
SQL on Linux Run on Docker
查看>>
C语言程序设计实践(OJ)-初识函数
查看>>
Spark机器学习9· 实时机器学习(scala with sbt)
查看>>
数据结构实践——队列数组
查看>>
从Demo到日千万PV,就是快! – 爱线下的上云实践
查看>>
Linux 时钟精度 与 PostgreSQL auto_explain (explain timing 时钟开销估算)
查看>>
架构师速成-架构目标之可用性
查看>>
云栖TechDay精华文章合集
查看>>
Java 深、浅克隆
查看>>
设计模式(八)之单例模式
查看>>
协同过滤算法 R/mapreduce/spark mllib多语言实现
查看>>
【云栖说第三期】发现大家对能模仿马云声音的ET有兴趣,我们找了阿里四位专家来聊聊ET背后的人工智能...
查看>>
在C#代码中应用Log4Net(一)简单使用Log4Net
查看>>
【目录】C#操作Excel组件Spire.XLS系列文章目录
查看>>