mysql表数据基本操作语句(MySQL基础语句-表操作-数据类型-数值类型)
在创建表时,我们需要根据要求来进行创建,所以我们要选取合适的数据类型,下面我们就来说一说关于mysql表数据基本操作语句?我们一起去了解并探讨一下这个问题吧!
mysql表数据基本操作语句
在创建表时,我们需要根据要求来进行创建,所以我们要选取合适的数据类型。
MySQL中数据类型主要有三类:数值类型,字符串类型,日期时间类型。
今天,我们先来了解数值类型。
类型 |
大小 |
范围(符号) |
范围(无符号) |
用途 |
TINYINT |
1 Bytes |
(-128,127) |
(0,255) |
小整数值 |
SMALLINT |
2 Bytes |
(-32 768,32 767) |
(0,65 535) |
大整数值 |
MEDIUMINT |
3 Bytes |
(-8 388 608,8 388 607) |
(0,16 777 215) |
大整数值 |
INT或INTEGER |
4 Bytes |
(-2 147 483 648,2 147 483 647) |
(0,4 294 967 295) |
大整数值 |
BIGINT |
8 Bytes |
(-9,223,372,036,854,775,808,9 223 372 036 854 775 807) |
(0,18 446 744 073 709 551 615) |
极大整数值 |
FLOAT |
4 Bytes |
(-3.402 823 466 E 38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E 38) |
0,(1.175 494 351 E-38,3.402 823 466 E 38) |
单精度浮点数值 |
DOUBLE |
8 Bytes |
(-1.797 693 134 862 315 7 E 308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E 308) |
0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E 308) |
双精度浮点数值 |
DECIMAL |
对DECIMAL(M,D) ,如果M>D,为M 2否则为D 2 |
依赖于M和D的值 |
依赖于M和D的值 |
小数值 |
了解计算机基础知识的我们知道,在计算机中 1Byte=8bit,每bit可以存放一个0或者一个1。
数值类型又分为整型和浮点型。
现在我们以tinyint为例,了解整形为什么如表中所示.
TINYINT大小为1Byte,等于8bit。我们可以将其想象成并列排放的8个盒子,每个盒子表示1bit。
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
1Byte
我们首先来看无符号时TINYINT的范围:
编号1~编号8每个盒子可以放入0或者1两种情况,那么总共可以组成:
2*2*2*2*2*2*2*2=256,也就是说这8个盒子一共可以组成256种不同的排列。
编号1~编号8全部放0时取得最小值0000 0000(2),
编号1~编号8全部放1时取得最大值1111 1111(2),
将其转化成10进制数,取值范围即为0~255。
有符号时TINYINT的范围:
对于计算机来说,有符号数的“正”,“负”,机器无法识别,但是由于正负是两种截然不同的状态,因此计算机中规定:用“0”表示“正”,用“1”表示“负”,并且将其放在有效数字的前面,组成了有符号数。
将符号“数字化”的数称为机器数,而把带有“ ”,“-”符号的称为真值,例如:
符号数(整数) 110 0000 在机器中表示为 0 1100000
那么我们此时知道TINYINT类型的数值在计算机中表示为
符号位 |
数值位 |
第一位为符号位,后七位是数值位。
原码
原码是机器数中最简单的一种表示形式,符号位为0表示正数,符号位为1表示负数,数值为正值的绝对值。上面所举的 1100000 机器数表示的0 1100000 即为原码。
同样的,真值为 -1000000 的 原码为1 1000000
需要注意的是,原码中的0根据符号位的不同分为“ 0”和“-0”,并且两者并不相等。
2*2*2*2*2*2*2-1=128-1=127
TINYINT原码的范围是-127~127
原码的优点是:易于同真值进行转换。
原码的缺点是:两个操作数符号不同时使用原码进行计算加法运算时,需要判断数的大小,最后结果,根据大的那个数判断。非常麻烦。
补码
为了克服原码的缺点,人们提出了补码。
补码的作用是找出与负数等价的正数来代替负数,这样在计算时就可以将减法替换加法。
在介绍补码之前我们先来了解一下模的概念
个人认为模就是用来表示最大容量的,例如钟表中最多有12(1~12)个小时,模为12,一周有7(1~7)天,模为7。
例子:时钟指示6点,欲使它指示3点,可以按顺时钟方向,将分针转9圈,又可按逆时针方向转3圈,结果是一致的。
6-3=3
6 9=15
但是钟表上面最多是12点,没有15点,多余的从12点从新开始1点,2点,3点。因此在钟表中“-3”与“ 9”是等价的,我们也说对于模为12来说“-3”的补数是“ 9”
我们也就找到了与“-3”等价的正数“ 9”来代替负数。
注意:对于正数而言,补数是其本身。
我们可以总结如下:
- 一个负数可以用它的正补数替代,正补数可以用模加负数本身求得。
- 一个正数和一个负数互为补数时,它们的绝对值为模
- 正数的补数为它本身
将模与补数的概念用到计算机当中,便出现了补码这种机器数。
以TINYINT为例
原码表示范围为
-127~-1 -0 0 1~ 127
TINYINT的容量为127*2 2=256,所以他的模为256。
原码的取值范围 1111 1111 ~0111 1111
1111 1111(-127)的补码为1000 00000(2)-111 1111(2)=10000001
1111 1110(-126)的补码为1000 00000(2)-111 1110(2)=10000010
1111 1101(-125)的补码为1000 00000(2)-111 1101(2)=10000011
1111 1100(-124)的补码为1000 00000(2)-111 1100(2)=10000100
... ...
1000 0001(-1)的补码为1000 00000(2)-000 0001(2)=11111111
1000 0000(-0)的补码为1000 00000(2)-000 0000(2)=1000 00000
正数的补码为其本身。
我们发现将所有负数原码转化成补码时负数补码的范围为1000 0001~1111 1111
我们发现“-0”的补码1000 00000要占9个格子,放入8个格子,只能舍去最高位为0000 0000
与“ 0”的补码0000 0000相同
补码中还有个数1000 0000没有使用,因此人们规定-128的补码为1000 0000
补码的范围为 1000 0000~1111 1111
为-128~127
计算机中负数用补码表示,因此TINYINT有符号数的表示范围是-128~127。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com