MySQL数据类型(四)
一、数据类型
二、整型类型
tinyInt:
1个字节:-128-127(有符号)
是否有符号,可以定义时,使用unsign标识,表示无符号的,不写表示有符号的
Create table student(
stu_no int,
stu_age tinyInt unsigned
);
insert into tbl_int values(255,127);
insert into tbl_int values(0,128);
定义显示宽度
通过规定数据的显示宽度,达到统一显示的目的类型(M)M表示显示的最小宽度是多少?
需要使用前导零填充到达目的。称之为zerofill
alter table tbl_int add c tinyint(2) zerofill; //在表中c字段数值显示宽度自小显示两位,数值不足
两位前面补0,超过两位的数值不受影响。
insert into tbl_int values(0,127,1);
insert into tbl_int values(0,127,9);
insert into tbl_int values(0,127,10);
insert into tbl_int values(0,127,123);
二、浮点类型
+-123.456;
0.123456 * 10^3
0.123456789 * 10^3
create table num_2(
a float,
b double
);
insert into num_2 values(1234567890.0123456789,1234567890.0123456789);
select * from num_2;
结果:
1234570000,1234567890.0123458
float 类型 默认精度位数在6位左右,取决于操作系统
double 类型默认精度位数在16位左右,取决于操作系统。
2.1 浮点类型
都支持控制数值的范围。
Type(M,D)
M表示所有的数值位数(不包括小数点和符号)
D表示允许的小数位数
create table num_3(
a float(5,2),
b double (8,3)
);
insert into num_2 values(567.12,1234.567);
insert into num_2 values(1567.12,123456.5);
123456.5 看上去总数和小数位数都没有超过,但是确定M,D时,已经确定整数的位数
5,2
-999.99 到 999.99
8,3
-99999.999 到 99999.999
浮点数支持科学技术法
1.234 * 10^3 == 1.23E3
insert into num_2 values(1.23E3,456.7E2);
2.2 定点数类型
定点数:小数点固定,小数位数不固定。浮点数的小数点不固定。
Decimal(M,D)
M总位数
D小数位数。(范围存在)
M默认为10,D默认为0
create table num_4(
send_money decimal(10,2)
);
insert into num_4 values(1234.56);
结果:1234.56
insert into num_4 values(1234.567);
结果为1234.57 四舍五入把最后一位7给舍掉了。
不会像单精度和双精度丢失精度。
小数支持zerofill
alter table num_4 money decimal(10,2) zerofill;
insert into num_4 values(1234.56,1234,56);
支持无符号
unsigned
三、日期时间类型
四、DateTime类型
年份月日时分秒 Datetime 范围:9999-12-31 23:59:59
年月日 Date
时间戳 Timestamp 存储是整型,表示时,日期类型。范围:0-21多亿,到2038-01-19 03:14:07
create table dt_1(
a datetime,
b timestamp
);
处理形式一样,表现形式是不一样的!
insert into dt_1 values('2013-04-16 11:50:23','2013-04-16 11:50:25');
insert into dt_1 values('2038-01-19 03:14:07','2038-01-19 03:14:07');
insert into dt_1 values('2038-01-19 03:14:10','2038-01-19 03:14:10');
检索列时,+0可以检索到时间戳。
select a,b+0 from dt_1;
结果:
2013-04-16 11:50:23,20130416115025
支持任意分割符日期
insert into dt_1 values('20380119031407','20380119031407')
insert into dt_1 values('2038:01:19 03:14:07','20380119031407')
但是如果出现歧义,但是不建议使用特殊的分隔符,会导致逻辑不清晰。
insert into dt_1 values('20:12:19','20380119031407') 结果:2020-12-19
insert into dt_1 values('89:12:19','20380119031407')
支持两位年份:
70-69 1970 -2069
70-99 19xx
0-69 20xx年
不建议使用。
insert into dt_1 values(0,0);
结果为 0000-00-00 00:00:00(通常表示整个月),0
支持0值,表示当前没有规定,2013-04-0表示4月整个月。(逻辑想法)
五、Time类型
表示意义:
1、一天中的时间
2、两个时间点的间隔时,可以使用天来表示。格式:
D HH:MM:SS
D天
create table t_1(
ago_time
);
insert into t_1 values('23:12:11');
insert into t_1 values('231211');
insert into t_1 values('5 12:34:11');
六、Year类型
create table y_1(
`begin` year
);
此事日期的范围,就不是1000到9999
而是1901到2155一个字节表示
insert into y_1 values(1985);
七、字符串类型
char(M):固定长度
varchar(M):可变长度
M:允许的字符串的长度
M在varchar中表示允许的最大长度
char表示严格限定的长度
M表示的是字符数,而不是字节数。但是,总的长度的使用是按照字节计算的。
create table s_1(
a char(18),
b varchar(18)
);
create table s_2(
a varchar(65535)
);
create table s_3(
a varchar(65535)
)charater set gbk;
create table s_4(
a varchar(65535)
)charater set utf8;
注意,字段最大长度,除了类型本身限制之外,记录的总长度也受限制
create table s_2(
a varchar(21845)
)charater set utf8;
create table s_2(
a varchar(21844)
)charater set utf8;
create table s_3(
a varchar(65532) not null
)charater set set latin1;
create table s_4(
a varchar(65532)
)charater set set latin1;
create table s_5(
a varchar(65533)
)charater set set latin1;
create table s_5(
a varchar(65533) not null
)charater set set latin1;
真实的varchar的长度:
总长度:65535,
varchar特点,当类型数据超过255个字符时,采购2个字节表示长度。
65535-2=65535
整条记录,需要一个额外的字节,用于保存当前的null值
除非所有的字段都不是null,这个字节才能省略
create table s_5(
a varchar(65532) not null,
b tinyint not null
)charater set set latin1;
存在null,都是使用统一的一个字节来表示。而不是每个字节一个字段。
create table s_7(
a text,
b text
) character set latin1;
Text
2^16
文本,有很多兄弟类型
Tinytext longtext
八、枚举类型
create table s_8(
gender enum('female','male')
);
insert into s_8 values('male');
insert into s_8 values('female');
insert into s_8 values('other');
select gender+0 from s_8;
枚举类型,最大允许65535个枚举
数据库做优化时,尽量都用枚举类型
九、集合类型
create table s_9(
hobby set('basket','football','pingpang')
);
insert into s_9 values('basket,football');
select hobby+0 from s_9;
insert into s_9 values('pingpang,football');
select hobby+0 from s_9;
最多可以表示出64个状态。
表示的字符串长度不一样。
MySQL数据类型(四)的更多相关文章
- 第四章 MySQL数据类型和运算符
5.1 MySQL数据类型介绍 一.数据类型简介 (1) 数据表由多列字段构成,每一个字段指定了不同的数据类型,指定了数据类型之后,也就决定了向字段插入的数据内容 (2) 不同的数据类型也决定了 My ...
- 一、初识MySQL数据库 二、搭建MySQL数据库(重点) 三、使用MySQL数据库 四、认识MySQL数据库的数据类型 五、操作MySQL数据库的数据(重点)
一.初识MySQL数据库 ###<1>数据库概述 1. 数据库 长期存储在计算机内的,由组织的可共享的数据集合 存储数据的仓库 文件 ...
- MySQL数据类型 int(M) 表示什么意思?详解mysql int类型的长度值问题
MySQL 数据类型中的 integer types 有点奇怪.你可能会见到诸如:int(3).int(4).int(8) 之类的 int 数据类型.刚接触 MySQL 的时候,我还以为 int(3) ...
- MySQL数据类型——数值类型
1.1.1 整型 整型 占用字节 范围 范围 tinyint 1 -27~27-1 -128~127 smallint 2 -215~215-1 -32768~32767 mediumint 3 -2 ...
- MySQL数据类型--日期时间
一.博客前言 自接触学习MySQL已有一段时间了,对于MySQL的基础知识还是略懂略懂的.在这一路学习过来,每次不管看书还是网上看的资料,对于MySQL数据类型中的时间日期类型总是一扫而过,不曾停下来 ...
- MySQL优化四(优化表结构)
body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10 ...
- 谈谈如何选择合适的MySQL数据类型
MySQL数据类型选择 一 .选择原则 更小的通常更好:一般情况下选择可以正确存储数据的最小数据类型.越小的数据类型通常更快,占用磁盘,内存和CPU缓存更小. 简单就好:简单的数据类型的操作通常需要更 ...
- MySQL(数据类型和完整约束)
MySQL数据类型 MySQL支持多种数据类型,主要有数值类型.日期/时间类型和字符串类型. 1.数值数据类型 包括整数类型TINYINT.SMALLINT.MEDIUMINT.INT.BIGINT. ...
- MySQL数据类型以及基本使用详解
MySQL数据类型以及基本使用详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL服务器的主要组件 我们知道MySQL的主要组件主要是由服务端(mysqld)和客户端 ...
- day40 python MySQL【四】 之 【索引】【视图】【触发器】【存储过程】【函数】
MySQL[四] 之 [索引][视图][触发器][存储过程][函数] 1.索引 索引相当于图书的目录,可以帮助用户快速的找到需要的内容. 数据库利用各种各样的快速定位技术,能够大大提高查询效率.特 ...
随机推荐
- apk瘦身(包大小优化)
最近太忙好久没有写随笔,放假才有空写写随笔. 最近在项目中一直在做包大小优化 随着业务需求的增加,包大小是忍不住的往上涨 为了提高应用市场下载转化率,一直在优化包大小 首先 分析你的apk中占比的主要 ...
- 5.4.2 使用配置启动firefox
1.使用firefox的本地配置加载浏览器 使用本地配置加载浏览器,代码如下. 这样运行后,可以看到firebug等插件都已启动. 练习:假设做性能测试时,需要获取某个状况下的页面网络运行参数.要求完 ...
- 5.6 WebDriver API实例讲解(16-30)
16.操作单选框 被测试的网页为Demo1. Java语言版本的API实例代码: public static void operateRadio(){ driver.get("file:// ...
- 后Hadoop时代的大数据架构(转)
原文:http://zhuanlan.zhihu.com/donglaoshi/19962491 作者: 董飞 提到大数据分析平台,不得不说Hadoop系统,Hadoop到现在也超过10年 ...
- IE10 CSS hack,IE兼容问题
IE10 CSS hack,IE兼容问题 作者: 雪影 发表于2013 年 4 月 25 日 分类:技术分享 | 暂无评论 | 人气: 376 度 首先,ie10不支持条件注释了. 方法一:特性检测: ...
- uva 10723
10723 - Cyborg Genes Time limit: 3.000 seconds Problem F Cyborg Genes Time Limit 1 Second Septembe ...
- 项目三(集团官网)——总结(1) cookie
最近十几天一直在忙着做集团官方网站的工作,从刚开始紧张的筹备一直到现在初步成型,今天才有时间特地来记录一下自己在这个项目中的收获. 先来说一说今天遇到的问题吧:关于cookie~ 事情起因是这样的:在 ...
- PHP超级全局变量——Session 变量
PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置.Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用. PHP Session 变量 当您运行一个 ...
- mysql把查询的结果格式成日期
SELECT *,FROM_UNIXTIME(addtime, '%Y-%m-%d %H:%i:%S') as riqi FROM `test`
- PowerPivot安装完成后创建网站或网站集报错解决办法
根据上一篇“在现有 SharePoint 服务器上安装 PowerPivot for SharePoint”后,新建网站或网站集时报错,重新配置了一下PowerPivot For SharePoint ...