列类型
--整数类型
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 小时,再加上后面的时间.

Mysql中的一些类型的更多相关文章

  1. 解析MySQL中存储时间日期类型的选择问题

    解析MySQL中存储时间日期类型的选择问题_Mysql_脚本之家 https://www.jb51.net/article/125715.htm 一般应用中,我们用timestamp,datetime ...

  2. 关于MySql中的varchar类型

    今天新开始的项目在做数据库设计,发现自己对MySql的varchar类型还不熟悉,故又上网收集资料整理如下. 1.varchar类型的变化 MySQL 数据库的varchar类型在4.1以下的版本中的 ...

  3. mysql中的timestamp类型时间比较:unix_timestamp函数

    在mysql中,某字段的类型设置为了timestamp,那么我们现在希望取出指定时间段的记录,该如何做呢? 在php中有time()和strtotime()来进行日期和时间戳的格式化,而在mysql中 ...

  4. MySql中的时间类型datetime,timestamp,date,year比较

    MySQL日期类型.日期格式.存储空间.日期范围比较.日期类型        存储空间       日期格式                 日期范围------------ ---------   ...

  5. MySQL 中的数字类型

    MySQL 中数据类型常用的就三大类: 数字类型/numeric types 日期和时间/date and time types 字符类型/string (character and byte) ty ...

  6. MySql中的varchar类型

    转载:http://www.cnblogs.com/doit8791/archive/2012/05/28/2522556.html 1.varchar类型的变化 MySQL 数据库的varchar类 ...

  7. MySQL中的JSON类型

    前言(废话) 昨天抽了点时间在网上搜列了一个开源项目,项目挺完整的,前后台分离还带有微信小程序,我Clone下代码,经过一番倒腾,嘿~还真就跑起来了.在这个过程中,体验了一把VUE项目工程细节,因为之 ...

  8. 向mysql中插入Date类型的数据

    先看数据库表的定义 date字段为sql.date类型.我要向其中插入指定的日期和当前日期. 一.插入当前日期 思路:先获取当前系统,在将当前系统时间转换成sql类型的时间,然后插入数据库.代码如下 ...

  9. mysql中的字符串类型数据索引优化

    摘自 "高性能mysql" 对于一些字符串类型较长的字段搜索时, 可以参考如下方法

随机推荐

  1. 读者来信 | 刚搭完HBase集群,Phoenix一启动,HBase就全崩了,是什么原因?(已解决)

    前言:之前有朋友加好友与我探讨一些问题,我觉得这些问题倒挺有价值的:于是就想在本公众号开设一个问答专栏,方便技术交流与分享,专栏名就定为:<读者来信>.如遇到本人能力有限难以解决的问题,我 ...

  2. Spring Boot创建一个HelloWorld项目

    目录 Spring Boot 简介 微服务框架 以前使用spring开发web的方式 Spring Boot 启动器介绍 如何创建一个helloword的SpringBoot项目 Spring Boo ...

  3. CyclicBarrier是如何成为一个"栅栏"的

    CyclicBarrier是一种类似于栅栏的存在,意思就是在栅栏开放之前你都只能被挡在栅栏的一侧,当栅栏移除之后,之前被挡在一侧的多个对象则同时开始动起来. 1. 如何使用CyclicBarrier ...

  4. Appium自动化(2) - appium环境安装常见问题的解决方案

    如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 问题1:adb检测不到设备 解决 ...

  5. 浅谈C++三种传参方式

    浅谈C++三种传参方式 C++给函数传参中,主要有三种方式:分别是值传递.指针传递和引用传递. 下面通过讲解和实例来说明三种方式的区别. 值传递 我们都知道,在函数定义括号中的参数是形参,是给函数内专 ...

  6. uni-app在线引入阿里字体图标库

    第一步 在app.vue中引入阿里字体图标库 第二步 在任意页面使用就可以了 <view class="item" v-for="(value,index) in ...

  7. bootstrapTest

    <!DOCTYPE html><html lang="zh-CN"> <head> <meta charset="utf-8&q ...

  8. Java编程最差实践常见问题详细说明(1)转

    Java编程最差实践常见问题详细说明(1)转     原文地址:http://www.odi.ch/prog/design/newbies.php 每天在写Java程序, 其实里面有一些细节大家可能没 ...

  9. 1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234、212345等. 要求:”4”不能在第三位,”3”与”5”不能相连。

    private static String[] mustExistNumber = new String[] { "1", "2", "2" ...

  10. Android UIAutomator自动化测试

    描述:UiAutomator接口丰富易用,可以支持所有Android事件操作,事件操作不依赖于控件坐标,可以通过断言和截图验证正确性,非常适合做UI测试. UIAutomator不需要测试人员了解代码 ...