Pääavaimet, viiteavaimet ja rajoitteet
Selitä avaimet, yksikäsitteisyys ja viite-eheys tavalla, jota haastattelija odottaa
Pääavaimet, viiteavaimet ja rajoitteet on ilmainen SQL-työhaastatteluun valmistautuminen-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu SQL-työhaastatteluun valmistautuminen-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. SQL-työhaastatteluun valmistautuminen-kurssilla on yhteensä 4 oppituntia.
Miksi avaimet tulevat aina esiin
Kun SQL:n määritelmä on käsitelty, haastattelijat siirtyvät avaimiin ja rajoitteisiin. Niitä yhdistävä teema on eheys: tietokannan valvomien sääntöjen ansiosta virheelliset tiedot eivät pääse tietokantaan.
Mikä on ensisijainen avain
Ensisijainen avain yksilöi jokaisen rivin. Sen arvot ovat aina yksilöllisiä eivätkä koskaan NULL-arvoja, ja taululla voi olla enintään yksi ensisijainen avain. Sanokaa tämä selkeästi, niin saatte pisteitä.
CREATE TABLE customers (
id INTEGER PRIMARY KEY,
email VARCHAR(255) NOT NULL,
name VARCHAR(100)
);Luonnolliset ja sijaisavaimet
Perustuvatko avaimet todellisiin tietoihin vai muodostettuun numeroon? Luonnollinen avain käyttää olemassa olevia yksilöllisiä tietoja, kun taas sijaisavain on muodostettu tunniste. Useimmat tiimit suosivat sijaisavaimia, koska ne ovat vakaita.
Yhdistelmäavaimet
Ensisijainen avain voi koostua useammasta kuin yhdestä sarakkeesta, jolloin kyseessä on yhdistelmäavain. Näitä käytetään liitostauluissa, joissa kaksi viiteavainta yhdessä yksilöi jokaisen rivin.
CREATE TABLE enrollments (
student_id INTEGER,
course_id INTEGER,
enrolled_on DATE,
PRIMARY KEY (student_id, course_id)
);Ensisijainen avain ja UNIQUE-rajoite
Taattu kysymys: ensisijainen avain ja UNIQUE-rajoite. Molemmat takaavat yksilöllisyyden, mutta taululla on yksi ensisijainen avain, jonka arvo ei voi olla NULL, kun taas UNIQUE-rajoitteita voi olla useita ja kukin niistä sallii NULL-arvon.
CREATE TABLE users (
id INTEGER PRIMARY KEY,
email VARCHAR(255) UNIQUE,
username VARCHAR(50) UNIQUE
);Mikä on viiteavain
Viiteavain viittaa toisen taulun ensisijaiseen avaimeen ja varmistaa viite-eheyden: ette voi lisätä aliriviä, joka viittaa olemattomaan yläriviin.
CREATE TABLE orders (
id INTEGER PRIMARY KEY,
customer_id INTEGER REFERENCES customers(id),
amount NUMERIC(10,2)
);Viitetoiminnot: ON DELETE / ON UPDATE
"Mitä tilauksille tapahtuu, jos asiakas poistetaan?" Kyseessä on viitetoiminto: RESTRICT estää poiston (oletus), CASCADE poistaa alirivit ja SET NULL tyhjentää avaimen arvon.
CREATE TABLE order_items (
id INTEGER PRIMARY KEY,
order_id INTEGER REFERENCES orders(id) ON DELETE CASCADE
);NOT NULL, CHECK ja DEFAULT
Kolme muuta rajoitetta täydentää eheyden: NOT NULL estää puuttuvat arvot, CHECK valvoo esimerkiksi sääntöä stock >= 0, ja DEFAULT antaa oletusarvon.
CREATE TABLE products (
id INTEGER PRIMARY KEY,
price NUMERIC(10,2) NOT NULL DEFAULT 0,
stock INTEGER CHECK (stock >= 0)
);Esimerkki: eheys suunnittelun lähtökohtana
Suunnitellaan kirjaston lainataulu. Alla oleva koodi käyttää kahta viiteavainta, NOT NULL -määritettä eräpäivälle ja yksilöllisyyssääntöä, joka estää saman kirjan lainaamisen kahdesti samanaikaisesti.
CREATE TABLE loans (
id INTEGER PRIMARY KEY,
book_id INTEGER NOT NULL REFERENCES books(id),
member_id INTEGER NOT NULL REFERENCES members(id),
due_date DATE NOT NULL,
returned BOOLEAN DEFAULT false
);Miten eheydestä kannattaa puhua
Osoittakaa ymmärryksenne nimeämällä kolme eheystyyppiä: entiteettieheys ensisijaisten avainten avulla, viite-eheys viiteavainten avulla ja alue-eheys NOT NULL - ja CHECK-rajoitteiden sekä tietotyyppien avulla.
Rajoitteiden lisääminen olemassa olevaan tauluun
Pyydettiinkö Teitä lisäämään rajoitteita olemassa olevaan tauluun? Käyttäkää komentoa ALTER TABLE ... ADD CONSTRAINT. Mainitsemisen arvoinen yksityiskohta: komento voi epäonnistua, jos nykyiset rivit rikkovat jo uutta sääntöä.
ALTER TABLE orders
ADD CONSTRAINT fk_orders_customer
FOREIGN KEY (customer_id) REFERENCES customers(id);Pikatesti
Erottakaa ensisijainen avain UNIQUE-rajoitteesta.
Kertaus
Kertaus: ensisijainen avain on yksilöllinen eikä salli NULL-arvoa, ja niitä voi olla yksi taulua kohden; UNIQUE-rajoite sallii NULL-arvon ja niitä voi olla useita; viiteavain varmistaa viite-eheyden.
Opi SQL tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 30
- Oppitunnit
- 120
Usein kysytyt kysymykset
Onko oppitunti ”Pääavaimet, viiteavaimet ja rajoitteet” ilmainen?
Kyllä – oppitunnin ”Pääavaimet, viiteavaimet ja rajoitteet” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko SQL-työhaastatteluun valmistautuminen-kurssin, päivitä CoddyKit PROhon. SQL-työhaastatteluun valmistautuminen-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Pääavaimet, viiteavaimet ja rajoitteet”?
Selitä avaimet, yksikäsitteisyys ja viite-eheys tavalla, jota haastattelija odottaa Harjoittelet SQL-työhaastatteluun valmistautuminen-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni SQL-työhaastatteluun valmistautuminen-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin SQL-työhaastatteluun valmistautuminen-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Pääavaimet, viiteavaimet ja rajoitteet”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä SQL-työhaastatteluun valmistautuminen-oppitunnilla?
Kyllä. Jokainen SQL-työhaastatteluun valmistautuminen-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Mikä SQL on ja miksi haastattelijat kysyvät siitä
- Looginen kyselyn suoritusjärjestys
- Pääavaimet, viiteavaimet ja rajoitteet
- Skeeman lukeminen paineen alla