Clés primaires, clés étrangères et contraintes
Expliquer les clés, l’unicité et l’intégrité référentielle comme le souhaite un recruteur
Clés primaires, clés étrangères et contraintes est une leçon SQL Interview Prep gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SQL Interview Prep, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SQL Interview Prep comprend 4 leçons au total.
Pourquoi les clés reviennent toujours
Après avoir défini SQL, les recruteurs abordent les clés et les contraintes. Le thème qui les relie est l’intégrité : les règles appliquées par la base de données pour empêcher l’insertion de données incorrectes.
Qu’est-ce qu’une clé primaire
Une clé primaire identifie chaque ligne de manière unique. Elle est toujours unique et NOT NULL, et une table en possède au maximum une. Formulez-le clairement pour marquer des points.
CREATE TABLE customers (
id INTEGER PRIMARY KEY,
email VARCHAR(255) NOT NULL,
name VARCHAR(100)
);Clés naturelles et clés de substitution
Des données réelles ou un nombre généré ? Une clé naturelle utilise des données uniques existantes ; une clé de substitution est un identifiant généré. La plupart des équipes préfèrent les clés de substitution : elles sont stables.
Clés primaires composites
Une clé primaire peut couvrir plus d’une colonne : il s’agit alors d’une clé composite. Vous en trouverez dans les tables d’association, où deux clés étrangères identifient ensemble chaque ligne.
CREATE TABLE enrollments (
student_id INTEGER,
course_id INTEGER,
enrolled_on DATE,
PRIMARY KEY (student_id, course_id)
);Clé primaire ou contrainte d’unicité
Une question presque garantie : clé primaire ou contrainte d’unicité ? Toutes deux imposent l’unicité, mais une table possède une seule clé primaire, qui est NOT NULL, et peut avoir plusieurs contraintes d’unicité, chacune autorisant une valeur NULL.
CREATE TABLE users (
id INTEGER PRIMARY KEY,
email VARCHAR(255) UNIQUE,
username VARCHAR(50) UNIQUE
);Qu’est-ce qu’une clé étrangère
Une clé étrangère fait référence à la clé primaire d’une autre table et garantit l’intégrité référentielle : vous ne pouvez pas ajouter une ligne enfant qui pointe vers un parent inexistant.
CREATE TABLE orders (
id INTEGER PRIMARY KEY,
customer_id INTEGER REFERENCES customers(id),
amount NUMERIC(10,2)
);Actions référentielles : ON DELETE / ON UPDATE
« Que deviennent les commandes si le client est supprimé ? » C’est une action référentielle : RESTRICT bloque l’opération, ce qui est le comportement par défaut ; CASCADE supprime les lignes enfants et SET NULL efface la clé.
CREATE TABLE order_items (
id INTEGER PRIMARY KEY,
order_id INTEGER REFERENCES orders(id) ON DELETE CASCADE
);NOT NULL, CHECK et DEFAULT
Trois autres contraintes complètent l’intégrité : NOT NULL interdit les valeurs manquantes, CHECK impose une règle comme stock >= 0 et DEFAULT fournit une valeur de remplacement.
CREATE TABLE products (
id INTEGER PRIMARY KEY,
price NUMERIC(10,2) NOT NULL DEFAULT 0,
stock INTEGER CHECK (stock >= 0)
);Exemple détaillé : concevoir avec intégrité
Concevons la table des emprunts d’une bibliothèque. Le code ci-dessous utilise deux clés étrangères, une date de retour NOT NULL et une règle d’unicité afin qu’un livre ne puisse pas être prêté deux fois simultanément.
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
);Comment parler de l’intégrité
Citez les trois types d’intégrité pour montrer votre maîtrise : l’intégrité d’entité provient des clés primaires, l’intégrité référentielle des clés étrangères et l’intégrité de domaine de NOT NULL, CHECK et des types.
Ajouter des contraintes à une table existante
On vous demande d’ajouter des contraintes à une table existante ? Utilisez ALTER TABLE ... ADD CONSTRAINT. Un point subtil mérite d’être mentionné : l’opération peut échouer si des lignes actuelles enfreignent déjà la nouvelle règle.
ALTER TABLE orders
ADD CONSTRAINT fk_orders_customer
FOREIGN KEY (customer_id) REFERENCES customers(id);Vérification rapide
Distinguez une clé primaire d’une contrainte d’unicité.
Récapitulatif
Récapitulatif : une clé primaire est unique et NOT NULL, et il n’y en a qu’une par table ; une contrainte d’unicité autorise une valeur NULL et vous pouvez en avoir plusieurs ; une clé étrangère garantit l’intégrité référentielle.
Questions Fréquemment Posées
La leçon « Clés primaires, clés étrangères et contraintes » est-elle gratuite ?
Oui — le texte complet de « Clés primaires, clés étrangères et contraintes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SQL Interview Prep, passe à CoddyKit PRO. Le cours SQL Interview Prep comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Clés primaires, clés étrangères et contraintes » ?
Expliquer les clés, l’unicité et l’intégrité référentielle comme le souhaite un recruteur Tu pratiques SQL Interview Prep avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer SQL Interview Prep ?
Aucune expérience préalable n'est requise. SQL Interview Prep sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Clés primaires, clés étrangères et contraintes » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon SQL Interview Prep ?
Oui. Chaque leçon SQL Interview Prep inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Qu’est-ce que SQL et pourquoi les recruteurs le demandent-ils ?
- Ordre logique d’exécution d’une requête
- Clés primaires, clés étrangères et contraintes
- Lire un schéma sous pression