在 MySQL 中 unsigned
本教程旨在瞭解 MySQL 中的 unsigned。
在 MySQL 中使用 unsigned
關鍵字
企業和組織必須為某些列分配資料型別為無符號。但是,在使用此資料型別之前瞭解何時何地使用它很重要。
雖然我們知道 int
可用於提供從 -2147483648 到 2147483647 範圍內的任何值,但無符號資料型別的工作方式略有不同。
它不能支援負值。此外,它的範圍從 0 增加到 4294967295。
因此,很明顯有兩個特定的例項可以選擇使用無符號資料型別。
-
當業務不需要特定列的負值時,我們可以在這種情況下選擇無符號資料型別。例如,考慮一家以產品為基礎的公司。
如果公司要為其表的銷售列分配資料型別,他們可以為銷售列分配無符號資料型別。這是因為 sales 列中的值永遠不會是負數。
-
其次,如果一個組織需要非常大的正整數值用於列,他們可能會為該列分配無符號資料型別。例如,如果一個基於產品的組織要了解其銷售的總收入,它可能必須處理非常大的數字。
這些數字可能會導致整數範圍或限制溢位。組織可以為該列分配無符號資料型別以消除這種情況。
現在我們知道什麼時候使用這種資料型別了。讓我們瞭解這種資料型別是如何工作的,並在表格中將其視覺化。
但是,在開始之前,我們建立了三個虛擬資料集以供使用。在這裡,我們建立了一個表 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 資料型別。