1. 程式人生 > >(5)數值型別:整數型別、小數型別

(5)數值型別:整數型別、小數型別

一、數值型別—-整數型別
tinyint:1個位元組 有符號:-128-127 無符號:0-255
smallint :2個位元組
mediumint:3個位元組
int/intege:4個位元組
bigint:8個位元組
①是否有符號,可在定義時,使用unsigned,沒有符號,不寫則有符號
②通過規定資料的顯示寬度,達到統一顯示的目的型別(M),M表示顯示的最小寬度是多少並沒規定最大寬度,直接顯示其大寬度。需要使用前導零填充達到目的,稱為zerofill
下面以tinyint來舉例,其他整型用法和此相同

create table tb1_int(a tinyint unsigned,b tinyint);
insert into tb1_int values(255,127);

alter table tb1_int add c tinyint(2)zerofill;(只是在這一列填充,所以不影響其他列)
insert into tb1_int values(0,100,1);
insert into tb1_int values(0,100,20);
insert into tb1_int values(0,100,123);
這裡寫圖片描述

③sql中表示真假,也存在bool型別,就是tinyint(1)的別名,0表示假,其他表示真

二、小數型別

①浮點:小數點位數可以變化
float :單精度 4個位元組 預設精度位數為6位左右
double:雙精度 8個位元組 預設精度位數為16位左右
②支援控制數值的範圍:資料型別(M,D)
M代表所有的數值位數,不包括小數點和正負號(包含小數部分)
D:允許的小數位數

create table num_3(a float(5,2),b double(8,3));
b double(8,3):已經規定了小數點前最多5位,小數點後最多3位
insert into num_3 values (561.12,1234.547);//滿足條件
insert into num_3 values(1567.12,123456.5);//這兩個數均不合法

③浮點數支援科學計數法
insert into num_3 values(0.23E3,456.7E2);
0.23E3=0.23*10^3=230.00
456.7E2=456.7*10^2=45670.000

④定點數
浮點數,可能丟失精度
decimal(M,D):M總位數,D小數位數(範圍存在),不會丟失精度。
若不寫範圍,則預設M:10,D:0

⑤也支援zerofill,unsigned(但是不常用)

這裡寫圖片描述
這裡寫圖片描述