Chap 4-SQL
Chap 4-SQL
Chap 4-SQL
1. Introduction
SQL qui est l'abréviation de Structured Query Language est un langage d'interrogation structuré de
bases de données relationnelles proche de l'utilisateur et de sa façon de poser les requêtes :
- C'est un langage qui utilise des mots anglais et une formulation proche de la langue
naturelle.
- SQL se veut assertionnel, donc non procédural. En effet, l'utilisateur spécifie ce qu'il veut
obtenir sans dire comment le faire.
2.10 Différence
Différence : T = R - S ou T = MINUS (R, S)
R et S doivent avoir même schéma.
Exemple : Permet de retirer les livres de la relation S existant dans la relation R.
110 Programmation C F2
2.12 Division
Division : T = R ÷ S ou T = DIVISION (R, S)
R (A1, A2… An) et S (Ap+1… An)
T (A1, A2, …, Ap) contient tous les tuples tels que leur concaténation à chacun des tuples de S
donne toujours un tuple de R.
110 P1 02/01/2000 110 02/01/2000
100 P2 03/01/2000 =
100 P2 10/01/2000 Nopers
P1
- La <liste des colonnes> peut être omise. Dans ce cas, chaque colonne du tuple de la relation
concernée sera affectée. Si la <liste des colonnes> est précisée, les colonnes doivent être séparées
par une virgule.
- La <liste des valeurs> doit contenir autant de valeurs que de colonne concernées par l'insertion.
Une <requête select> peut remplacer la <liste des valeurs>. Le nombre et le type des colonnes
choisis dans la <requête select> doivent correspondre avec celles de <liste des colonnes>. De plus,
la <requête select> ne doit contenir ni "ORDER BY" ni "INTO TEMP".
L'insertion d'un tuple peut être rejetée:
- si les contraintes d'unicité sur les attributs ne sont pas respectées;
- si une colonne déclarée "NOT NULL" (lors de la création de la table) n'est pas instanciée lors de
l'insertion.
Exemples :
a) INSERT INTO livre VALUES (20, 'INFOGUIDE UNIX', 'CHOUCHENA', 'INFORMATIQUE',
368)
b) INSERT INTO personne (nopers, nom) VALUES (15, 'TOTO LHOUCINE')
En l'absence de la clause" WHERE" tous les tuples de la relation ou de la vue sont détruits.
Exemple:
a) Effacer tous les tuples de la relation "livre_rom".
DELETE FROM livre_rom.
b) Effacer tous les livres de poésie de la relation livre.
DELETE FROM livre WHERE genre ='POESIE'