引荐参考教程:《mysql教程》
列范例(数据范例)
所谓的列范例,实在就是指数据范例,即对数据举行一致的分类,从体系的角度动身是为了能够运用一致的体式格局举行治理,更好的应用有限的空间。
在 SQL 中,将数据范例分红了三大类,分别为:数值型、字符串型和日期时刻型。
关于数值型数据,能够进一步将其划分为整数型和小数型。
整数型
在 SQL 中,由于要斟酌节约磁盘空间的题目,因而体系又将整型细分红五类,分别为:
tinyint
:迷你整型,运用 1 个字节存储数据(经常使用);smallint
:小整型,运用 2 个字节存储数据;mediumint
:中整型,运用 3 个字节存储数据;int
:规范整型,运用 4 个字节存储数据(经常使用);bigint
:大整型,运用 8 个字节存储数据。
接下来,输入以下 SQL 语句举行测试:
-- 建立整型表create table my_int( int_1 tinyint, int_2 smallint, int_3 int, int_4 bigint )charset utf8;
如上图所示,我们已胜利建立my_int
表,再插进去数据:
-- 插进去数据insert into my_int values (1,2,3,4);insert into my_int values ('a','b','c','d');insert into my_int values (255,2,3,4);
如上图所示,经由过程列范例,我们能够限定插进去数据的范例以及长度局限。
至于为何在对int_1
赋值时,报出超越局限的毛病,则是由于在 SQL 中数值范例默许是有标记位的,即分正负。假如须要运用无标记的数据,这就须要我们自身对数据范例举行声明啦,即在声明数据范例时,追加unsigned
关键字。比方:
-- 在 my_int 表中,增添 int_5 字段,设置其数据范例为 tinyint unsignedalter table my_int add int_5 tinyint unsigned;
如上图所示,增添int_5
字段胜利,继承插进去数据:
-- 插进去数据insert into my_int values (1,2,3,4,255);
如上图所示,当我们将tinyint
限定为unsigned
以后,已能够插进去0~255
之间的任何整数啦!然则,回过头来,让我们细致看看下面这张图:
经由过程视察上面这张图,我们会发明:每一个字段的数据范例背面都邑随着一对括号,而且内里含有数字。这些数字啊,实在并没有什么迥殊的寄义,只是示意数据的显现宽度。实际上,我们能够修正显现的宽度,然则这类修正并不会转变数据自身的大小。
显现宽度的意义:在于当数据不够显现宽度的时刻,会自动让数据变成对应的显现宽度,一般须要搭配一个前导0
来增添宽度,其不转变数据值的大小,即用zerofill
举行零添补,而且零添补会致使数值自动变成无标记。
下面,实行以下 SQL 语句:
-- 在 my_int 表中,增添 int_6 字段,设置其数据范例为 tinyint zerofillalter table my_int add int_6(3) tinyint zerofill;
再插进去数据,举行测试:
-- 插进去数据insert into my_int values (1,2,3,4,5,6);
如上图所示,零添补的意义:在于保证数据的花样。
小数型
小数型,即带有小数点或许局限超越整型的数值范例。
在 SQL 中,将小数型细分为浮点型和定点型两种,个中:
浮点型:小数点浮动,精度有限,轻易丧失精度;
定点型:小数点牢固,精度牢固,不会丧失精度。
第 1 种:浮点型
浮点型数据是一种精度型数据,由于超越指定局限以后,其会丧失精度,自动举行四舍五入操纵。理论上,浮点型分为两种精度:
float
:单精度,占用 4 个字节存储数据,精度局限也许为 7 位摆布;double
:双精度,占用 8 个字节存储数据,精度局限也许为 15 位摆布。
浮点型的运用体式格局:假如直接用float
,则示意没有小数部份;假如用float(M,D)
,个中M
代表总长度,D
代表小数部份长度,M-D
则为整数部份长度。
实行以下 SQL 语句建立浮点数表,举行测试:
-- 建立浮点数表create table my_float( f1 float, f2 float(10,2), f3 float(6,2) )charset utf8;
在我们向浮点数表my_float
插进去数据的时刻,能够直接插进去小数,也能够插进去用科学计数法示意的数据。另外,插进去浮点型数据时,整数部份是不能超越长度局限的,然则小数部份是能够超越长度局限的,体系会自动举行四舍五入的操纵。迥殊是,假如浮点数是由于体系进位(四舍五入)致使整数部份超越指定的长度,那末体系是许可建立的。
-- 插进去测试数据insert into my_float values (2.15e4,20.15,9999.99);insert into my_float values (20151120,123456789.99,9999.99);insert into my_float values (5211314,123456.99,99.99999);
如上图所示,我们的结论得到了考证。
第 2 种:定点型
定点型数据,相对的保证整数部份不会被四舍五入,也就是说不会丧失精度,但小数部份有能够丧失精度,虽然理论上小数部份也不会丧失精度。
实行以下 SQL 语句建立定点数表,以浮点数做对照,举行测试:
-- 建立定点数表create table my_decimal( f1 float(10,2), d1 decimal(10,2) )charset utf8;
当我们插进去数据的时刻,定点数的整数部份肯定不能超越长度局限(进位也不能够),小数部份的长度则能够随便超越,没有限定,体系会自动举行四舍五入的操纵:
-- 插进去测试数据insert into my_decimal values (99999999.99,99999999.99);insert into my_decimal values (123456789.99,2015.1314);insert into my_decimal values (123456.99,2015.1314);
如上图所示,我们的结论一样得到了考证。
以上就是MySQL 教程之列范例中的数值型的细致内容,更多请关注ki4网别的相干文章!