Patrick Dezécache
2012-2013
Novembre 2012.
SQL - Structured Query Language
avec MySQL5 - L’essentiel
TABLE DES MATIÈRES TABLE DES MATIÈRES
Table des matières
I Introduction 2
1 Bases de données 2
2 Systèmes de gestion de bases de données 3
3 Le langage SQL 4
3.1 Algèbre relationnelle ....................... 5
3.2 Familles d’ordres SQL ...................... 7
3.3 Convention de syntaxe pour les ordres SQL ........... 8
4 Conception des bases de données 8
4.1 Le dictionnaire de données .................... 9
4.2 La matrice des dépendances fonctionnelles ........... 9
4.3 Le Modèle Entité-Association - MCD Merise .......... 9
4.4 Construction du modèle logique de données - MLD relationnel
Merise ............................... 10
4.5 Modèle physique de données - MPD Merise ........... 10
5 Avertissement 11
II DDL - gérer la structure 12
6 Créer une base de données - CREATE DATABASE 12
6.1 Exercices .............................. 13
7 Créer les tables - CREATE TABLE 13
7.1 Identificateur des tables et colonnes ............... 15
7.2 Types de donnée ......................... 15
7.2.1 Chaînes de caractères : CHAR et VARCHAR ..... 16
7.2.2 Nombres entiers : INTEGER ............... 16
7.2.3 Nombres décimaux exacts : NUMERIC ......... 17
7.2.4 Nombres décimaux approchés : DOUBLE ........ 18
7.2.5 Dates, heures : DATE, TIME, DATETIME, TIMES-
TAMP, YEAR ...................... 18
1
TABLE DES MATIÈRES TABLE DES MATIÈRES
7.2.6 Valeurs binaires : BIT .................. 19
7.2.7 Objets volumineux : TEXT, BLOB ........... 19
7.2.8 Types de données géographiques ............. 19
7.3 Contraintes de colonnes ..................... 19
7.3.1 Donnée obligatoire - NOT NULL ............ 20
7.3.2 Valeur par défaut - DEFAULT .............. 20
7.3.3 Sequence - AUTO_INCREMENT ............ 20
7.3.4 Valeur unique - UNIQUE ................ 21
7.3.5 Vérification de valeur - CHECK ............. 21
7.3.6 Clef primaire - PRIMARY KEY ............. 21
7.3.7 Clef étrangère - FOREIGN KEY ............ 22
7.4 Contraintes de tables ....................... 24
7.5 Créer une table à partir d’une requête .............. 25
8 Renommer une table - RENAME TABLE 26
9 Modifier la structure - ALTER TABLE 26
9.1 ajouter une colonne - ...ADD COLUMN ............ 27
9.2 modifier une colonne - ...MODIFY COLUMN ......... 27
9.3 ajouter une contrainte - ...ADD CONSTRAINT ........ 27
9.4 supprimer une contrainte - ...DROP FOREIGN KEY ..... 28
9.5 supprimer une colonne - ...DROP COLUMN .......... 28
9.6 Erreurs de définition des FK ................... 28
10 Supprimer une table - DROP TABLE 28
11 Supprimer une base de données - DROP DATABASE 29
12 Les index 29
12.1 Créer un index - CREATE INDEX ............... 30
12.2 Supprimer un index - DROP INDEX .............. 30
III DML - gerer le contenu 32
13 Ajouter des lignes - INSERT INTO 32
13.1 ... complètes à partir de valeurs fixes .............. 32
13.2 ...incomplètes à partir de valeurs fixes .............. 33
13.3 ... à partir d’une requête ..................... 34
2
TABLE DES MATIÈRES TABLE DES MATIÈRES
14 Modifier le contenu de colonnes - UPDATE 34
15 Supprimer des lignes - DELETE FROM 36
16 Vider une table - TRUNCATE TABLE 36
IV DML - interroger 38
17 Syntaxe générale ordre SELECT 38
17.1 Choisir les colonnes à récupérer : SELECT ........... 39
17.1.1 ALL et DISTINCT .................... 39
17.1.2 Alias de colonne : AS .................. 39
17.1.3 Valeur conditionnelle : CASE .............. 40
17.2 Définir l’origine des colonnes : FROM .............. 41
17.3 Choisir les lignes à récupérer : WHERE ............. 41
17.3.1 Opérateurs de comparaison : =, >, >=, <, <=, <>, != 42
17.3.2 Liste de valeurs : IN, NOT IN .............. 42
17.3.3 Concordance avec un modèle : LIKE, NOT LIKE . . . 43
17.3.4 Expression régulière : REGEXP ............. 44
17.3.5 Intervalle : BETWEEN, NOT BETWEEN ....... 45
17.3.6 Connecteurs logiques : AND, OR ............ 46
17.3.7 Opérateur : NOT ..................... 47
17.3.8 Valeurs non renseignées : IS NULL, IS NOT NULL . . 47
17.4 Agréger des valeurs : GROUP BY ................ 48
17.4.1 Agrégats globaux ..................... 48
17.4.2 Agrégats sous-totaux par ................. 49
17.4.3 Utilisation de DISTINCT ................ 50
17.5 Choisir des lignes après regroupement : HAVING ....... 50
17.6 Classer le résultat final : ORDER BY .............. 51
17.7 Récupérer un nombre de lignes : LIMIT ............ 52
18 Jointures 52
18.1 Introduction ............................ 52
18.2 Le produit cartésien - CROSS JOIN ............... 53
18.3 La jointure interne d’égalité - INNER JOIN...= ........ 54
18.4 Jointures externes ......................... 56
18.4.1 ...gauche - LEFT OUTER JOIN ............. 56
3
TABLE DES MATIÈRES TABLE DES MATIÈRES
18.4.2 ...droite - RIGHT OUTER JOIN ............ 56
18.4.3 ...totale - FULL OUTER JOIN ............. 57
18.5 Autres cas de jointures ...................... 57
18.5.1 Non équi-jointures, théta jointure ............ 57
18.5.2 Auto jointures ....................... 57
18.5.3 Jointure naturelle ..................... 57
19 Colonnes calculées 58
19.1 Opérateurs arithmétiques ..................... 59
19.2 Opérateur chaine de caractères .................. 60
19.3 Fonctions mathématiques ..................... 60
19.4 Fonctions de dates ........................ 60
19.5 Fonctions de textes ........................ 62
19.6 Fonctions et variables système .................. 62
20 Sous-requêtes 63
20.1 Types de résultat d’une sous-requête .............. 64
20.1.1 ...valeur unique ...................... 64
20.1.2 ...colonne unique, lignes multiples ............ 65
20.1.3 ...jeu de données quelconque ............... 66
20.2 valeur unique et opérateurs de comparaison .......... 66
20.3 valeur unique et BETWEEN ................... 67
20.4 colonne unique et IN ....................... 67
20.5 colonne unique et ALL ...................... 69
20.6 colonne unique et ANY, SOME ................. 71
20.7 jeu quelconque et EXISTS .................... 73
20.8 Résultat de sous-requête dans une colonne résultat ...... 74
20.9 Apports de la norme SQL2 .................... 74
20.9.1 IN et colonnes multiples ................. 75
20.9.2 FROM et requête comme table ............. 75
21 Requêtes ensemblistes 75
21.1 Requête d’union : UNION .................... 76
21.2 Requête d’intersection : INTERSECT .............. 77
21.3 Requête de différence : MINUS ou EXCEPT .......... 78
21.4 Requête de division ........................ 79
4
1 / 131 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !