MYSQL数据库数据类型
07.14自我总结
MYSQL数据库数据类型
一.整数类型和浮点数典型
1.有符号/没符号
对于整数和负整数来说,默认情况下是有符号范围的
默认是有符号
有符号和没符号其实就是有没有包括负数,有符号是包括负数的
设置成无符号:
alter table 表名 变量名 数据类型 unsigned;
| 严格模式 | 非严格模式 | |
|---|---|---|
| 有符号 | (-,+) 超出范围会报错 | (-,+) 超出范围取极值 |
| 无符号 | (0,+) 超出范围会报错 | (0,+) 超出范围取极值 |
2.严选/非严选
我们不推荐使用非严格模式下建立table,因为它会可能造成数据丢失的情况,所以我们必须在5.6版本中将mysql设置为严格模式。
方法一:select@@sql_mode; @表示全局变量;@@表示会话级变量(局部)
临时设置set @@sql_mode ='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES ';
方法二:直接修改配置文件;
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 并重启服务端mysql后生效.
严选情况下,数据超过他的设置范围他会报错
非严选情况下,数据超过他的设置范围不会报错,但是只存他设置大小的那一部分的数据,多余的会丢掉
3.常见的类型
1.整数型
| 数据类型 | 字节数 | 符号范围 | 有符号范围 |
|---|---|---|---|
| TINYINT | 1 | 0~255 | -128~127 |
| SMALLINT | 2 | 0~65535 | -32768~32767 |
| MEDIUMINT | 3 | 0~16777215 | -8388608~8388607 |
| INT | 4 | 0~4294967295 | -2147483648~2147483647 |
| BIGINT | 8 | 0~18446744073709551615 | -9223372036854775808 ~9223372036854775807 |
2.浮点型
| 数据类型 | 字节数 | 符号范围 | 有符号范围 |
|---|---|---|---|
| float | 4 | 1.175494351E-38 ~3.402823466E +38 |
-3.402823466E+38~ -1.175494351E-38 |
| double | 8 | 2.2250738585072014E-308 ~1.7976931348623157E+308 |
-1.7976931348623157E+308 ~-2.2250738585072014E- 308 |
| decimal[(M[,D])] | 最大与 double相同 |
不固定 | 不固定 10.2 decimal(3,1); |
二.字符串类型
1.char 与varchar
char:定长字符串,字符长度0-255个字节之间,存储时占用固定字节空间
相对于varchar来讲
优点: 读取存储速度快于varchar
varchar:可变长度字符串,字符长度在0-65532个字节,存储式占用空间实际字节长度+1,而+1是存的他的长度
原因:因为char我们如果规定6,然后输入3个字符,他后面的内容会用宫格来填充,而varchar不会用空格填充,所有存的时候空间节省了,而读的时候需要发送字符的数量所有读取会变慢
2.binary 与 varbinary
BINARY和VARBINARY类类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要二进制字符串
输入值的和char 与varchar差不多的填充效果
3.text与blob
blob:没有编码的二进制大字符串.(了解即可)
text:具备编码的大字符串;
都有四种
- tinyblob,tinytext:
- blob,text
- mediumblob,mediumtext
- longblob,longtext
4.enum与set
规定这个里面输入内容是什么,你可以输入他的内容,也可以输入他的索引
enum与set区别,enum只能输一个,set能输入一个或多个,且用集合的形式输入
注意: mysql会自动将字符串后面的空格删掉 所以你的数据在存储前应该先把空格处理掉
三.时间类型
year :格式YYYT
- data:格式YYYY-MM-DD
- time:格式HH:MM:SS
- datatime:格式YYYY-MM-DD HH:MM:SS
timestamp :格式YYYY-MM-DD HH:MM:SS (不用输入默认为数据插入时候的插入时间)
注意:
- 0-69 翻译为 2000-2069; 70-99 翻译为1790-1999
- year、date、time既可以用字符串也可以用数字输入值;current_time和now()输入系统当前日期
- time不仅可以表示一天的时间,也可以表示两个时间的时间间隔
- 'D HH:MM:SS'格式的字符串,D表示日(0-34),HH的实际值为D*24+HH
- datetime、timestamp只能以字符串形式输入
- 在使用timestamp时,输入current_timestamp输入系统当前日期和时间
- 在使用timestamp时,输入null或不输入,系统会自动输入当前日期和时间
MYSQL数据库数据类型的更多相关文章
- MySQL数据库数据类型之集合类型SET测试总结
MySQL数据库提供针对字符串存储的一种特殊数据类型:集合类型SET,这种数据类型可以给予我们更多提高性能.降低存储容量和降低程序代码理解的技巧,前面介绍了首先介绍了四种数据类型的特性总结,其后又分别 ...
- MySql数据库数据类型及约束介绍
1,MySql中数据类型介绍 整型及浮点型 数据类型 存储范围 字节 TINYINT 有符号值:-2^到2^7-1 无符号值:0到2^8-1 2 SMALLINT 有符号值:-2^15到2^15-1 ...
- MySQL数据库数据类型以及INT(M)的含义
nt(M)我们先来拆分,int是代表整型数据那么中间的M应该是代表多少位了,后来查mysql手册也得知了我的理解是正确的,下面我来举例说明. MySQL 数据类型中的 integer types ...
- mysql数据库 --数据类型、约束条件
今日内容 表的详细使用 1.创建表的完成语法 2.字段类型 整型.浮点型.字符类型.日期类型.枚举与集合类型 3.约束条件 primary key.unique.not null.default 一. ...
- mysql数据库 数据类型
char(m) 固定长度字符串,m<=255:处理速度快: varchar(m) 可变长度字符串,m<=255: int(m) 整数型,-214783647到214783648之间,使用u ...
- MySQL数据库之数据类型BOOL/BOOLEAN与TINYINT测试总结
From: http://database.51cto.com/art/201203/323863.htm 网络上很多人咨询mysql是否提供布尔类型?MySQL数据库确实提供布尔类型,此数据类型的关 ...
- MySQL数据库笔记二:数据类型及数据库操作
三.MySQL数据库数据类型 MySQL数据库中支持多种数据类型:数值型.字符型.日期型 常用的数据类型: 1.整型 int:整形,存储整数 int(M):M表示预期值.与存储大小和数值的范围无关. ...
- MySQL数据库具体一些操作
创建数据库:CREATE DATABASE 数据库名;删除数据库:drop database <数据库名>;选择使用(需要操作的数据库):use 数据库名称;mysql数据库数据类型:类型 ...
- MySQL数据库3 - MySQL常用数据类型
一. MySql常用数据类型 数据类型:整数(tinyint smailint int bigint) 定点数 decimal(p,s) ------ 小数点位置固定的 ---> 数 ...
随机推荐
- 解释下Func<T, bool> exp
比如 interface IRepository<T> where T:class { IEnumerable<T> FindAll(Func<T, bool> e ...
- 广义线性模型(Generalized Linear Model)
广义线性模型(Generalized Linear Model) http://www.cnblogs.com/sumai 1.指数分布族 我们在建模的时候,关心的目标变量Y可能服从很多种分布.像线性 ...
- 用C实现OOP面向对象编程(1)
如摘要所说,C语言不支持OOP(面向对象的编程).并这不意味着我们就不能对C进行面向对象的开发,只是过程要复杂许多.原来以C++的许多工作,在C语言中需我们手动去完成. 博主将与大家一起研究一下如下用 ...
- 屏蔽按CapsLock键切换到大写时,编辑框自动弹出的提示(UnregisterClass(TOOLTIPS_CLASS)后,重新设置WndProc并注意返回值)
WNDPROC OldProc; LPCTSTR lpStr = TEXT("保持大写锁定打开可能会使您错误输入密码"); LRESULT CALLBACK WindowProc( ...
- Postman调试中文出现乱码问题
最近在通过postman调试接口的时候,发现post的数据在中文的时候,传输到后台变成了问号(???),经过网上的资料与验证,找到了解决方案:在请求头中添加charset=UTF-8的属性,后续在进行 ...
- spring3升级到spring4通用异常处理返回jsonp多了/**/的解决办法
问题描述 在spring3中定义了通用的异常处理,具体代码如下: public class CommonExceptionHandler implements HandlerExceptionReso ...
- jmeter报告分析工具
一直以来做性能测试都是用jmeter和LR,当然还有一些自己写测试脚本,LR不用说,分析结果那个组件杠杠的!但是jmeter毕竟是开源的,所以分析查看结果不像LR那样自带图形神马的,虽然可以自己写脚本 ...
- Windows服务器下的IIS和Apache性能比较
目前最流行的建立网站的服务工具就要属Apache与IIS了.那么他们之间到底哪个性能更好呢?到底哪个工具才是最适合我们的呢?最近我也对这方面的问题进行了一番研究. 如果是基于Linux平台的话,那不必 ...
- 使用Gson封装和解析JSON
案例:判断用户名是否存在 在jsp页面使用ajax $("#username").change(function(){ var username = $(this).val(); ...
- spring 5.x 系列第5篇 —— 整合 mybatis + druid 连接池 (xml配置方式)
源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 项目目录结构 1.创建maven工程,除了Spring基本依赖外,还需要导 ...