Yhteenveto: Tässä opetusohjelmassa opit käyttämään MySQL-ensisijaisen avaimen rajoitusta taulukon ensisijaisen avaimen luomisessa.
Johdanto MySQL-ensisijaiseen avaimeen
Ensisijainen avain on sarake tai sarakeryhmä, joka yksilöi taulukon jokaisen rivin. Ensisijainen avain noudattaa näitä sääntöjä:
- Ensisijaisen avaimen on sisällettävä ainutlaatuisia arvoja. Jos ensisijainen avain koostuu useista sarakkeista, näiden sarakkeiden arvoyhdistelmän on oltava yksilöllinen.
- Ensisijaisen avaimen sarakkeessa ei voi olla
NULL
arvoja. Kaikki yritykset lisätä tai päivittääNULL
ensisijaisen avaimen sarakkeisiin johtavat virheeseen. Huomaa, että MySQL lisää implisiittisestiNOT NULL
-rajoituksen ensisijaisen avaimen sarakkeisiin. - Taulukossa voi olla yksi ainoa ensisijainen avain.
Koska MySQL toimii nopeammin kokonaislukujen kanssa ensisijaisen avaimen sarakkeen tietotyypin tulee olla kokonaisluku, esim. INT,
BIGINT
. Ja sinun on varmistettava, että ensisijaisen avaimen kokonaislukutyypin arvoalueet ovat riittävät kaikkien taulukkoon mahdollisesti kuuluvien rivien tallentamiseen.
Ensisijaisen avaimen sarakkeessa on usein AUTO_INCREMENT
-attribuutti, joka luo automaattisesti peräkkäisen kokonaisluvun, kun lisäät uuden rivin taulukkoon.
Kun määrität taulukon ensisijaisen avaimen, MySQL luo indeksin nimeltä PRIMARY
.
MySQL-ENSIMMÄISET AVAINESIMERKIT
PRIMARY KEY
-rajoituksen avulla voit määrittää taulukon ensisijaisen avaimen kun luot tai muokkaat taulukkoa.
1) Määritä ENSIMMÄINEN AVAINRAJOITUS CREATE TABLE
Tyypillisesti määrität taulukon ensisijaisen avaimen CREATE TABLE
-lauseke.
Jos ensisijaisella avaimella on yksi sarake, voit käyttää PRIMARY KEY
-rajoitusta sarakerajoituksena:
Code language: SQL (Structured Query Language) (sql)
Kun ensisijaisella avaimella on enemmän kuin yksi sarake, sinun on käytettävä e PRIMARY KEY
rajoitus taulukon rajoituksena.
Tässä syntaksissa erotat sarakkeet column_list
pilkuilla ( ,).
PRIMARY KEY
-taulukkorajoitusta voidaan käyttää, kun ensisijaisella avaimella on yksi sarake:
Seuraava esimerkki luo taulukon nimeltä users
, jonka ensisijainen avain on sarake user_id
:
Tämä lause luo roles
taulukko, jolla PRIMARY KEY
-rajoitus on taulukon rajoitus:
Jos ensisijainen avain koostuu useista sarakkeista, sinun on määritettävä ne lopussa CREATE TABLE
-lausekkeen. Laitat pilkuilla erotetun luettelon ensisijaisten avainten sarakkeista sulkeisiin PRIMARY KEY
-avainsanojen jälkeen.
Seuraava esimerkki luo user_roles
taulukko, jonka ensisijainen avain koostuu kahdesta sarakkeesta: user_id
ja role_id
. Se määrittelee PRIMARY KEY
-rajoituksen taulukon rajoitukseksi:
Huomaa, että käsky loi myös kaksi vieraan avaimen rajoitusta.
2) Määritä ENSISIJAINEN AVAINRAJOITUKSET käyttämällä ALTER TABLE
Jos taulukossa ei jostain syystä ole ensisijaista avainta, voit lisätä ensisijaisen avaimen lausekkeeseen ALTER TABLE
taulukko seuraavasti:
Code language: SQL (Structured Query Language) (sql)
Seuraava esimerkki lisää sarakkeen id
ensisijaiseen avaimeen.
Luo ensin pkdemos
-taulukko ilman ensisijaista avainta.
Code language: SQL (Structured Query Language) (sql)
Lisää sitten ensisijainen avain pkdemos
-taulukkoon lausekkeen ALTER TABLE
avulla:
Code language: SQL (Structured Query Language) (sql)
Jos lisäät ensisijaisen avaimen taulukkoon, jossa on jo tietoja. Ensisijaiseen avaimeen sisällytettävien sarakkeiden tietojen on oltava yksilöllisiä eikä NULL.
ENSIMMÄINEN AVAIN vs. AINUTLAATUINEN AVAIN vs. AVAIN
KEY
on synonyymi INDEX
. Käytät KEY
-sovellusta, kun haluat luoda hakemiston sarakkeelle tai sarakeryhmälle, joka ei ole ensisijaisen avaimen tai yksilöllisen avaimen osa.
UNIQUE
-hakemisto varmistaa, että sarakkeen arvojen on oltava yksilöllisiä. Toisin kuin PRIMARY
-hakemisto, MySQL sallii NULL
-arvot UNIQUE
-hakemistossa. Lisäksi taulukossa voi olla useita UNIQUE
-hakemistoja.
Oletetaan, että email
ja iv id = ”a8ac12086e users
-taulukon käyttäjien ”>
on oltava yksilöllisiä.Näiden sääntöjen pakottamiseksi voit määrittää UNIQUE
-hakemistot sarakkeille email
ja username
seuraava lause:
Lisää UNIQUE
-hakemisto sarakkeeseen username
:
Code language: SQL (Structured Query Language) (sql)
Lisää UNIQUE
-hakemisto sarakkeeseen email
:
Code language: SQL (Structured Query Language) (sql)
Tässä opetusohjelmassa olet oppinut luomaan ensisijaisen avaimen uudelle taulukolle tai lisäämään ensisijaisen avaimen olemassa olevaan taulukkoon.
- Oliko tästä opetusohjelmasta hyötyä?
- KylläEi