Rezumat: în acest tutorial, veți învăța despre tipul de date MySQL INT
sau tipul de date întreg și cum să îl utilizați în proiectarea tabelelor de baze de date. În plus, vă vom arăta cum să utilizați atributele lățime de afișare și ZEROFILL ale unei coloane de numere întregi.
Introducere la tipul MySQL INT
În MySQL, INT
reprezintă numărul întreg care este un număr întreg. Un număr întreg poate fi scris fără o componentă fracționară, de exemplu, 1, 100, 4, -10, și nu poate fi 1,2, 5/3, etc. Un număr întreg poate fi zero, pozitiv și negativ.
MySQL acceptă toate tipurile de numere întregi standard SQL INTEGER
sau INT
și SMALLINT
. În plus, MySQL oferă TINYINT
MEDIUMINT
și BIGINT
ca extensii la standardul SQL.
MySQL INT
Tipul de date INT
poate fi semnat și fără semn. Tabelul următor ilustrează caracteristicile fiecărui tip de număr întreg, inclusiv stocarea în octeți, valoarea minimă și valoarea maximă.
Tip | Stocare | Valoare minimă | Valoare maximă | Valoare maximă |
---|---|---|---|---|
(Bytes) | (Signed/Unsigned) | (Signed/Unsigned) | ||
TINYINT | 1 | -.128 | 127 | 0 | 255 |
SMALLINT | 2 | -32768 | 32767 | |
0 | 65535 | |||
MEDIUMINT | 3 | -8388608 | 8388607 | |
0 | 16777215 | |||
INT | 4 | -.2147483648 | 2147483647 | |
0 | 4294967295 | |||
BIGINT | 8 | -9223372036854775808 | 9223372036854775807 | |
0 | 18446744073709551615 |
Exemple de utilizare a tipului de date MySQL INT
Să vedem câteva exemple de utilizare a tipului de date integer.
A) Exemplu de utilizare a MySQL INT pentru o coloană
Pentru că tipul integer reprezintă numere exacte, îl utilizați de obicei ca cheie primară a unui tabel. În plus, coloana INT
poate avea un atribut AUTO_INCREMENT
.
Când introduceți o valoare NULL
sau 0 în coloana INT AUTO_INCREMENT
, valoarea coloanei este setată la următoarea valoare de secvență. Observați că valoarea secvenței începe cu 1.
Când introduceți o valoare, care nu este NULL
sau zero, în coloana AUTO_INCREMENT
, coloana acceptă valoarea. În plus, secvența este resetată la următoarea valoare a valorii inserate.
În primul rând, creați o nouă tabelă numită items
cu o coloană de numere întregi ca cheie primară:
Code language: SQL (Structured Query Language) (sql)
Puteți utiliza fie INT
, fie INTEGER
în instrucțiunea CREATE TABLE
de mai sus, deoarece acestea sunt interschimbabile. Ori de câte ori inserați un rând nou în tabelul items
, valoarea coloanei item_id
este mărită cu 1.
În continuare, următoarea instrucțiune INSERT
inserează trei rânduri în tabelul items
.
Code language: SQL (Structured Query Language) (sql)
Apoi, se interoghează datele din tabelul items
folosind următoarea instrucțiune SELECT
:
Code language: SQL (Structured Query Language) (sql)
După aceasta, se inserează un nou rând a cărui valoare a coloanei item_id
este specificată explicit.
Code language: SQL (Structured Query Language) (sql)
Din moment ce valoarea curentă a coloanei item_id
este 10, secvența este resetată la 11. Dacă introduceți un nou rând, coloana AUTO_INCREMENT
va folosi 11 ca următoarea valoare.
Code language: SQL (Structured Query Language) (sql)
În cele din urmă, interogați din nou datele din tabelul items
pentru a vedea rezultatul.
Code language: SQL (Structured Query Language) (sql)
Rețineți că, începând cu MySQL 5.1, coloana AUTO_INCREMENT
acceptă numai valori pozitive și nu permite valori negative.
B) Folosind exemplul MySQL INT UNSIGNED
În primul rând, creați un tabel numit classes
care are coloana total_member
cu tipul de date unsigned integer:
Code language: SQL (Structured Query Language) (sql)
În al doilea rând, inserați un rând nou în tabelul classes
:
Code language: SQL (Structured Query Language) (sql)
A funcționat conform așteptărilor.
În al treilea rând, încercați să inserați o valoare negativă în coloana total_member
:
Code language: SQL (Structured Query Language) (sql)
MySQL a emis următoarea eroare:
Code language: SQL (Structured Query Language) (sql)
MySQL INT cu atributul lățime de afișare
MySQL oferă o extensie care vă permite să specificați lățimea de afișare împreună cu tipul de date INT
. Lățimea de afișare este inclusă între paranteze după cuvântul cheie INT
, de exemplu, INT(5)
specifică un INT
cu o lățime de afișare de cinci cifre.
Este important de reținut că atributul de lățime de afișare nu controlează intervalele de valori pe care le poate stoca coloana. Atributul „display width” este utilizat de obicei de către aplicații pentru a formata valorile întregi. MySQL include atributul display width ca metadate ale setului de rezultate returnat.
MySQL INT cu atributul ZEROFILL
În plus față de atributul display width, MySQL oferă un atribut non-standard ZEROFILL
. În acest caz, MySQL înlocuiește spațiile cu zero. Luați în considerare următorul exemplu.
În primul rând, creați o tabelă numită zerofill_tests
:
Code language: SQL (Structured Query Language) (sql)
În al doilea rând, inserați un nou rând în tabela zerofill_tests
.
Code language: SQL (Structured Query Language) (sql)
În al treilea rând, interogați datele din tabela zerofill_tests
.
Code language: SQL (Structured Query Language) (sql)
Coloanav1
are o lățime de afișare 2, inclusivZEROFILL.
Valoarea ei este 1, prin urmare, vedeți01
în ieșire. MySQL înlocuiește primul spațiu cu 0.
Columna v2 are o afișare cu 3 inclusiv ZEROFILL
. Valoarea sa este 6, prin urmare, vedeți 00
ca zerouri de început.
Colonelul v3 are afișajul cu lățimea 5 cu ZEROFILL
, în timp ce valoarea sa este 9, prin urmare, MySQL pune 0000
la începutul numărului în ieșire.
Rețineți că dacă utilizați atributul ZEROFILL
pentru o coloană de numere întregi, MySQL va adăuga automat un atribut UNSIGNED
la coloană.
În acest tutorial, ați învățat cum să utilizați tipul de date MySQL INT
pentru proiectarea tabelelor de baze de date.
- A fost util acest tutorial?
- DaNu