首頁 資料庫 mysql教程 MySQL基礎教學1 — 資料類型之數值類型

MySQL基礎教學1 — 資料類型之數值類型

Feb 24, 2017 am 10:54 AM

MySQL支援所有標準SQL數值資料型態。這些型別包括嚴格數值資料型別(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似數值資料型別(FLOAT、REAL和DOUBLE PRECISION)。關鍵字INT是INTEGER的同義詞,關鍵字DEC是DECIMAL的同義詞。

BIT資料型別保存位元欄位值,並且支援MyISAM、MEMORY、InnoDB和BDB表。

作為SQL標準的擴展,MySQL也支援整數型TINYINT、MEDIUMINT和BIGINT。下面的表格顯示了需要的每個整數類型的儲存和範圍。

(帶符號的/無符號的)(帶符號的/無符號的)SMALLINT MEDIUMINT16777215INT-4INT- 
字節 最小值
TINYINT 1-128 127
2 -32768 32767
  0 65535
3🜎     0
- INT 4 -
4 - INT 4
INT 4 - INT
- INT 4 -
4 - INT 4
INT 4 2147483648 2147483647
  0 42949672955572955 223372036854775808 9223372036854775807
收到🎜

MySQL也支援選擇在該類型關鍵字後面的括號內指定整數值的顯示寬度(例如,INT(4))。此選用顯示寬度規定用於顯示寬度小於指定的列寬度的值時從左側填滿寬度。

顯示寬度並不限制可以在列內保存的值的範圍,也不限制超過列的指定寬度的值的顯示。

當結合可選擴展屬性ZEROFILL使用時, 預設補充的空格用零代替。例如,對於宣告為INT(5) ZEROFILL的資料列,值4檢索為00004。請注意如果在整數列中保存超過顯示寬度的一個值,當MySQL為複雜聯結產生臨時表時會遇到問題,因為在這些情況下MySQL相信資料適合原列寬度。

所有整數類型可以有一個可選(非標準)屬性UNSIGNED。當你想要在列內只允許非負數和該列需要較大的上限數值範圍時可以使用無符號值。

浮點和定點類型也可以為UNSIGNED。同數類型,此屬性防止負值保存到列中。然而,與整數類型不同的是,列值的上範圍保持不變。

如果為一個數值欄位指定ZEROFILL,MySQL自動為該欄位新增UNSIGNED屬性。

對於浮點列類型,在MySQL中單精度值使用4個位元組,雙精度值使用8個位元組。

FLOAT類型用來表示近似數值資料型態。 SQL標準允許在關鍵字FLOAT後面的括號內選擇用位元指定精確度(但不能為指數範圍)。 MySQL也支援可選的只用於決定儲存大小的精度規定。 0到23的精度對應FLOAT列的4位元組單精度。 24到53的精度對應DOUBLE列的8位元組雙精度。

MySQL允許使用非標準語法:FLOAT(M,D)或REAL(M,D)或DOUBLE PRECISION(M,,)。這裡,「(M,D)」表示該數值一共顯示M位元整數,其中D

位元位於小數點後面。例如,定義為FLOAT(7,4)的一個欄位可以顯示為-999.9999。 MySQL保存值時進行四捨五入,因此如果在FLOAT(7,4)列內插入999.00009,近似結果是999.0001。

MySQL將DOUBLE視為DOUBLE PRECISION(非標準擴充)的同義詞。 MySQL也將REAL視為DOUBLE PRECISION(非標準擴充)的同義詞,除非SQL伺服器模式包含REAL_AS_FLOAT選項。

為了確保最大可能的可攜性,需要使用近似數值資料值儲存的程式碼應使用FLOAT或DOUBLE PRECISION,不規定精確度或位數。

DECIMAL和NUMERIC類型在MySQL中視為相同的類型。它們用於保存必須為確切精度的值,例如貨幣資料。當聲明該類型的列時,可以(並且通常要)指定精度和標度;例如:

salary DECIMAL(5,2)
登入後複製

在該例子中,5是精度,2是標度。精確度表示保存值的主要位數,標度表示小數點後面可以儲存的位數。

在MySQL 5.1中以二進位格式儲存DECIMAL和NUMERIC值。

標準SQL要求salary欄位能夠用5位元整數位元和兩位小數儲存任何值。因此,在這種情況下可以保存在salary列的值的範圍是從-999.99到999.99。

在標準SQL中,語法DECIMAL(M)等價於DECIMAL(M,0)。同樣,語法DECIMAL等價於DECIMAL(M,0),可以透過計算來確定M的值。在MySQL 5.1中支援DECIMAL和NUMERIC資料類型的變數形式。 M

預設值是10。

DECIMAL或NUMERIC的最大位數是65,但具體的DECIMAL或NUMERIC列的實際範圍受具體列的精度或標度約束。如果此類列指派的值小數點後面的位數超過指定的標度允許的範圍,則值會轉換為該標度。 (具體操作與作業系統有關,但一般結果均被截取到允許的位數)。

BIT資料型別可用於保存位元欄位值。 BIT(M)類型允許儲存M位元值。 M

範圍為1到64。

要指定位值,可以使用b'value'符。 value

是一個用0和1寫的二進位值。例如,b'111'和b'100000000'分別表示7和128。

如果BIT(M)列所分配的值的長度小於M

位,在值的左邊用0填滿。例如,為BIT(6)欄位指派一個值b'101',其效果與分配b'000101'相同。

當要在一個數值列內保存一個超出該列允許範圍的值時,MySQL的操作取決於此時有效的SQL模式。如果模式未設置,MySQL將值裁切到範圍的對應端點,並儲存裁減好的值。但是,如果模式設定為traditional(“嚴格模式”),超出範圍的值將被拒絕並提示錯誤,並且根據SQL標準插入會失敗。

如果INT欄位是UNSIGNED,則列範圍的大小相同,但其端點會變成0和4294967295。如果你試圖保存-9999999999和9999999999,以非嚴格模式保存到列中的值是0和4294967296。

如果在浮點或定點列中分配的值超過指定(或預設)精度和標度規定的範圍,MySQL以非嚴格模式保存表示範圍相應端點的值。 🎜

當MySQL沒有工作在嚴格模式時,對於ALTER TABLE、LOAD DATA INFILE、UPDATE和多行INSERT語句,由於裁剪發生的轉換將報告為警告。當MySQL工作在嚴格模式時,這些語句將會失敗,且部分或全部值不會插入或更改,取決於是否表為事務表和其它因素。

 以上就是MySQL基礎教學1 —— 資料類型之數值類型的內容,更多相關內容請關注PHP中文網(www.php.cn)!


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
laravel入門實例 laravel入門實例 Apr 18, 2025 pm 12:45 PM

Laravel 是一款 PHP 框架,用於輕鬆構建 Web 應用程序。它提供一系列強大的功能,包括:安裝: 使用 Composer 全局安裝 Laravel CLI,並在項目目錄中創建應用程序。路由: 在 routes/web.php 中定義 URL 和處理函數之間的關係。視圖: 在 resources/views 中創建視圖以呈現應用程序的界面。數據庫集成: 提供與 MySQL 等數據庫的開箱即用集成,並使用遷移來創建和修改表。模型和控制器: 模型表示數據庫實體,控制器處理 HTTP 請求。

MySQL和PhpMyAdmin:核心功能和功能 MySQL和PhpMyAdmin:核心功能和功能 Apr 22, 2025 am 12:12 AM

MySQL和phpMyAdmin是強大的數據庫管理工具。 1)MySQL用於創建數據庫和表、執行DML和SQL查詢。 2)phpMyAdmin提供直觀界面進行數據庫管理、表結構管理、數據操作和用戶權限管理。

MySQL與其他編程語言:一種比較 MySQL與其他編程語言:一種比較 Apr 19, 2025 am 12:22 AM

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。MySQL以其高性能、可扩展性和跨平台支持著称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

解決數據庫連接問題:使用minii/db庫的實際案例 解決數據庫連接問題:使用minii/db庫的實際案例 Apr 18, 2025 am 07:09 AM

在開發一個小型應用時,我遇到了一個棘手的問題:需要快速集成一個輕量級的數據庫操作庫。嘗試了多個庫後,我發現它們要么功能過多,要么兼容性不佳。最終,我找到了minii/db,這是一個基於Yii2的簡化版本,完美地解決了我的問題。

laravel框架安裝方法 laravel框架安裝方法 Apr 18, 2025 pm 12:54 PM

文章摘要:本文提供了詳細分步說明,指導讀者如何輕鬆安裝 Laravel 框架。 Laravel 是一個功能強大的 PHP 框架,它 упростил 和加快了 web 應用程序的開發過程。本教程涵蓋了從系統要求到配置數據庫和設置路由等各個方面的安裝過程。通過遵循這些步驟,讀者可以快速高效地為他們的 Laravel 項目打下堅實的基礎。

解決MySQL模式問題:TheliaMySQLModesChecker模塊的使用體驗 解決MySQL模式問題:TheliaMySQLModesChecker模塊的使用體驗 Apr 18, 2025 am 08:42 AM

在使用Thelia開發電商網站時,我遇到了一個棘手的問題:MySQL模式設置不當,導致某些功能無法正常運行。經過一番探索,我找到了一個名為TheliaMySQLModesChecker的模塊,它能夠自動修復Thelia所需的MySQL模式,徹底解決了我的困擾。

MySQL:結構化數據和關係數據庫 MySQL:結構化數據和關係數據庫 Apr 18, 2025 am 12:22 AM

MySQL通過表結構和SQL查詢高效管理結構化數據,並通過外鍵實現表間關係。 1.創建表時定義數據格式和類型。 2.使用外鍵建立表間關係。 3.通過索引和查詢優化提高性能。 4.定期備份和監控數據庫確保數據安全和性能優化。

MySQL:解釋的關鍵功能和功能 MySQL:解釋的關鍵功能和功能 Apr 18, 2025 am 12:17 AM

MySQL是一個開源的關係型數據庫管理系統,廣泛應用於Web開發。它的關鍵特性包括:1.支持多種存儲引擎,如InnoDB和MyISAM,適用於不同場景;2.提供主從復制功能,利於負載均衡和數據備份;3.通過查詢優化和索引使用提高查詢效率。

See all articles