ΠΡΩΤΕΥΟΝ ΚΛΕΙΔΙ SQL: Δημιουργία & Προσθήκη σε Υπάρχοντα Πίνακα

⚡ Έξυπνη Σύνοψη

Ένα πρωτεύον κλειδί στον SQL Server είναι μια στήλη ή ένα σύνολο στηλών των οποίων οι τιμές προσδιορίζουν μοναδικά κάθε γραμμή σε έναν πίνακα. Κάθε πίνακας περιέχει ένα πρωτεύον κλειδί και οι στήλες του δεν πρέπει ποτέ να είναι NULL.

  • 🔑 Τι είναι ένα πρωτεύον κλειδί: Ένα πρωτεύον κλειδί είναι μία ή περισσότερες στήλες των οποίων οι τιμές είναι μοναδικές και προσδιορίζουν κάθε γραμμή σε έναν πίνακα.
  • 🚫 Βασικοί κανόνες: Ένας πίνακας επιτρέπει μόνο ένα πρωτεύον κλειδί, κάθε τιμή πρέπει να είναι μοναδική και καμία στήλη κλειδιού δεν μπορεί να περιέχει NULL.
  • 🖱️ Δύο μέθοδοι δημιουργίας: Το SQL Server Management Studio Table Designer και η πρόταση T-SQL CREATE TABLE ορίζουν και τα δύο ένα πρωτεύον κλειδί.
  • 🧱 Ρήτρα ΠΕΡΙΟΡΙΣΜΟΥ: Μέσα στην εντολή CREATE TABLE, η ρήτρα CONSTRAINT … PRIMARY KEY ονομάζει το κλειδί και παραθέτει τη στήλη ή τις στήλες του.
  • Προσθήκη σε υπάρχοντα πίνακα: ALTER TABLE … Η εντολή ADD CONSTRAINT προσθέτει ένα πρωτεύον κλειδί στις στήλες NOT NULL ενός υπάρχοντος πίνακα.
  • 🧩 Σύνθετο κλειδί: Ένα πρωτεύον κλειδί μπορεί να συνδυάσει έως και 16 στήλες, σχηματίζοντας ένα σύνθετο κλειδί που είναι μοναδικό σε ολόκληρο το σύνολο.

ΠΡΩΤΕΥΟΝ ΚΛΕΙΔΙ SQL Server: Πώς να δημιουργήσετε και να προσθέσετε σε έναν υπάρχοντα πίνακα

Τι είναι το Πρωτεύον Κλειδί στην SQL;

Ένα πρωτεύον κλειδί στο Ο SQL Server είναι ένα πεδίο ή ένας συνδυασμός πεδίων που προσδιορίζει μια εγγραφή με μοναδικό τρόπο. Είναι μια στήλη ή ένα σύνολο στηλών στην οποία κάθε τιμή είναι μοναδική. Με άλλα λόγια, δεν μπορούν να υπάρχουν δύο γραμμές που να μοιράζονται την ίδια τιμή πρωτεύοντος κλειδιού.

Κανόνες για το πρωτεύον κλειδί

  • Κάθε πίνακας μπορεί να έχει μόνο ένα πρωτεύον κλειδί.
  • Όλες οι τιμές είναι μοναδικές και η τιμή του πρωτεύοντος κλειδιού μπορεί να προσδιορίσει μοναδικά κάθε γραμμή.
  • Το σύστημα δεν θα επιτρέψει την εισαγωγή μιας γραμμής της οποίας η τιμή πρωτεύοντος κλειδιού υπάρχει ήδη στον πίνακα.
  • Ένα πρωτεύον κλειδί δεν μπορεί να είναι NULL.

Το παρακάτω διάγραμμα συνοψίζει όλα τα παραπάνω σημεία σχετικά με το πρωτεύον κλειδί SQL.

Διάγραμμα που συνοψίζει τους κανόνες πρωτεύοντος κλειδιού SQL: μοναδικές τιμές, μία ανά πίνακα και όχι NULL

Πώς να δημιουργήσετε πρωτεύον κλειδί στον SQL Server

Μπορείτε να δημιουργήσετε ένα πρωτεύον κλειδί με δύο τρόπους:

Ας μελετήσουμε κάθε μέθοδο λεπτομερώς.

Στούντιο διαχείρισης διακομιστή SQL

Βήμα 1) Κάντε δεξί κλικ στο όνομα του πίνακα και κάντε κλικ στο Υπηρεσίες.

Κάντε δεξί κλικ στον πίνακα και επιλέξτε Σχεδίαση στο SQL Server Management Studio

Βήμα 2) Κάντε δεξί κλικ στο όνομα της στήλης και κάντε κλικ Ορισμός πρωτεύοντος κλειδιού.

Κάντε δεξί κλικ στη στήλη και επιλέξτε Ορισμός πρωτεύοντος κλειδιού στο Table Designer

Αποτέλεσμα: Το Course_Id είναι πλέον ένα πρωτεύον κλειδί, το οποίο εμφανίζεται με ένα εικονίδιο κλειδιού δίπλα στη στήλη.

Η στήλη Course_Id επισημαίνεται με ένα εικονίδιο κλειδιού ως κύριο κλειδί

T-SQL: Δημιουργία πρωτεύοντος κλειδιού κατά τη δημιουργία νέου πίνακα

Παρακάτω είναι η σύνταξη για δημιουργήστε έναν πίνακα με ένα πρωτεύον κλειδί από την T-SQL.

Σύνταξη:

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

Εδώ, ο ΠΕΡΙΟΡΙΣΜΟΣ ονομάζει το κλειδί, ο ΠΡΩΤΕΥΟΝ ΚΛΕΙΔΙ σηματοδοτεί τη στήλη που πρέπει να παραμείνει μοναδική και κάθε στήλη χρειάζεται επίσης ένα Τύπος δεδομένων.

Ας δημιουργήσουμε έναν πίνακα με μία στήλη ως πρωτεύον κλειδί SQL.

Ερώτηση:

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

Βήμα 1) Εκτελέστε το ερώτημα κάνοντας κλικ Εκτέλεση.

Εκτέλεση του ερωτήματος CREATE TABLE που ορίζει το πρωτεύον κλειδί Course_ID

Αποτέλεσμα: Το Course_Id είναι πλέον πρωτεύον κλειδί στον πίνακα COURSE_TSQL_PK.

Πίνακας COURSE_TSQL_PK που εμφανίζει το Course_ID που έχει οριστεί ως πρωτεύον κλειδί

Παράδειγμα: Ας δούμε αν επιτρέπει την εισαγωγή πολλαπλών εγγραφών με το ίδιο αναγνωριστικό μαθήματος.

Βήμα 1) Εισαγάγετε τέσσερις γραμμές με διαφορετικές τιμές Course_ID.

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');

Βήμα 2) Επαληθεύστε ότι όλα τα δεδομένα εισήχθησαν με επιτυχία εκτελώντας το ερώτημα SELECT.

Αποτέλεσμα ερωτήματος SELECT που εμφανίζει τέσσερις γραμμές με διακριτές τιμές Course_ID

Σημείωση: Μπορείτε να εισαγάγετε διπλότυπες τιμές σε μια στήλη που δεν είναι πρωτεύον κλειδί.

Βήμα 3) Ας δοκιμάσουμε τώρα να εισαγάγουμε μια νέα εγγραφή με ένα υπάρχον Course_ID, το οποίο είναι το πρωτεύον κλειδί.

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

Αποτέλεσμα: Το σύστημα δεν επιτρέπει την εισαγωγή της νέας τιμής, επειδή το 4 υπάρχει ήδη στη στήλη Course_ID, η οποία είναι ένα πρωτεύον κλειδί.

Μήνυμα σφάλματος απόρριψης διπλότυπης τιμής πρωτεύοντος κλειδιού για το Course_ID

Πώς να προσθέσετε πρωτεύον κλειδί στον υπάρχοντα πίνακα στην SQL;

Τώρα θα δούμε πώς να προσθέσουμε ένα πρωτεύον κλειδί σε έναν υπάρχοντα πίνακα στην SQL.

Μπορείτε να χρησιμοποιήσετε την πρόταση ALTER για να δημιουργήσετε ένα πρωτεύον κλειδί. Ωστόσο, ένα πρωτεύον κλειδί μπορεί να δημιουργηθεί μόνο σε στήλες που έχουν οριστεί ως NOT NULL. Δεν μπορείτε να δημιουργήσετε ένα πρωτεύον κλειδί σε μια στήλη που επιτρέπει NULL. Εάν μια στήλη επιτρέπει αυτήν τη στιγμή NULL, πρέπει πρώτα να την τροποποιήσετε σε NOT NULL ή να αποσύρετε και να δημιουργήσετε ξανά τον πίνακα.

Εδώ είναι η σύνταξη:

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

Για παράδειγμα:

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

Δήλωση ALTER TABLE που προσθέτει έναν περιορισμό πρωτεύοντος κλειδιού με όνομα students_pk

Έχουμε προσθέσει έναν περιορισμό πρωτεύοντος κλειδιού σε έναν ήδη υπάρχοντα πίνακα. Ο περιορισμός έχει προστεθεί στη στήλη αποδοχής και έχει εκχωρηθεί το όνομα student_pk.

Ενδιαφέροντα γεγονότα!

  • Ένα πρωτεύον κλειδί μπορεί να είναι ένας συνδυασμός πολλαπλών στηλών. Αυτός ο συνδυασμός είναι γνωστός ως σύνθετο πρωτεύον κλειδί.
  • Ένα πρωτεύον κλειδί μπορεί να έχει έως και 16 στήλες.

Συχνές Ερωτήσεις

Και τα δύο επιβάλλουν μοναδικότητα. Ένας πίνακας επιτρέπει μόνο ένα πρωτεύον κλειδί και οι στήλες του δεν μπορούν να είναι NULL. Ένας πίνακας μπορεί να περιέχει πολλά μοναδικά κλειδιά και μια μοναδική στήλη μπορεί να δεχτεί μία τιμή NULL. Τα πρωτεύοντα κλειδιά συνήθως ορίζουν το κύριο αναγνωριστικό γραμμής.

Ναι. Ο SQL Server δημιουργεί αυτόματα ένα μοναδικό ευρετήριο για την επιβολή του πρωτεύοντος κλειδιού. Από προεπιλογή, αυτό το ευρετήριο είναι ομαδοποιημένο, το οποίο ταξινομεί φυσικά τις γραμμές. Μπορείτε να ορίσετε NONCLUSTERED αντί αυτού, όταν μια άλλη στήλη περιέχει ήδη το ομαδοποιημένο ευρετήριο.

Ένα σύνθετο πρωτεύον κλειδί συνδυάζει δύο ή περισσότερες στήλες, έτσι ώστε οι τιμές τους να είναι μοναδικές μαζί, ακόμα και όταν κάθε στήλη επαναλαμβάνεται ξεχωριστά. Ο SQL Server επιτρέπει σε ένα πρωτεύον κλειδί να εκτείνεται σε έως και 16 στήλες και σε συνολικό μήκος κλειδιού 900 byte.

Ένα πρωτεύον κλειδί προσδιορίζει μοναδικά κάθε γραμμή μέσα στον δικό του πίνακα και δεν επιτρέπει ποτέ NULL. ξένο κλειδί Αποθηκεύει τιμές που πρέπει να ταιριάζουν με ένα πρωτεύον ή μοναδικό κλειδί σε έναν άλλο πίνακα, δημιουργώντας μια σχέση μεταξύ των δύο πινάκων.

Εκτελέστε την εντολή ALTER TABLE table_name DROP CONSTRAINT constraint_name. Πρέπει να γνωρίζετε το όνομα του περιορισμού, το οποίο μπορείτε να βρείτε στο sys.key_constraints. Dropping Το πρωτεύον κλειδί αφαιρεί επίσης τον υποστηρικτικό μοναδικό δείκτη του και οποιοδήποτε ξένο κλειδί που το αναφέρει.

Μια στήλη ΤΑΥΤΟΤΗΤΑΣ που δημιουργεί αυτόματα αριθμούς είναι ένα δημοφιλές υποκατάστατο πρωτεύον κλειδί επειδή παραμένει στενό, σταθερό και ποτέ NULL. Επιλέξτε ένα φυσικό κλειδί μόνο όταν μια υπάρχουσα στήλη, όπως ένας κωδικός προϊόντος, είναι ήδη εγγυημένα μοναδική.

Ναί. GitHub Copilot Μπορεί να γράψει εντολές CREATE TABLE και περιορισμούς PRIMARY KEY από προτροπές φυσικής γλώσσας και να προτείνει κατάλληλες στήλες κλειδιών. Να ελέγχετε πάντα τα δημιουργημένα κλειδιά, τους τύπους δεδομένων και την μηδενικότητα και, στη συνέχεια, να δοκιμάζετε το σενάριο πριν το εκτελέσετε στην παραγωγή.

Τα εργαλεία τεχνητής νοημοσύνης και μηχανικής μάθησης αναλύουν δείγματα δεδομένων και μοτίβα ερωτημάτων για να προτείνουν ποια στήλη ή στήλες θα πρέπει να είναι το πρωτεύον κλειδί, να επισημαίνουν υποψήφια κλειδιά που περιέχουν διπλότυπα ή NULL και να προτείνουν υποκατάστατα κλειδιά. Ο προγραμματιστής επιβεβαιώνει κάθε σύσταση πριν την εφαρμόσει.

Συνοψίστε αυτήν την ανάρτηση με: