MySQL INT-tietotyyppi

author
3 minutes, 27 seconds Read

Yhteenveto: Tässä opetusohjelmassa opit MySQL INT– eli kokonaislukutietotyypistä ja sen käytöstä tietokantataulukon suunnittelussa. Lisäksi näytämme, miten kokonaislukusarakkeen näyttöleveys- ja ZEROFILL-attribuutteja käytetään.

Esittely MySQL:n INT-tyyppiin

MysQL:ssä INT tarkoittaa kokonaislukua, joka on kokonaisluku. Kokonaisluku voidaan kirjoittaa ilman murtolukukomponenttia esim. 1, 100, 4, -10, eikä se voi olla 1,2, 5/3 jne. Kokonaisluku voi olla nolla, positiivinen ja negatiivinen.

MySQL tukee kaikkia SQL-standardin kokonaislukutyyppejä INTEGER tai INT ja SMALLINT. Lisäksi MySQL tarjoaa SQL-standardin laajennuksina TINYINT MEDIUMINT ja BIGINT.

MySQL:n INT-tietotyyppi voi olla ennenmerkitty ja ennenmerkitsematon. Seuraava taulukko havainnollistaa kunkin kokonaislukutyypin ominaisuuksia, mukaan lukien tallennus tavuina, minimiarvo ja maksimiarvo.

Type Storage Minimum Value Maximum Value
(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 -214748483648 2147483647
0 4294967295
BIGINT 8 -9223372036854775808 9223372036854775807
0 18446744073709551615

MySQL INT-tietotyypin esimerkkejä

Katsotaanpa muutamia esimerkkejä kokonaislukutietotyypin käytöstä.

A) MySQL INT -tietotyypin käyttäminen sarakkeena esimerkki

Koska kokonaislukutyyppi edustaa tarkkoja lukuja, sitä käytetään yleensä taulukon ensisijaisena avaimena. Lisäksi INT-sarakkeella voi olla AUTO_INCREMENT attribuutti.

Kun lisäät NULL-arvon tai 0:n INT AUTO_INCREMENT-sarakkeeseen, sarakkeen arvoksi asetetaan seuraava järjestysarvo. Huomaa, että järjestysarvo alkaa arvolla 1.

Kun lisäät AUTO_INCREMENT-sarakkeeseen arvon, joka ei ole NULL tai nolla, sarake hyväksyy arvon. Lisäksi sekvenssi nollataan lisättyä arvoa seuraavaan arvoon.

Luo ensin uusi taulukko nimeltä items, jonka ensisijaisena avaimena on kokonaislukusarake:

Code language: SQL (Structured Query Language) (sql)

Voit käyttää yllä olevassa CREATE TABLE-lausekkeessa joko INT– tai INTEGER-arvoa, koska ne ovat keskenään vaihdettavissa. Aina kun lisäät uuden rivin items-tauluun, item_id-sarakkeen arvoa kasvatetaan 1:llä.

Seuraavalla INSERT-lauseella lisätään kolme riviä items-tauluun.

Code language: SQL (Structured Query Language) (sql)

Sitten kysytään tietoja items-taulusta seuraavalla SELECT-lausekkeella:

Code language: SQL (Structured Query Language) (sql)

Sen jälkeen lisätään uusi rivi, jonka item_id-sarakkeen arvo määritetään nimenomaisesti.

Code language: SQL (Structured Query Language) (sql)

Koska sarakkeen item_id tämänhetkinen arvo on 10, järjestys nollataan arvoon 11. Jos lisäät uuden rivin, AUTO_INCREMENT-sarake käyttää seuraavana arvona 11:tä.

Code language: SQL (Structured Query Language) (sql)

Kysy lopuksi uudelleen items-taulun tietoja nähdäksesi tuloksen.

Code language: SQL (Structured Query Language) (sql)

Huomaa, että MySQL 5.1:stä alkaen AUTO_INCREMENT-sarake hyväksyy vain positiivisia arvoja eikä salli negatiivisia arvoja.

B) MySQL INT UNSIGNED -esimerkin käyttäminen

Luo ensin taulukko nimeltä classes, jonka sarakkeessa total_member on datatyypiltään unsigned integer (kokonaisluku):

Code language: SQL (Structured Query Language) (sql)

Siirrä toiseksi uusi rivi taulukkoon classes:

Code language: SQL (Structured Query Language) (sql)

Se toimi odotetusti.

Kolmanneksi yritetään lisätä negatiivinen arvo sarakkeeseen total_member:

Code language: SQL (Structured Query Language) (sql)

MySQL antoi seuraavan virheen:

Code language: SQL (Structured Query Language) (sql)

MySQL INT with the display width -attribuutin kanssa

MySQL tarjoaa laajennuksen, jonka avulla voit määrittää näytön leveyden yhdessä INT-tietotyypin kanssa. Näytön leveys kääritään sulkeisiin INT-avainsanan jälkeen esim. INT(5) määrittää INT:n, jonka näytön leveys on viisi numeroa.

On tärkeää huomata, että näytön leveys -attribuutti ei ohjaa arvoalueita, joita sarake voi tallentaa. Sovellukset käyttävät näyttöleveysattribuuttia yleensä kokonaislukuarvojen muotoiluun. MySQL sisällyttää display width -attribuutin palautetun tulosjoukon metatietoihin.

MySQL INT ZEROFILL -attribuutilla

MySQL tarjoaa display width -attribuutin lisäksi epästandardin ZEROFILL -attribuutin. Tässä tapauksessa MySQL korvaa välilyönnit nollalla. Tarkastellaan seuraavaa esimerkkiä.

Luo ensin taulukko nimeltä zerofill_tests :

Code language: SQL (Structured Query Language) (sql)

Toiseksi lisää uusi rivi zerofill_tests-taulukkoon.

Code language: SQL (Structured Query Language) (sql)

Kolmanneksi kysy tietoja zerofill_tests -taulukosta.

Code language: SQL (Structured Query Language) (sql)


Sarakkeellav1on näytön leveys 2, mukaan lukienZEROFILL.Sarakkeen arvona on 1. Näin ollen tulosteessa näkyy01. MySQL korvaa ensimmäisen välilyönnin 0:lla.

V2-sarakkeen näyttöleveys on 3 sisältäen ZEROFILL. Sen arvo on 6, joten näet 00 johtavina nollina.

V3-sarakkeella on näyttöleveys 5 sisältäen ZEROFILL, kun sen arvo on 9, joten MySQL lisää tulosteessa 0000 numeron alkuun.

Huomaa, että jos käytät ZEROFILL-attribuuttia kokonaislukusarakkeelle, MySQL lisää automaattisesti UNSIGNED-attribuutin sarakkeeseen.

Tässä opetusohjelmassa olet oppinut käyttämään MySQL:n INT-tietotyyppiä tietokantataulujen suunnittelussa.

  • Oliko tästä opetusohjelmasta apua?
  • KylläEi

Similar Posts

Vastaa

Sähköpostiosoitettasi ei julkaista.