MySQL資料庫常見的數據類型

来源:https://www.cnblogs.com/jinli1771/archive/2020/06/10/13083121.html
-Advertisement-
Play Games

MySQL提供的數據類型包括數值類型(整數類型和小數類型)、字元串類型、日期類型、複合類型(複合類型包括enum類型和set類型)以及二進位類型 。 1,整數類型: 整數類型的數,預設情況下既可以表示正整數又可以表示負整數(此時稱為有符號數)。如果只希望表示零和正整數,可以使用無符號關鍵字“unsi ...


MySQL提供的數據類型包括數值類型(整數類型和小數類型)、字元串類型、日期類型、複合類型(複合類型包括enum類型和set類型)以及二進位類型 。

1,整數類型:

整數類型的數,預設情況下既可以表示正整數又可以表示負整數(此時稱為有符號數)。如果只希望表示零和正整數,可以使用無符號關鍵字“unsigned”對整數類型進行修飾。

例如:score tinyint unsigned

各個類別存儲空間及取值範圍。

 2,小數類型

decimal(length, precision)用於表示精度確定(小數點後數字的位數確定)的小數類型,length決定了該小數的最大位數,precision用於設置精度(小數點後數字的位數)。 例如: decimal (5,2)表示小數取值範圍:999.99~999.99 decimal (5,0)表示: -99999~99999的整數。

3,字元串

char()與varchar(): 例如對於簡體中文字元集gbk的字元串而言,varchar(255)表示可以存儲255個漢字,而每個漢字占用兩個位元組的存儲空間。假如這個字元串沒有那麼多漢字,例如僅僅包含一個‘中’字,那麼varchar(255)僅僅占用1個字元(兩個位元組)的儲存空間;而char(255)則必須占用255個字元長度的存儲空間,哪怕裡面只存儲一個漢字。

4,日期類型。

date表示日期,預設格式為‘YYYY-MM-DD’; time表示時間,格式為‘HH:ii:ss’; year表示年份; datetime與timestamp是日期和時間的混合類型,格式為'YYYY-MM-DD HH:ii:ss'

 

 

 

datetime與timestamp都是日期和時間的混合類型,區別在於: 表示的取值範圍不同,datetime的取值範圍遠遠大於timestamp的取值範圍。 將NULL插入timestamp欄位後,該欄位的值實際上是MySQL伺服器當前的日期和時間。 同一個timestamp類型的日期或時間,不同的時區,顯示結果不同。

 5,複合類型。

MySQL 支持兩種複合數據類型:enum枚舉類型和set集合類型。 enum類型的欄位類似於單選按鈕的功能,一個enum類型的數據最多可以包含65535個元素。 set 類型的欄位類似於覆選框的功能,一個set類型的數據最多可以包含64個元素。

 6,二進位類型。

二進位類型的欄位主要用於存儲由‘0’和‘1’組成的字元串,因此從某種意義上將,二進位類型的數據是一種特殊格式的字元串。 二進位類型與字元串類型的區別在於:字元串類型的數據按字元為單位進行存儲,因此存在多種字元集、多種字元序;而二進位類型的數據按位元組為單位進行存儲,僅存在二進位字元集binary。

7,選擇合適的數據類型。

選擇合適的數據類型,不僅可以節省儲存空間,還可以有效地提升數據的計算性能。

(1)在符合應用要求(取值範圍、精度)的前提下,儘量使用“短”數據類型。

(2)數據類型越簡單越好。

(3)在MySQL中,應該用內置的日期和時間數據類型,而不是用字元串來存儲日期和時間。

(4)儘量採用精確小數類型(例如decimal),而不採用浮點數類型。使用精確小數類型不僅能夠保證數據計算更為精確,還可以節省儲存空間,例如百分比使用decimal(4,2)即可。

(5)儘量避免NULL欄位,建議將欄位指定為NOT NULL約束。


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

-Advertisement-
Play Games
更多相關文章
  • 複製和故障轉移 Redis集群中的節點分為主節點(master)和從節點(slave),其中主節點用於處理槽,而從節點則用於複製某個主節點,併在被覆制 的主節點下線時,代替下線主節點繼續處理命令請求。 設置從節點:CLUSTER REPLICATE < node_id >可以讓接收命令的節點稱為no ...
  • 在SQL Server中,普通的表值函數(table-valued function)是可以使用表提示(Hints-Table)的,那麼CLR類型的表值函數(table-valued function)是否也可以使用表提示(Hints-Table)呢? 相信很多人都沒有留意過這個問題。 下麵我以Yo... ...
  • 宜未雨而綢繆,毋臨渴而掘井 說說MySQL的事務 資料庫事務(Database Transaction) ,是指作為單個邏輯工作單元執行的一系列操作,要麼完全地執行,要麼完全地不執行。 一個資料庫事務通常包含對資料庫進行讀或寫的一個操作序列。它的存在包含有以下兩個目的: 為資料庫提供一個從失敗恢復正 ...
  • 說明: <> 中的內容是自己定義的內容 [] 中的內容是可以省略的 field 包含欄位名和數據類型,field_name 僅指欄位名 table_name 指表名 position 指欄位位置,可取值:FIRST、AFTER <field> 修改表名 -- 修改數據表名稱。 -- old_tabl ...
  • 桔妹導讀:滴滴HBase團隊日前完成了0.98版本 → 1.4.8版本滾動升級,用戶無感知。新版本為我們帶來了豐富的新特性,在性能、穩定性與易用性方便也均有很大提升。我們將整個升級過程中面臨的挑戰、進行的思考以及解決的問題總結成文,希望對大家有所幫助。 1. 背景 目前HBase服務在我司共有國內、 ...
  • 一:背景 1. 講故事 上一篇說了mysql的架構圖,很多同學反饋說不過癮,畢竟還是聽我講故事,那這篇就來說一說怎麼利用visual studio 對 mysql進行源碼級調試,畢竟源碼面前,不談隱私,聖人面前,皆為螻蟻。 二:工具合集 mysql是C++寫的,要想在windows上編譯,還需要下載 ...
  • 最近在優化分頁查詢時,有一個問題:查詢不同列,分頁出來得數據不一樣。先看一下這個現象 表結構: CREATE TABLE `t_attach` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `fname` varchar(100) NOT NULL ...
  • NTP校時伺服器架設的重要性(京準) NTP校時伺服器架設的重要性(京準) 京準電子科技官V——ahjzsz 衛♥ ahjzsz 概述:電腦時間走時不准是出了名的。它一般是以廉價的振蕩電路或石英鐘為基礎,每天的誤差可達數秒,經過一段時間的累積就會出現較大的誤差。隨著不斷增加的分散式計算和我們對網路的 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...