Aller au contenu

Page SQL

Lien pour la documentation

documentation

I. Un IDE vide :⚓︎

Ecrire votre propre code, puis l'exécuter :



II. Du code pré-rempli :⚓︎



Attention

Par défaut SQLite ne vérifie pas l’intégrité des contraintes de clef étrangères. Il faut lui dire explicitement de le faire avec PRAGMA foreign_keys=1;

III. Initialisation d'un IDE avec du code caché :⚓︎

Ci-dessous le code du fichier caché donné par init= :

Fichier init_1.sql
-- Pour la vérification de l'intégrité des contraintes de clé étrangère : 
PRAGMA foreign_keys=1;

-- Pour créer la table
DROP TABLE IF EXISTS employees;
CREATE TABLE employees
(
    id          integer,
    name        text,
    designation text,
    manager     integer,
    hired_on    date,
    salary      integer,
    commission  float,
    dept        integer
);

INSERT INTO employees VALUES (1,'JOHNSON','ADMIN',6,'1990-12-17',18000,NULL,4);
INSERT INTO employees VALUES (2,'HARDING','MANAGER',9,'1998-02-02',52000,300,3);
INSERT INTO employees VALUES (3,'TAFT','SALES I',2,'1996-01-02',25000,500,3);
INSERT INTO employees VALUES (4,'HOOVER','SALES I',2,'1990-04-02',27000,NULL,3);
INSERT INTO employees VALUES (5,'LINCOLN','TECH',6,'1994-06-23',22500,1400,4);
INSERT INTO employees VALUES (6,'GARFIELD','MANAGER',9,'1993-05-01',54000,NULL,4);



IV. Utilisation d'une base de donnée :⚓︎

base et init ne peuvent pas être utilisés en même temps

Le code caché auto-exécuté indique la base de donnée utilisée livres, et le code PRAGMA foreign_keys=1; pour l'intégrité de contrainte de clé étrangère.

Exercice avec plusieurs questions



Question 1 : Combien de livres contiennent la chaîne 'Astérix' dans leur titre ?



Solution



Question 2 : Peut-on supprimer n’importe quel enregistrement ?
Essayons de supprimer le livre "Hacker's Delight" sachant que son code ISBN est 978-0201914658.



Solution

Le SGBD nous indique que supprimer ce livre, violerait la contrainte de clé étrangère. En effet, le code isbn est une clé étrangère dans la table auteur_de.