在 MySQL 中 unsigned

Preet Sanghavi 2022年5月13日
在 MySQL 中 unsigned

本教程旨在瞭解 MySQL 中的 unsigned。

在 MySQL 中使用 unsigned 關鍵字

企業和組織必須為某些列分配資料型別為無符號。但是,在使用此資料型別之前瞭解何時何地使用它很重要。

雖然我們知道 int 可用於提供從 -2147483648 到 2147483647 範圍內的任何值,但無符號資料型別的工作方式略有不同。

它不能支援負值。此外,它的範圍從 0 增加到 4294967295。

因此,很明顯有兩個特定的例項可以選擇使用無符號資料型別。

  1. 當業務不需要特定列的負值時,我們可以在這種情況下選擇無符號資料型別。例如,考慮一家以產品為基礎的公司。

    如果公司要為其表的銷售列分配資料型別,他們可以為銷售列分配無符號資料型別。這是因為 sales 列中的值永遠不會是負數。

  2. 其次,如果一個組織需要非常大的正整數值用於列,他們可能會為該列分配無符號資料型別。例如,如果一個基於產品的組織要了解其銷售的總收入,它可能必須處理非常大的數字。

    這些數字可能會導致整數範圍或限制溢位。組織可以為該列分配無符號資料型別以消除這種情況。

現在我們知道什麼時候使用這種資料型別了。讓我們瞭解這種資料型別是如何工作的,並在表格中將其視覺化。

但是,在開始之前,我們建立了三個虛擬資料集以供使用。在這裡,我們建立了一個表 student_details_dummy 以及幾行。

-- create the table student_details
CREATE TABLE student_details_dummy(
  stu_id int unsigned,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details_dummy
INSERT INTO student_details_dummy(stu_id,stu_firstName,stu_lastName)
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

如我們所見,我們將 stu_id 設定為表 student_details 的主鍵。它將確保此列中的值不能重複或 NULL

此外,我們將 stu_id 列的資料型別設定為 unsigned。上面的查詢建立了一個表,其中包含學生的名字和姓氏。

要檢視資料中的條目,我們使用以下程式碼。

SELECT * FROM student_details_dummy;

上面的程式碼將給出以下輸出。

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

現在讓我們嘗試使用 MySQL 中的 DESCRIBE TABLE 語句來視覺化該表的詳細資訊。

DESCRIBE 語句幫助我們視覺化表格,以便我們可以深入瞭解表格的每個欄位。

它還向我們展示了分配給任何列的任何鍵、分配給每列的資料型別以及與表相關的任何其他額外資訊。可以藉助以下查詢來說明此語句。

DESCRIBE name_of_the_table;

在我們的例子中,我們需要編寫以下查詢來檢查與表中每一列關聯的資料型別。

DESCRIBE student_details_dummy;

該查詢將獲取我們以下輸出。

Field				Type			Null	Key		Default		Extra
stu_id				int unsigned	NO		PRI
stu_firstName		varchar(255)	YES
stu_lastName		varchar(255)	YES

因此,藉助 unsigned 關鍵字和 DESCRIBE 語句,我們可以有效地從 MySQL 中的表中分配和視覺化 unsigned 資料型別。

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub