漆黑的夜空,总能让人产生无数的遐想,不知屏幕前的你,这周过得怎么样?玩耍也好,"修炼"也好,总之时间在不断从我们各处穿梭而过,

但你既然都点进来了,那在这短短的5分钟内我就来带你领来温习一下Mysql数据类型吧!

#常见的数据类型数值型: 整型 小数:  定点数  浮点型 字符型:  较短的文本:char,varchr  较长的文本:text,blob(较长的二进制数据)

  一.整型

     MySql的回顾八数据类型介绍_第1张图片

      

分类:tinyint,smallint,mediumint,int/integer,bigint1  2  3   4   8特点:①如果不设置无符号还是有符号,默认是有符号,如果想设置无符号,
需要添加UNSIGNED关键字。②如果插入的数值超出了整数的范围,会报out if range异常,并且插入临界值③如果不设置无符号和有符号,有符号的Int长度默认11,无符号Int的默认长度10④长度代表了显示的最大宽度,如果不够用会用0在左边填充,但必须搭配ZEROFILL使用。
#案例:1.如何设置有符号和无符号#有符号的 CREATE TABLE tab_int(   t1 INT      );DESC tab_int;插入一条数据INSERT INTO tab_int VALUES(-123456);/* Affected rows: 1 Found rows: 0 Warnings: 0 Duration for 
1 query: 0.016 sec. *//* 受影响的行:1 找到的行:0 警告:0 1 查询的持续时间:0.016 秒*/删除表DROP TABLE IF EXISTS tab_int; #重新创建表创建t2为无符号的数据类型CREATE TABLE tab_int( t1 INT, t2 INT UNSIGNED ); DESC tab_int;

MySql的回顾八数据类型介绍_第2张图片

#插入一条数据

MySql的回顾八数据类型介绍_第3张图片

#插入一条数据INSERT INTO tab_int VALUES(-123456,0);SELECT * FROM tab_int;

#长度设置,长度是不代表数据范围,只是代表占术数据的宽度。数据范围由类型决定。设置了宽度,如果不够会用0去填充。删除表,再次创建DROP TABLE IF EXISTS tab_int;CREATE TABLE tab_int( t1 INT(7), t2 INT(7) UNSIGNED    );DESC tab_int;

插入数据,查看数据INSERT INTO tab_int VALUES(123,123);SELECT * FROM tab_int;

为什么没0填充?删除表,再次创建,给字段后添加ZEROFILL关键字,
添加ZEROGILL后变为无符号数据类型。DROP TABLE IF EXISTS tab_int;CREATE TABLE tab_int( t1 INT(7) ZEROFILL, t2 INT(7) UNSIGNED );
插入数据,查看数据INSERT INTO tab_int VALUES(123,123);SELECT * FROM tab_int;

二.小数

MySql的回顾八数据类型介绍_第4张图片

备注:±正负号:按住Alt再用小键盘输入0177分类1.浮点型 float(M,D) double(M,D)2.定点型dec(M,D)decimal(M,D)定点型特点① M:整数部位+小数部位 D: 小数部位 如果超过范围,则插入临界值② M和D都可以省略 如果是decimal,则M默认为是10,D默认为0(如果超过会报错) 如果是float和double,则会根据插入的数值精度来决定精度③  定点型的精确度较高,如果要求插入数值的精度较高如 货币运算等则考虑使用备注:一般用float就行,节省空间
建表数据类型选择的原则: 所选择的类型越简单越好,能保存数据类型越小越好。
#测试M与DCREATE TABLE tab_float( f1 FLOAT(5,2), f2 DOUBLE(5,2), f3 DECIMAL(5,2)    );DESC tab_float;

MySql的回顾八数据类型介绍_第5张图片

插入数据,正常执行INSERT INTO tab_floatVALUES(123.45,123.45,123.45);SELECT * FROM tab_float;

再次插入数据INSERT INTO tab_floatVALUES(123.456,123.456,123.456);

MySql的回顾八数据类型介绍_第6张图片

查询数据SELECT * FROM tab_float;

四舍五入了再次插入数据INSERT INTO tab_floatVALUES(123.4,123.4,123.4);SELECT * FROM tab_float;

MySql的回顾八数据类型介绍_第7张图片

再次插入,测试INSERT INTO tab_floatVALUES(1523.4,1523.4,1523.4);超出范围报错,无法插入

MySql的回顾八数据类型介绍_第8张图片

先删除,再次创建tab_float表,省略后(M,D),正常执行DROP TABLE tab_float;CREATE TABLE tab_float( f1 FLOAT, f2 DOUBLE, f3 DECIMAL     );SELECT * FROM tab_float;  

再次插入数据,f3报错INSERT INTO tab_float VALUES(123.4523,123.4523,123.4523);DESC tab_float;

MySql的回顾八数据类型介绍_第9张图片

.字符型(串数据/文本型/二进制)

 

char和varchar类型说明:用来保存MySql中较短的字符串

 

分类较短的文本:cahr varchar特点:

MySql的回顾八数据类型介绍_第10张图片

备注:    固定的用char如性别只有男或女姓名用varchar 不同民族的姓名长度不一样char(M)可以省略M,默认为1varchar不可以省略较长的文本:textblob(较大的二进制)位类型

Binary和varbinary类型(较短的二进制)说明:类是与char与varchar,不同的是它们包含了二进制字符串不包
含非二进制字符串。
Enum类型(一娜姆)说明:又称为枚举类型哦,要求插入的值必须属于列表中指定的值之一。
其他:binary和varbinary用于保存较短的二进制enum用于保存枚举set用于保存集合
建表CREATE TABLE tab_char(c1 ENUM('E','S','W','N')      );#东—East,西—West,南—South,北—North 插入数据INSERT INTO tab_char VALUES('w');INSERT INTO tab_char VALUES('W');INSERT INTO tab_char VALUES('N');
 Affected rows: 3 Found rows: 0 Warnings: 0 Duration for 3 queries:
0.015 sec.
受影响的行:3 找到的行:0 警告:3 个查询的 0 持续时间:0.015 秒。

MySql的回顾八数据类型介绍_第11张图片

MySql的回顾八数据类型介绍_第12张图片

性别(男女)与季节(春夏秋冬)也可以考虑使用枚举类型。Set类型说明:和Enum类型类似,里面可以保存0~64个成员。和Enum类型最大的区别是:SET类型可以选取多个成员,而Enum只能选一个,根据成员个数不同,存储所占的字节也不同。
#建表测试CREATE TABLE tab_set(  s1 SET('c','x','q','d')  );DESC tab_set;

#插入数据,初夏秋冬INSERT INTO tab_set VALUES('c');INSERT INTO tab_set VALUES('c,x');INSERT INTO tab_set VALUES('c,q,d');SELECT * FROM tab_set;#插入成功,不区分大小写,大写插入,小写入库

MySql的回顾八数据类型介绍_第13张图片

四. 日期

 

MySql的回顾八数据类型介绍_第14张图片

1.Timestamp支持的时间范围较小,取值范围:1970010108001--2038年的某个时间Datetime的取值范围:1000-1-1--9999-12-312.timestamp和实际时区有关,更能反映实际的日期,而datetime则只能反映出插入时的当地时区。3.timestamp的属性收Mysql版本和SQLMode的影响很大。建表CREATE TABLE tab_date( t1 DATETIME, t2 TIMESTAMP    );插入数据DESC tab_date;

INSERT INTO tab_date VALUES(NOW(),NOW());SELECT * FROM tab_date;

查看时区SHOW VARIABLES LIKE 'time_zone';本地时区SET time_zone='+8:00';

修改时区,改为东9区SET time_zone='+9:00';

再次查询SELECT * FROM tab_date;

小结:分类:date只保存日期time只保存时间year只保存年datetime保存日期+时间timestamp保存日期+时间特点:字节   范围 时区等影响datetime  8  1000-9999 不受timestamp 4  1970-2038  受

   既然都看到这里了,希望你能有所收获。要不也动动你的小手手也练习一下???

MySql的回顾八数据类型介绍
文章转载:http://www.shaoqun.com/a/464136.html