mysql从零开始(三)数据类型
来源:互联网 发布:大连电视台直播软件 编辑:程序博客网 时间:2024/05/18 01:32
MySql 数据类型
mysql 数据类型主要有以下三种类型:数值数据类型、日期/时间类型、字符串类型。
一、数值数据类型
整数类型:主要有 TINYINT、 SMALLINT、 MEDIUMINT 、 INT 、BIGINT。
如 id(int)。这里的11是该数据类型指定的显示宽度,指定能够显示的数值的个数。显示宽度只是指明mysql最大可能显示的数字个数,数值的位数小于指定宽度时会由空格填充,如果设置了zerofill,会由0填充。如(00000000001)。如果不指定,则系统为每一种类型指定默认的宽度如下表:
二、浮点类型
mysql中使用浮点数和定点数来表示小数,浮点类型有两种:单精度类型(FLOAT)和双精度类型(DOUBLE),定点类型一种DECIMAL。浮点和定点都可以使用(M,N)来表示,M称为精度,表示总共的位数,N称为标度,是表示小数的位数。
FLOAT(8, 1)的列中存储1.23456,则结果为1.2。如果将相同的值存入FLOAT(8, 4) 的列中,则结果为1.2346。
DECIMAL的取值范围由M和D值决定,如果固定D值,改变M值,取值范围会随M值变大而变大,占用M+2字节。
浮点相对于定点的优点是在长度一定的情况下,浮点说能表示更大的范围,缺点是为引起精度问题。
定点数以字符串形式存储,在对精度要求比较高的时候使用DECIMAL类型比较好,两个浮点数进行运算也容易出问题,进行避免浮点数做运算。
不管是定点还是浮点类型,如果用户指定的精度超过精度范围,都会进行四舍五入处理。
三、日期与时间类型
表示日期的数据类型主要有:DATETIME,DATE,TIMESTAMP,TIME,YEAR
1、YEAR
a、四位数字或者字符串表示YEAR,范围1901~2155输入格式‘YYYY’或YYYY 例如:2010 和’2010’插入到数据库的值均为2010。
b、两位字符串表示YEAR 范围’00’~’99’,‘00’~’69’表示2000~2069,’70’~’99’表示1970~1999。’0’和’00’作用相同,插入取值范围超过范围将被转换为2000
c、以两位数字表示YEAR 范围是01~99,01~69表示2000~2069,’70’~’99’表示1970~1999。这里0将被转换成0000而不是2000。非法的数值将被转换成0000
2、Time
a、‘D HH:MM:SS’ D表示天数取值范围0-34,存储时转换成小时”D*24+HH”。还可以使用任意一种非严格语法”HH:MM:SS”、”HH:MM”、”D HH:MM”。在使用“D HH”格式时小时数字一定要用两位数表示。
b、‘HHMMSS’没有间隔符的字符串或者HHMMSS格式的数值如果值有意义’101112’被理解为“10:11:12”,但”107812”是不合法的存储时转成”00:00:00”。
Time简写’11:12’和1112 。如果没有冒号mysql假定最后两位为秒,如果有冒号则肯定被看成当天时间。也就是’11:12’表示11:12:00 而1112表示00:11:12
3、Date
a、以”YYYY-MM-DD”或者’YYYYMMDD’字符串表示的日期,取值范围是”1000-01-01”到“9999-12-31”。
b、以”YY-MM-DD”或者’YYMMDD’字符串表示的日期,年份取值同上,如“001231”存到数据库的日期为2000-12-31
c、以YY-MM-DD或者YYMMDD数字格式表示的日期,与前者一样
d、CURRENT_DATE和NOW()表示当前时间。区别是CURRENT_DATE只返回当前日期值,NOW()返回日期和时间值。
4、DateTime
a、”YYYY-MM-DD HH:MM:SS”和”YYYYMMDDHHMMSS”字符串表示日期取值范围是”1000-01-01 00:00:00”到“9999-12-31 23:59:59”。
b、以”YY-MM-DD HH:MM:SS”或者’YYMMDDHHMMSS’字符串表示的日期
c、以纯数字YYYYMMDDHHMMSS或YYMMDDHHMMSS表示日期
mysql允许不严格语法,任何标点符号都能作日期部分的间隔符如“98@12%23 12&45*21”都是可以正确插入数据库的。
5、TIMESTAMP
显示格式与DateTime相同,最大的区别在于DateTime存储日期时按实际输入存,而TIMESTAMP 值得存储是以UTC(世界标准时间)格式保存的,存储时对当前时区进行转换,检索时再转换回当前时区。
如果一个TIMESTAMP 或DateTime对象存一个Date类型的值,结果值中的时间部分被设置成00:00:00,如果Date存储一个TIMESTAMP 或DateTime值,结果的时间部分被删除。
四、字符串类型
CHAR是固定长度,CARCHAR是变长,存储占用空间为实际长度+1字节。
SET是一个字符串对象,最多可以有64个成员,各成员间用“,”隔开,去除重复的值。
五、二进制类型
BIT位字段类型,M代表位数范围1~64,如果被省略默认为1,如果值的长度小于M高位补0,如果长度大于M数据失真。
BLOB是二进制字符串,TEXT是非二进制字符串,两者均可存放大容量的信息,BLOB主要存放图片、音频信息等,TEXT只能存放纯文本文件。
- mysql从零开始(三)数据类型
- 从零开始学java(三)数据类型和注释等
- MySQL学习历程(三):数据类型
- MySQL知识(三)——数据类型
- MySql(三、列操作和数据类型)
- MySQL (三) 数据类型
- Android从零开始(三)
- clojure从零开始(三)
- MySQL 入门(三)—— MySQL数据类型
- MySQL 入门(三)—— MySQL数据类型
- MySQL 的学习(三:MySQL存储引擎和数据类型)
- mysql从零开始(一)
- mysql 学习之三 数据类型
- MySQL学习系列三----数据类型
- MySQL 学习<三> 数据类型简介
- 从零开始学习jQuery(三)
- 从零开始写PHP (三)
- android从零开始(三)单元测试
- 支付系统返回值,错误码,code
- 跟我学习dubbo-简介
- MongoDB数据逻辑结构
- Oracle入门3
- 跟我学习dubbo-ZooKeeper注册中心安装(2)
- mysql从零开始(三)数据类型
- Android必知必会--GreenDao缓存
- OC 字符串操作整理
- 阿里云服务器部署网站
- [看书日记20160107]安卓的线程和线程池, bitmap的加载和cache
- 程序人生--架构师
- swift基础(一)字符串处理
- maven中使用dom4j解析、生成XML的简易方法
- Could not find action or result常见情况分析