Mysql 學習 ->數據類型篇(數值類型)

来源:http://www.cnblogs.com/fangxijun/archive/2017/10/19/7695721.html
-Advertisement-
Play Games

整數類型 位元組 最小值 最大值 有符號-128 無符號0 有符號 127 無符號 255 有符號-32768 無符號0 有符號32767 無符號65535 有符號 -8388608 無符號 0 有符號 8388608 無符號1677215 有符號-2147483648 無符號0 有符號2147483 ...


 

  1. 數據類型

 

整數類型

位元組

最小值

最大值

TINYINT 1

有符號-128

無符號0

有符號 127

無符號 255

SMALLINT 2

有符號-32768

無符號0

有符號32767

無符號65535

MEDIUMINT 3

有符號 -8388608

無符號 0

有符號 8388608

無符號1677215

INT 4

有符號-2147483648

無符號0

有符號2147483647

無符號4294967295

BINGINT 8

有符號 -9223372036854775808

無符號 0

有符號9223372036854775807

無符號18446744073709551615

浮點數類型
位元組
最小追
最大值
FLOAT 4

-+1.175494351E-38

-+3.402823466E+38

DOUBLE 8

-+2.2250738585072014E-308

-+1.7976931348623157E+308

定點數類型

位元組

 

描述

DECIMAL(M,D) M+2

最大取值範圍與DOUBLE相同,給定DECIMAL的有效值範圍由M和D決定

 

位類型

位元組

最小值

最大值

BIT(M) 1~8

BIT(1)

BIT(64)

  對於整數類型,Mysql支持類型名臣後面的小括弧內指定顯示寬度,例如int(5),當數值寬度小於5位的時候在數字前面填滿寬度,一般配合zerofill使用。

  (zerofill就是 ‘0’填充的意思,在數字位數不夠的空間用字元0填滿)。

  

  如果插入的值大於寬度限制會不會報錯?

    答:不會對插入的數據有任何影響,還是會按照類型的實際精度進行保存,所有的整數類型都有一個可選屬性UNSIGNED(無符號),如果要在欄位裡面保存非負數或者需要較大的上限值時,可以用此選項,他的取值範圍下限取0,上限取原值的2倍。

  

  另外,整數類型還有一個屬性,AUTO_INCREMENT(自動增長),在需要產生唯一標識或順序時,可用這個屬性,只作用於整數類型,值一般從1開始,通常用在主鍵(PRIMARY KEY)上

  註:mysql中數值類型基本就是這些,在選擇數據類型的時候要根據應用時機發生的情況確定其取值範圍,最後根據確定的結果慎重選擇數據類型。

  對於小數的表示,Mysql分為定點型和浮點型:

    浮點型包括float(單精度)double(雙精度),而定點數則只有decimal一種表示,定點數在Mysql內部以字元串的形式存放,比浮點數更精確,適用於貨幣等精度高的數據

   float,double,decimal三者之間的區別?

    創建一張表分別定義

      

    分別往id1,id2,id3中插入 1.23

      

    在向id1,id2欄位插入1.234,而id3中仍然插入1.23

    

    可以看出,其中id1和id2由於標度的限制,捨去了最後一位,數據變成1.23

    接著同時向id1,id2,id3欄位中插入數據1.234

    

    此時發現,數據都插入進去了,但是報了一個warning錯誤,id3這個記錄是不能插入的,跟數據校檢有關,涉及到sql mode的知識,之後在講

    將表中的精度和標度都去掉,這次插入1.234

    

    插入數據
    

    可以發現,id1和id2欄位可以正常插入數據,id3小數位被截斷了,所以可以看出,浮點數如果不寫精度和標度,則會按實際情況顯示值,如果有精度和標度,則會四捨五入

    定點數如果不寫精度和標度,則會按系統預設值decimal(10,0)來進行操作,如果數超過精度和標度會報錯

 

    對於BIT類型,用於存放位欄位值,BIT(M)可以存放多為二進位數,M範圍1~64,如果不寫則預設1,對於位欄位,直接使用select命令不會看到結果,可以用bin()(顯示二進位格式)或者hex()(顯示十六進位格式)函數進行讀取

    

    

    用bin()和hex()函數:

    

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • //班主任表 CREATE TABLE [dbo].[teacher]( [id] [int] IDENTITY(1,1) NOT NULL primary key, [name] [varchar](50) NOT NULL, [sj] [datetime] default(getdate()) ...
  • 游標 游標存在意義:解決“select *”返回空、多行記錄問題,但凡select,就可能多行結果集,也就需要用游標。 游標分4步走:cursor、open、fetch、close 可能省略open、close,用for ... in ... loop ... end loop; 1、靜態游標: ( ...
  • 以前寫過一篇文章IO is frozen on database xxx, No user action is required“, 主要是介紹PlateSpin在伺服器層面做DR備份時,SQL Server日誌裡面有"I/O is frozen on database xxxx"以及“I/O wa... ...
  • 一、所需軟體 二、安裝說明 三、安裝 1、下載yum源。 官網地址:http://dev.mysql.com/downloads/repo/yum/ centos7系統: wget http://dev.mysql.com/get/mysql57-community-release-el7-7.no ...
  • 一、Sql * plus 常用命令 1.關於登錄,連接的幾個命令 1) conn[nect] //例 conn system/manager 用法 conn 用戶名/密碼 @網路服務名 (as sysdba/sysoper) 當特權用戶登錄的時候,必須帶上 as sysdba/sysope 比如 s ...
  • 1.查詢5.5版本的InnoDB參數並註釋:[root@localhost etc]# grep -i innodb my.cnf;t_innodb; otherwise, slaves may diverge from the master.Uncomment the following if y... ...
  • 操作系統 :CentOS5.8_x64 PostgreSQL版本 :9.1 問題描述 伺服器未連接公網時怎麼安裝PostgreSQL資料庫? 伺服器版本為: CentOS5.8_x64 需要安裝的PostgreSQL版本為:9.1 解決方案 解決yum源的問題【可選】 添加PostgreSQL源並下 ...
  • DDL語句:資料庫定義語言,一般是對資料庫的操作,create,drop,alter等 DML語句:數據操作語言,curd操作 DDL: create databases 資料庫名 //創建一個資料庫 show databases 資料庫名 //查看資料庫 use databases 資料庫名 // ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...