mysql資料庫字元類型有那些(mysql欄位數據類型)

  • 1、MYSQL資料庫中,常見的數據類型有哪些
  • 2、mysql中常見的數據類型
  • 3、mysql資料庫中有幾種數據類型
  • 4、MYSQL資料庫類型分為四大主要類別: ( )日 期型()和二進位型?

Mysql支持的多種數據類型主要有:數值數據類型、日期/時間類型、字元串類型。 1.整數數據類型及其取值範圍:

類型

說明

存儲需求(取值範圍)

tinyint 很小整數 1位元組([0~255]、[-128~127]); 255=2^8-1;127=2^7-1

smallint 小整數 2位元組(0~65535、-32768~32767) ;65535=2^16-1

mediumint 中等 3位元組(0~16777215) ;16777215=2^24-1

int(integer) 普通 4位元組(0~4294967295) ;4294967295=2^32-1

bigint 大整數 8位元組(0~18446744073709551615);18446744073709551615=2^64-1

浮點數定點數:

一:MySQL數據類型

MySQL中定義數據欄位的類型對你資料庫的優化是非常重要的

MySQL支持多種數據類型,大致可以分為三類:數值 日期/時間和字元串

二、數值類型

 1.整數類型

2.浮點數

如果希望保證值比較準確,推薦使用定點數數據類型。MySql中的浮點類型有float,double和real。他們定義方式為:FLOAT(M,D) 、 REAL(M,D) 、 DOUBLE PRECISION(M,D)。

FLOAT和DOUBLE中的M和D的取值默認都為0,即除了最大最小值,不限制位數。允許的值理論上是-1.7976931348623157E+308~-2.2250738585072014E-308、0和2.2250738585072014E-308~1.7976931348623157E+308。M、D範圍如下:

(MySql5.7實測,與IEEE標準計算的實際是不同的,下面介紹):M取值範圍為0~255。FLOAT只保證6位有效數字的準確性,所以FLOAT(M,D)中,M=6時,數字通常是準確的。如果M和D都有明確定義,其超出範圍後的處理同decimal。

D取值範圍為0~30,同時必須=M。double只保證16位有效數字的準確性,所以DOUBLE(M,D)中,M=16時,數字通常是準確的。如果M和D都有明確定義,其超出範圍後的處理同decimal。

CHAR值時,在它們的右邊填充空格以達到指定的長度。當檢索到CHAR值時,尾部的空格被刪除掉,所以,我們在存儲時字元串右邊不能有空格,即使有,查詢出來後也會被刪除。在存儲或檢索過程中不進行大小寫轉換。

三、時間日期類型(5)

該「0」值如下:

請點擊輸入圖片描述

四、各種類型佔用的存儲

1.數值類型

 

請點擊輸入圖片描述

定點數的比較特殊,而且與具體版本也有關係,此處單獨解釋:

使用二進位格式將9個十進位(基於10)數壓縮為4個位元組來表示DECIMAL列值。每個值的整數和分數部分的存儲分別確定。每個9位數的倍數需要4個位元組,並且「剩餘的」位需要4個位元組的一部分。下表給出了超出位數的存儲需求:

請點擊輸入圖片描述

2.時間日期

請點擊輸入圖片描述

從版本5.6.4開始,存儲需求就有所改變,根據精度而定。不確定部分需要的存儲如下:

請點擊輸入圖片描述

比如,TIME(0), TIME(2), TIME(4), 和TIME(6) 分別使用3, 4, 5, 6 bytes。 

3.字元串

請點擊輸入圖片描述

4.類型的選擇

為了優化存儲,在任何情況下均應使用最精確的類型。

例如,如果列的值的範圍為從1到99999,若使用整數,則MEDIUMINT UNSIGNED是好的類型。在所有可以表示該列值的類型中,該類型使用的存儲最少。

用精度為65位十進位數(基於10)對DECIMAL 列進行所有基本計算(+、-、*、/)。

使用雙精度操作對DECIMAL值進行計算。如果準確度不是太重要或如果速度為最高優先順序,DOUBLE類型即足夠了。為了達到高精度,可以轉換到保存在BIGINT中的定點類型。這樣可以用64位整數進行所有計算,根據需要將結果轉換回浮點值。

5.使用其他資料庫的SQL語句

為了使用為其它資料庫編寫的SQL執行代碼,MySQL按照下表所示對列類型進行映射。通過這些映射,可以很容易地從其它資料庫引擎將表定義導入到MySQL中:

請點擊輸入圖片描述

MySQL數據類型之一字元型

VARCHAR VS CHAR

VARCHAR型和CHAR型數據的這個差別是細微的,但是非常重要。他們都是用來儲存字元串長度小於255的字元。

假如你向一個長度為四十個字元的VARCHAR型欄位中輸入數據Bill Gates。當你以後從這個欄位中取出此數據時,你取出的數據其長度為十個字元——字元串Bill Gates的長度。 現在假如你把字元串輸入一個長度為四十個字元的CHAR型欄位中,那麼當你取出數據時,所取出的數據長度將是四十個字元。字元串的後面會被附加多餘的空格。

當你建立自己的站點時,你會發現使用VARCHAR型欄位要比CHAR型欄位方便的多。使用VARCHAR型欄位時,你不需要為剪掉你數據中多餘的空格而操心。

VARCHAR型欄位的另一個突出的好處是它可以比CHAR型欄位佔用更少的內存和硬碟空間。當你的資料庫很大時,這種內存和磁碟空間的節省會變得非常重要

MySQL數據類型之二文本型

TEXT

使用文本型數據,你可以存放超過二十億個字元的字元串。當你需要存儲大串的字元時,應該使用文本型數據。

注意文本型數據沒有長度,而上一節中所講的字元型數據是有長度的。一個文本型欄位中的數據通常要麼為空,要麼很大。

當你從HTML form的多行文本編輯框(TEXTAREA)中收集數據時,你應該把收集的信息存儲於文本型欄位中。但是,無論何時,只要你能避免使用文本型欄位,你就應該不適用它。文本型欄位既大且慢,濫用文本型欄位會使伺服器速度變慢。文本型欄位還會吃掉大量的磁碟空間。

一旦你向文本型欄位中輸入了任何數據(甚至是空值),就會有2K的空間被自動分配給該數據。除非刪除該記錄,否則你無法收回這部分存儲空間。

MySQL數據類型之三數值型

SQL支持許多種不同的數值型數據。你可以存儲整數 INT 、小數 NUMERIC、和錢數 MONEY。

INT VS SMALLINT VS TINYINT

他們的區別只是字元長度:

INT型數據的表數範圍是從-2,147,483,647到2,147,483,647的整數

SMALLINT 型數據可以存儲從-32768到32768的整數

TINYINT 型的欄位只能存儲從0到255的整數,不能用來儲存負數

通常,為了節省空間,應該儘可能的使用最小的整型數據。一個TINYINT型數據只佔用一個位元組;一個INT型數據佔用四個位元組。這看起來似乎差別不大,但是在比較大的表中,位元組數的增長是很快的。另一方面,一旦你已經創建了一個欄位,要修改它是很困難的。因此,為安全起見,你應該預測以下,一個欄位所需要存儲的數值最大有可能是多大,然後選擇適當的數據類型。

MUNERIC

為了能對欄位所存放的數據有更多的控制,你可以使用NUMERIC型數據來同時表示一個數的整數部分和小數部分。NUMERIC型數據使你能表示非常大的數——比INT型數據要大得多。一個NUMERIC型欄位可以存儲從-1038到1038範圍內的數。NUMERIC型數據還使你能表示有小數部分的數。例如,你可以在NUMERIC型欄位中存儲小數3.14。

當定義一個NUMERIC型欄位時,你需要同時指定整數部分的大小和小數部分的大小。如:MUNERIC(23,0)

一個 NUMERIC型數據的整數部分最大只能有28位,小數部分的位數必須小於或等於整數部分的位數,小數部分可以是零。

MONEY VS SMALLMONEY

你可以使用 INT型或NUMERIC型數據來存儲錢數。但是,專門有另外兩種數據類型用於此目的。如果你希望你的網點能掙很多錢,你可以使用MONEY型數據。如果你的野心不大,你可以使用SMALLMONEY型數據。MONEY型數據可以存儲從-922,337,203,685,477.5808到922,337,203,685,477.5807的錢數。如果你需要存儲比這還大的金額,你可以使用NUMERIC型數據。

SMALLMONEY型數據只能存儲從-214,748.3648到214,748.3647 的錢數。同樣,如果可以的話,你應該用SMALLMONEY型來代替MONEY型數據,以節省空間。

MySQL數據類型之四邏輯型

BIT

如果你使用複選框( CHECKBOX)從網頁中搜集信息,你可以把此信息存儲在BIT型欄位中。BIT型欄位只能取兩個值:0或1。

當心,在你創建好一個表之後,你不能向表中添加 BIT型欄位。如果你打算在一個表中包含BIT型欄位,你必須在創建表時完成。

MySQL數據類型之五日期型

DATETIME VS SMALLDATETIME

一個 DATETIME型的欄位可以存儲的日期範圍是從1753年1月1日第一毫秒到9999年12月31日最後一毫秒。

如果你不需要覆蓋這麼大範圍的日期和時間,你可以使用SMALLDATETIME型數據。它與DATETIME型數據同樣使用,只不過它能表示的日期和時間範圍比DATETIME型數據小,而且不如DATETIME型數據精確。一個SMALLDATETIME型的欄位能夠存儲從1900年1月1日到2079年6月6日的日期,它只能精確到秒。

DATETIME型欄位在你輸入日期和時間之前並不包含實際的數據,認識這一點是重要的。

(數值型 )日 期型(字元型)和二進位型?

數值型主要是保存數字的,又分為嚴格數值數據類型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似數值數據類型(FLOAT、REAL和DOUBLE PRECISION)。

日期型為DATETIME、DATE、TIMESTAMP、TIME和YEAR。

字元型,也稱為字元串類型,主要為CHAR、VARCHAR,TEXT等

二進位這主要為BLOB

原創文章,作者:SMYFP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126660.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SMYFP的頭像SMYFP
上一篇 2024-10-03 23:09
下一篇 2024-10-03 23:09

相關推薦

  • 英語年齡用連字元號(Hyphenation for English Age)

    英語年齡通常使用連字元號表示,比如 “five-year-old boy”。本文將從多個方面探討英語年齡的連字元使用問題。 一、英語年齡的表達方式 英語中表…

    編程 2025-04-29
  • int類型變數的細節與注意事項

    本文將從 int 類型變數的定義、聲明、初始化、範圍、運算和類型轉換等方面,對 int 類型變數進行詳細闡述和講解,幫助讀者更好地掌握和應用 int 變數。 一、定義與聲明 int…

    編程 2025-04-29
  • Python字元轉列表指南

    Python是一個極為流行的腳本語言,在數據處理、數據分析、人工智慧等領域廣泛應用。在很多場景下需要將字元串轉換為列表,以便於操作和處理,本篇文章將從多個方面對Python字元轉列…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python學習筆記:去除字元串最後一個字元的方法

    本文將從多個方面詳細闡述如何通過Python去除字元串最後一個字元,包括使用切片、pop()、刪除、替換等方法來實現。 一、字元串切片 在Python中,可以通過字元串切片的方式來…

    編程 2025-04-29
  • Python 轉換數據類型

    本文將詳細探討Python中轉換數據類型的方法和技巧,幫助大家更好地處理不同類型的數據。 一、數據類型概述 在Python中,常用的數據類型包括字元串、整數、浮點數、列表、元組、字…

    編程 2025-04-29
  • Python基本數字類型

    本文將介紹Python中基本數字類型,包括整型、布爾型、浮點型、複數型,並提供相應的代碼示例以便讀者更好的理解。 一、整型 整型即整數類型,Python中的整型沒有大小限制,所以可…

    編程 2025-04-29
  • Python中的Bool類型判斷

    本篇文章旨在講解Python中的Bool類型判斷。在Python中,Bool類型是經常使用的一種類型,因此掌握其用法非常重要。 一、True和False 在Python中,True…

    編程 2025-04-29
  • Python計算中文字元個數

    本文將從多個方面對Python計算中文字元個數進行詳細的闡述,包括字元串長度計算、正則表達式統計和模塊使用方法等內容。 一、字元串長度計算 在Python中,計算字元串長度是非常容…

    編程 2025-04-29

發表回復

登錄後才能評論