mysql记录当前表数据的数据条数据类型_mysql的表的操作 数据类型
一 數(shù)據(jù)類型
1 數(shù)字:
整型:tinyint????? int???? bigint
小數(shù):float:在位數(shù)較短的情況下不精準(zhǔn)
double:在位數(shù)比較長的情況下不精準(zhǔn)
1 數(shù)字
整型:tinyint int big
小數(shù):float:在位數(shù)比較短的情況下不精準(zhǔn)
double:在位數(shù)比較長的情況下不精準(zhǔn)
decimal:如果是小數(shù) 推薦使用decimal 精準(zhǔn) 內(nèi)部原理是使用字符串去存儲
2 字符串
char(10) :簡單粗暴 浪費(fèi)空間 存取速度快
varchar:精準(zhǔn) 節(jié)省空間 存取速度慢
3 時間類型:最常用: datetime
4 枚舉類型和集合類型:
enum 和 set
2 數(shù)值類型
作用:存儲年齡 等級 id 各種號碼等
tinyint
小整數(shù),數(shù)據(jù)類型用于存儲一些范圍的整數(shù)的數(shù)據(jù)范圍;
有符號:-128~127;
無符號:0~255
int
整數(shù),數(shù)據(jù)類型用于存儲一些范圍的整數(shù)數(shù)值范圍:
有符號:-1214483648~2147483647
有符號:0~ 4294967295
bigint
大整數(shù):數(shù)據(jù)類型用于存儲一些范圍的數(shù)值:
有符號:-9223372036854775808 ~ 9223372036854775807
無符號:0 ~ 18446744073709551615
驗(yàn)證1
============有符號tinyint==============
# 創(chuàng)建數(shù)據(jù)庫db4
create database db4 charset utf8;
# 切換到當(dāng)前db4數(shù)據(jù)庫
mysql> use db4;
# 創(chuàng)建t1 規(guī)定x字段為tinyint數(shù)據(jù)類型(默認(rèn)是有符號的)
mysql> create table t1(x tinyint);
# 驗(yàn)證,插入-1這個數(shù)
mysql> insert into t1 values(-1);
# 查詢 表記錄,查詢成功(證明默認(rèn)是有符號類型)
mysql> select * from t1;
+------+
| x |
+------+
| -1 |
+------+
#執(zhí)行如下操作,會發(fā)現(xiàn)報錯。因?yàn)橛蟹柗秶?-128,127)
mysql> insert into t1 values(-129),(128);
ERROR 1264 (22003): Out of range value for column 'x' at row 1
============無符號tinyint==============
# 創(chuàng)建表時定義記錄的字符為無符號類型(0,255) ,使用unsigned
mysql> create table t2(x tinyint unsigned);
# 報錯,超出范圍
mysql> insert into t2 values(-129);
ERROR 1264 (22003): Out of range value for column 'x' at row 1
# 插入成功
mysql> insert into t2 values(255);
Query OK, 1 row affected (0.00 sec)
驗(yàn)證2
復(fù)制代碼
mysql> create table t3(id int(1) unsigned);
#插入255555記錄也是可以的
mysql> insert into t3 values(255555);
mysql> select * from t3;
+--------+
| id |
+--------+
| 255555 |
+--------+
ps:以上操作還不能夠驗(yàn)證,再來一張表驗(yàn)證用zerofill 用0填充
# zerofill 用0填充
mysql> create table t4(id int(5) unsigned zerofill);
mysql> insert into t4 value(1);
Query OK, 1 row affected (0.00 sec)
#插入的記錄是1,但是顯示的寬度是00001
mysql> select * from t4;
+-------+
| id |
+-------+
| 00001 |
+-------+
1 row in set (0.00 sec)
注意 :為該類型指定寬度時,僅僅只是指定查詢結(jié)果的顯示寬度 與存儲范圍無關(guān),有符號和無符號的最大的區(qū)別是顯示的寬度均為10.而針對有符號的最小值則需要11位才能顯示完全,所以int類型默認(rèn)的顯示寬度是11 是合理的
3 浮點(diǎn)型
浮點(diǎn)類型:float bouble
作用:存儲薪資、身高、體重、體質(zhì)參數(shù)等
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
#參數(shù)解釋:單精度浮點(diǎn)數(shù)(非準(zhǔn)確小數(shù)值),M是全長,D是小數(shù)點(diǎn)后個數(shù)。M最大值為255,D最大值為30
有符號:
-3.402823466E+38 to -1.175494351E-38,
1.175494351E-38 to 3.402823466E+38
無符號:
1.175494351E-38 to 3.402823466E+38
精確度:隨著小數(shù)的增多,精確度變得不準(zhǔn)確
double
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
#參數(shù)解釋: 雙精度浮點(diǎn)數(shù)(非準(zhǔn)確小數(shù)值),M是全長,D是小數(shù)點(diǎn)后個數(shù)。M最大值為255,D最大值為30
有符號:
-1.7976931348623157E+308 to -2.2250738585072014E-308
2.2250738585072014E-308 to 1.7976931348623157E+308
無符號:
2.2250738585072014E-308 to 1.7976931348623157E+308
精確度:隨著小數(shù)的增多,精度比float要高,但也會變得不準(zhǔn)確
decimal[(m[,d])] [unsigned] [zerofill]
#參數(shù)解釋:準(zhǔn)確的小數(shù)值,M是整數(shù)部分總個數(shù)(負(fù)號不算) ,D是小數(shù)點(diǎn)后的個數(shù),M最大值為65 D最大值是30
精確度: 隨著小數(shù)的增多 精確度始終準(zhǔn)確、對于精確數(shù)值計算時需要使用該類型 decaimal 能夠存儲精確度的原因在于內(nèi)部按照字符串的形式存儲
4 日期類型
作用:存儲用戶注冊的時間,文章發(fā)布的時間,員工入職的時間,出生時間,過期時間
語法:
YEAR
YYYY(1901/2155)
DATE
YYYY-MM-DD(1000-01-01/9999-12-31)
TIME
HH:MM:SS('-838:59:59'/'838:59:59')
DATETIME
YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y)
TIMESTAMP
YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某時)
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的mysql记录当前表数据的数据条数据类型_mysql的表的操作 数据类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: golang mysql 崩溃_mysq
- 下一篇: sqlite mysql php_PHP