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)
Sarakkeellav1
on 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