SQL-pääavain: Luo ja lisää olemassa olevaan taulukkoon

⚡ Älykäs yhteenveto

SQL Serverin ensisijainen avain on sarake tai sarakejoukko, jonka arvot yksilöivät jokaisen rivin taulukossa. Jokaisella taulukolla on yksi ensisijainen avain, eivätkä sen sarakkeet saa koskaan olla NULL-arvoisia.

  • 🔑 Mikä on ensisijainen avain: Ensisijainen avain on yksi tai useampi sarake, joiden arvot ovat yksilöllisiä ja yksilöivät jokaisen rivin taulukossa.
  • 🚫 Ydinsäännöt: Taulukko sallii vain yhden ensisijaisen avaimen, jokaisen arvon on oltava yksilöllinen, eikä mikään avainsarake saa sisältää NULL-arvoa.
  • 🖱️ Kaksi luontimenetelmää: Sekä SQL Server Management Studion taulukon suunnittelu että T-SQL:n CREATE TABLE -lauseke määrittävät ensisijaisen avaimen.
  • 🧱 CONSTRAINT-lauseke: CREATE TABLE -lausekkeessa CONSTRAINT … PRIMARY KEY -lauseke nimeää avaimen ja listaa sen sarakkeen tai sarakkeet.
  • Lisää olemassa olevaan taulukkoon: ALTER TABLE … ADD CONSTRAINT lisää perusavaimen olemassa olevan taulukon NOT NULL -sarakkeisiin.
  • 🧩 Yhdistelmäavain: Ensisijainen avain voi yhdistää jopa 16 saraketta muodostaen yhdistelmäavaimen, joka on ainutlaatuinen koko joukossa.

SQL Serverin PÄÄAVAIN: Taulukon luominen ja lisääminen olemassa olevaan taulukkoon

Mikä on SQL:n ensisijainen avain?

Ensisijainen avain kohdassa SQL Server on kenttä tai kenttien yhdistelmä, joka yksilöi tietueen. Se on sarake tai sarakejoukko, jossa jokainen arvo on yksilöllinen. Toisin sanoen kahdella rivillä ei voi olla samaa ensisijaista avainarvoa.

Ensisijaisen avaimen säännöt

  • Jokaisella taulukolla voi olla vain yksi ensisijainen avain.
  • Kaikki arvot ovat yksilöllisiä, ja ensisijaisen avaimen arvo voi yksilöidä jokaisen rivin.
  • Järjestelmä ei salli sellaisen rivin lisäämistä, jonka ensisijainen avain on jo olemassa taulukossa.
  • Ensisijainen avain ei voi olla NULL.

Alla oleva kaavio tiivistää kaikki yllä olevat SQL-pääavainta koskevat kohdat.

Kaavio, joka tiivistää SQL:n ensisijaiset avainsäännöt: yksilölliset arvot, yksi taulukkoa kohden, eikä NULL

Ensisijaisen avaimen luominen SQL Serverissä

Voit luoda ensisijaisen avaimen kahdella tavalla:

Tutkitaanpa kutakin menetelmää yksityiskohtaisesti.

SQL Server Management Studio

Vaihe 1) Napsauta hiiren kakkospainikkeella taulukon nimeä ja napsauta Design.

Napsauta taulukkoa hiiren kakkospainikkeella ja valitse Rakenne SQL Server Management Studiossa

Vaihe 2) Napsauta hiiren kakkospainikkeella sarakkeen nimeä ja napsauta Aseta ensisijainen avain.

Napsauta saraketta hiiren kakkospainikkeella ja valitse Aseta ensisijainen avain taulukon suunnittelussa

Tulos: Course_Id on nyt ensisijainen avain, joka näkyy sarakkeen vieressä olevalla avainkuvakkeella.

Course_Id-sarake, joka on merkitty avainkuvakkeella ensisijaisena avaimena

T-SQL: Luo ensisijainen avain uutta taulukkoa luotaessa

Alla on syntaksi, joka luo taulukko T-SQL:n ensisijaisella avaimella.

Syntaksi:

CREATE TABLE <Table_Name>
(
Column1 datatype,
Column2 datatype,CONSTRAINT <Name> PRIMARY KEY (Column name)
.
);

Tässä CONSTRAINT nimeää avaimen, PRIMARY KEY merkitsee sarakkeen, jonka on pysyttävä yksilöllisenä, ja jokainen sarake tarvitsee myös tietotyyppi.

Luodaan taulukko, jossa on yksi sarake SQL-pääavaimena.

kysely:

CREATE TABLE COURSE_TSQL_PK 
(Course_ID Int not Null,
 Course_name Varchar(20)
 CONSTRAINT PK PRIMARY KEY (Course_ID)	
)

Vaihe 1) Suorita kysely napsauttamalla Suorittaa.

Suoritetaan CREATE TABLE -kysely, joka määrittää Course_ID-pääavaimen

Tulos: Course_Id on nyt ensisijainen avain COURSE_TSQL_PK-taulukossa.

COURSE_TSQL_PK-taulukko, jossa Course_ID on asetettu ensisijaiseksi avaimeksi

Esimerkki: Katsotaanpa, sallitaanko useiden tietueiden syöttäminen samalla kurssitunnuksella.

Vaihe 1) Lisää neljä riviä, joilla on eri Course_ID-arvot.

Insert into COURSE_TSQL_PK values (1,'SQL');
Insert into COURSE_TSQL_PK values (2,'Python');
Insert into COURSE_TSQL_PK values (3,'SQL');
Insert into COURSE_TSQL_PK values (4,'C');

Vaihe 2) Varmista, että kaikki tiedot on lisätty onnistuneesti suorittamalla SELECT-kysely.

SELECT-kyselyn tulos, jossa näkyy neljä riviä, joilla on erilliset Course_ID-arvot

Huomautus: Voit lisätä kaksoisarvoja muuhun kuin ensisijaiseen avainsarakkeeseen.

Vaihe 3) Yritetään nyt lisätä uusi tietue, jossa on olemassa oleva Course_ID, joka on ensisijainen avain.

Insert into COURSE_TSQL_PK values (4,'JAVA');

Tulos: Järjestelmä ei salli uuden arvon lisäämistä, koska Course_ID-sarakkeessa, joka on ensisijainen avain, on jo arvo 4.

Virheilmoitus hylättäessä Course_ID:n kaksoiskappaleen ensisijaista avainarvoa

Kuinka lisätä ensisijainen avain olemassa olevaan taulukkoon SQL:ssä?

Nyt näemme, kuinka lisätään ensisijainen avain olemassa olevaan SQL-taulukkoon.

Voit käyttää ALTER-lauseketta perusavaimen luomiseen. Perusavaimen voi kuitenkin luoda vain sarakkeille, jotka on määritelty NOT NULL -arvoiksi. Perusavainta ei voi luoda sarakkeelle, joka sallii NULL-arvot. Jos sarake sallii tällä hetkellä NULL-arvot, sinun on ensin muutettava se NOT NULL -arvoksi tai poistettava ja luotava taulukko uudelleen.

Tässä on syntaksi:

ALTER TABLE tableName
ADD CONSTRAINT constraintName PRIMARY KEY (column_1, column_2, ... column_n);

Esimerkiksi:

ALTER TABLE students
ADD CONSTRAINT students_pk PRIMARY KEY (admission);

ALTER TABLE -lauseke, joka lisää ensisijaisen avaimen rajoitteen nimeltä students_pk

Olemme lisänneet ensisijaisen avaimen rajoituksen jo olemassa olevaan taulukkoon. Rajoitus on lisätty pääsysarakkeeseen ja sille on annettu nimi opiskelijat_pk.

Mielenkiintoisia seikkoja!

  • Ensisijainen avain voi olla useiden sarakkeiden yhdistelmä. Tätä yhdistelmää kutsutaan yhdistetyksi ensisijaiseksi avaimeksi.
  • Ensisijaisessa avaimessa voi olla enintään 16 saraketta.

UKK

Molemmat edellyttävät ainutlaatuisuutta. Taulukko sallii vain yhden ensisijaisen avaimen, eivätkä sen sarakkeet voi olla NULL-arvoisia. Taulukko voi sisältää useita yksilöllisiä avaimia, ja yksilöllinen sarake voi hyväksyä yhden NULL-arvon. Ensisijaiset avaimet määrittävät yleensä päärivin tunnisteen.

Kyllä. SQL Server muodostaa automaattisesti yksilöllisen indeksin ensisijaisen avaimen valvomiseksi. Oletusarvoisesti tämä indeksi on klusteroitu, mikä fyysisesti järjestää rivit. Voit määrittää NONCLUSTERED-indeksin sen sijaan, kun klusteroitu indeksi on jo toisessa sarakkeessa.

Yhdistetty ensisijainen avain yhdistää kaksi tai useampia sarakkeita siten, että niiden arvot ovat yksilöllisiä, vaikka jokainen sarake toistuisi erikseen. SQL Server sallii ensisijaisen avaimen ulottua jopa 16 sarakkeeseen ja avaimen kokonaispituuden 900 tavuun.

Ensisijainen avain yksilöi yksilöllisesti jokaisen rivin omassa taulukossaan eikä koskaan salli NULL-arvoja. vieraan avaimen tallentaa arvot, joiden on vastattava toisen taulukon ensisijaista tai yksilöllistä avainta, luoden suhteen kahden taulukon välille.

Suorita ALTER TABLE table_name DROP CONSTRAINT constraint_name. Sinun on tiedettävä rajoitteen nimi, joka löytyy sys.key_constraints-tiedostosta. Dropping ensisijainen avain poistaa myös sitä tukevan yksilöllisen indeksin ja kaikki siihen viittaavat viiteavaimet.

IDENTITY-sarake, joka luo numeroita automaattisesti, on suosittu ensisijaisen avaimen korvike, koska se pysyy kapeana, vakaana eikä koskaan ole NULL. Valitse luonnollinen avain vain silloin, kun olemassa olevan sarakkeen, kuten tuotekoodin, yksilöllisyys on jo taattu.

Kyllä. GitHub Copilot osaa kirjoittaa CREATE TABLE -lausekkeita ja PRIMARY KEY -rajoitteita luonnollisen kielen kehotteista ja ehdottaa sopivia avainsarakkeita. Tarkista aina luodut avaimet, tietotyypit ja tyhjäarvot ja testaa sitten skriptiä ennen sen suorittamista tuotannossa.

Tekoäly- ja koneoppimistyökalut analysoivat esimerkkidataa ja kyselymalleja suositellakseen ensisijaiseksi avaimeksi joko saraketta tai sarakkeita, merkitäkseen kaksoiskappaleita tai NULL-arvoja sisältävät avaimet ja ehdottaakseen sijaisavaimia. Kehittäjä vahvistaa jokaisen suosituksen ennen sen soveltamista.

Tiivistä tämä viesti seuraavasti: