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