mysql表数据基本操作语句(MySQL基础语句-表操作-数据类型-数值类型)

在创建表时,我们需要根据要求来进行创建,所以我们要选取合适的数据类型,下面我们就来说一说关于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

    分享
    投诉
    首页