BASES DE DONNÉES
Fondements
Les fondements de l'informatique
Livres
SQL - synthèse de cours et exercices
SQL - développement
Avant d'aborder le langage SQL
Définitions
SGBDR fichier ou client/serveur ?
La base de données exemple (gestion d'un hôtel)
Modélisation MERISE
Mots réservés du SQL
Les règles de Codd pour les SGBDR
Modélisation de données
Modélisation MERISE
Gestion des tables de référence
L'héritage des données
Modélisation par méta données
Modélisation d'arborescence en SQL
Une seule colonne, plusieurs données
Données et normes
Méthodes et standards
Langage SQL de A à Z
Initiation à SQL
Les fondements
Le simple (?) SELECT
Les jointures (JOIN) : interroger plusieurs tables
Groupage (GROUP BY), ensembles et sous-ensembles (UNION, INTERSECT, EXCEPT)
Les sous requêtes
Les données d'une base SQL sont des ensembles
Insérer (INSERT), modifier (UPDATE), supprimer (DELETE)
Création des bases, tables (CREATE TABLE), vues (CREATE VIEW)
Gérer les privilèges (GRANT, REVOKE) ("droits")
Toutes les fonctions du langage SQL
Les erreurs les plus fréquentes en SQL
SQL avancé
La division relationnelle
Requêtes récursives et CTE (Common Table Expression)
Fonctions OLAP et fenêtrage
L'indexation textuelle
Système d'information géographique (SIG SQL)
Transactions et niveau d'isolation
Prédicats SQL de quantification UNIQUE et DISTINCT
Contraintes SQL (CONSTRAINTS)
Contraintes FOREIGN KEY ou code client ?
De l'intérêt des SCHÉMA SQL
Les techniques des SGBDR
Les nouveautés de la norme SQL 2008
Optimisation
Ni index, ni clé... est-ce avantageux ?
Que faut-il indexer ?
Maintenance des index dans les VLDB
Optimisez votre SGBDR et vos requêtes SQL
Optimisation de MS SQL Server
--> 1 règles de base
--> 2 les ressources
--> 3 modèle de données
--> 4 les requêtes
--> 5 l'exploitation
Indexation, étude par l'exemple
Récriture de requêtes, étude par l'exemple
Évitez les curseurs !
Désactivez les index pour aller plus vite dans les mises à jour
Les petits papiers
Critique de MySQL
Historisation de données
Qualité des données : majuscules et accents
Calcul de la mediane statistique en SQL
La CTE (expression de tables) et les Requêtes récursives
Le traitement des NULLs
Évitez les curseurs !
La comparaisons de motifs
Les doublons
L'avenir de SQL...
Gestion d'arborescence en SQL
Méthodes et standards
La division relationnelle
Une seule colonne, plusieurs données...
L'indexation textuelle
L'art des "Soundex"
L'héritage des données
Modélisation par méta données
Données et normes
Le temps, sa mesure, ses calculs
Des images dans ma base
La jointure manquante
Clefs auto incrémentées
Conférence Borland 2003
Microsoft SQL Server
SQL Server : développement
Les 10 meilleures pratiques pour développer avec un SGBDR
A quoi sert Service Broker ?
Requêtes récursives (arbres, garphes...) avec la CTE sous SQL Server 2005
Désactivez les index pour aller plus vite dans les mises à jour
Les nouveautés de SQL Server 2005
Les transactions imbriquées
Le type DATETIME (en collaboration avec B Wicht)
Un aperçu de Transact SQL V 2000
SQL Server et les collations
Évitez les curseurs !
Des UDF pour SQL Server
Envoyer un mail sans Exchange ni Outlook avec SQL Server 2000
Fonctions et procédures la différence
Auto incrément IDENTITY avec SQL Server
Quelques procédures et fonctions en vrac
Contraintes d'unicité à la norme SQL ISO
Les meilleurs livres sur SQL Server
Indexation textuelle
SQL Server : administration
Éléments de la sécurité
SGBDR et virtualisation
Bases de données système
haute disponibilité avec MS SQL Server
Sécurisation des accès aux bases de données SQL Server
SQL Server et le fichier de log...
Auditer automatiquement le taux d'occupation de vos disques
script de mise en miroir de BD
Extensions uniforme ou extensions mixtes ?
Sauvegardes avec SQL Server
Visualiser toutes les jobs à venir de l'Agent SQL Server
Quelques outils méconnus pour MS SQL Server
Copie régulière d'une base vers une autre
Sauvegarder toutes les bases de données d'un serveur d'un seul coup
Comment modifier les paramètres de session SQL Server
De l'intérêt des devices pour les sauvegardes
Une procédure pour créer un snapshot de base de données automatiquement
Fragmentation physique des fichiers et temps de réponse
SQL Server 32 bits et AWE
Déplacer des objets d'un espace de stockage à un autre
Reprendre la main sur une base de données
SQL Server : optimisation
L'audit de bases de données
Que faut-il indexer ?
Maintenance des index dans les VLDB
Optimisez votre SGBDR et vos requêtes SQL
Optimisation de MS SQL Server
--> 1 règles de base
--> 2 ressources
--> 3 modèle de données
--> 4 requêtes
--> 5 exploitation
Indexation, étude par l'exemple
Quelques requêtes SQL Server pour connaître la qualité de vos index
PostGreSQL
UDF avec PLpgSQL
Le type INTERVAL et ses dangers
Non recouvrement de périodes
Contraintes CHECK avec tables externes
Système d'Information Géographique
Création des index
DIVERS
Autour du langage SQL
QBE, le langage de ZLOOF
Revue Point DBF : articles sur Paradox
Références et exercices
Webographie
Bibliographie
Des petits outils pour travailler avec SQL
Exercez-vous avec SQL !
Le blog d'exercices!
.

SQLpro.developpez.com est le site web n°1 français pour apprendre le langage SQL et les bases de données relationnelles (SGBDR). Le langage SQL (Structured Query Language) y est décrit de A à Z pour le débutant comme pour le pro... Le site est associé aux forums techniques les plus actifs du net et comprends de nombreux exemples et des exercices.

SQLpro est un véritable tutoriel sur le langage et la norme SQL et les différents dialectes SQL pour MySQL, Microsoft SQL Server (Transact SQL), Oracle(PL/SQL), BM DB2 (SQL PL), PostGreSQL (PGPL/SQL), InterBase/FireBird, Access, Sybase, SQL lite, mimer, ...
En sus du langage normatif, on y trouvera de nombreux articles et des cours spécialisés (l'indexation, l'optimisation des requêtes, l'indexation textuelle, SQL récursif et la gestion d'arbres, la division relationnelle, les techniques des SGBD relationnels...)
SQLpro, c'est un véritable guide d'apprentissage et d'autoformation au langage SQL et aux SGBDR.






Frédéric Brouard (alias SQLpro ) Architecte de données
Enseignant :
CNAM PACA, écoles d'ingénieurs ISEN TOULON, CESI/EXIA Aix en Provence
Conférencier Université Paul Sabatier à Toulouse
société SQLspot
SQLspot : l'expertise des données SQL

Dernière mise à jour : 28/08/2011

LE BLOG SQL de SQLpro sur le langage SQL et les SGBD relationnels
LE BLOG EXERCICES sur SQL, les SGBD relationnels et la modélisation de données

Ma philosophie d'enseignement...

Ce site vous enseigne le langage SQL et les principes des bases de données transactionnelles tel que la norme SQL le conçoit.
Le langage SQL est utilisé par la plupart des SGBD relationnels actuels, mais certains éditeurs comme Oracle ou MySQL ont préféré faire cavalier seul en introduisant sciemment certaines fonctionnalités qui n'ont rien à voir avec la norme, pire qui violent allégrement les principes de base des SGBDR et les fondements du relationnel. Par exemple GROUP_CONCAT, LIMIT de MySQL ou bien CONNECT BY ou ROWNUM d'Oracle. Par analogie, si vous deviez apprendre à conduire, serait-ce raisonnable d'apprendre sur un tank ou sur un quad ? Ne serait-ce pas plus intelligent d'apprendre sur une voiture ordinaire puis ensuite passer allégrement à la légèreté du tank ou la finesse du quad ? C'est pourquoi il est préférable d'apprendre le langage SQL à travers sa norme plutôt que de se précipiter sur le dialecte SQL de MySQL ou d'Oracle.... En effet il est plus simple de passer de la norme SQL à un dialecte particulier que l'inverse.
Étant moi même enseignant, je suis assez stupéfait de constater que de nombreux cours prétendant présenter le langage SQL parlent exclusivement du dialecte d'un SGBDR particulier. Quelques exemples parmi d'autres : les cours de Richard Grin à l'université de Nice, de Yolaine Bourda à Supelec sont basé sur Oracle. C'est dit dans le support de cours de M. Grin, mais apparemment pas dans celui de Mme. Bourda... Bref, de quoi entretenir la confusion. Quant à la plupart de ceux disponibles sur Internet et fait par des amateurs, c'est généralement affligeant. En tapant "SQL" dans Google, vous trouverez des cours dont l'imprécision est remarquable... Quelque extraits : # INTERSECT (ne fait pas partie de la norme SQL et n'est donc pas implémenté dans tous les SGBD). # EXCEPT (ne fait pas partie de la norme SQL et n'est donc pas implémenté dans tous les SGBD) Ces deux opérateurs ensemblistes font bien entendu partie de la norme SQL depuis sa version 2 de 1992. Ce cours à donc plus de 18 ans de retard... Quant à cet autre cours qui parle uniquement des contraintes d'intégrité référentielles en matière de contraintes du langage SQL, c'est plus que léger.... quand on sait qu'il existe huit types de contraintes d'intégrité dans SQL (contrainte d'intégrité de domaine, clef primaire, unicité, valeur obligatoire, valeur à défaut, validation, référentielle et assertion)...
C'est pourquoi je présente dans ce cours ce que la norme SQL indique et parfois certaines particularités liées à certains SGBDR. Rassurez vous c'est dit en toute lettre...

Si vous voulez vraiment apprendre SQL, je vous conseille de pratiquer ce langage avec un SGBDR à la fois assez respectueux de la norme SQL et suffisamment puissant dans ses fonctionnalités afin de faire un tour d'horizon complet du langage. C'est pourquoi je vous recommande PostGreSQL, IBM DB2, MS SQL Server, FireBird ou Ocelot. Je vous déconseille Oracle ou MySQL, notamment à cause de leurs implémentations spécifiques de SQL et pour MySQL à cause de son manque de fonctionnalité, ses nombreux bugs et son interprétation singulière de la norme SQL...
La plupart des éditeurs commerciaux vous proposent des versions gratuites certes limitées. Par exemple la version MS SQL Server Express est gratuite, certes limitée à des bases de 10 Go et vous pouvez télécharger le moteur et un outil client convivial pour éditer vos requêtes (SQL Server Management Studio Express). Mais vous pouvez opter pour PostGreSQL qui est entièrement gratuit, contrairement à MySQL qui est payant sous une forme ou une autre (mise à disposition de votre code ou paiement de licence).

Enfin, un dernier conseil : SQL est un vrai langage de programmation. Aujourd'hui mathématiquement complet (c'est à dire admettant la récursivité depuis la norme SQL:1999 donc plus de 10 ans) il est capable de traiter tout problème théoriquement solvable en une seule requête à condition de disposer du bon jeu de données au départ. Ce qui revient à dire que l'apprentissage de SQL ne consiste pas à lire trois page web et pratiquer deux requêtes, mais nécessite de nombreuses heures d'étude de travail et d'exercices... En conclusion, et pour paraphraser un site je dirais, SQL, pas si facile que çà ! Mais Ô combien puissant !
De toutes façons, rien ne vous empêche de compléter votre apprentissage avec le livre que nous avons écrit, Christian, Rudi et moi. Vous y trouverez de très nombreux exemples et exercices et les explications sont travaillées. Et puis l'avantage du livre, c'est qu'il peut partir en vacances avec vous, même au sommet de l'Himalaya !

Bien entendu, vos commentaires, remarques et critiques sont les bienvenues ! Sans cela, comment progresser ?

S. Q. L.
Trois lettres qui signifie Structured Query Language, c'est à dire langage SQL
Commencer par...
LES FONDEMENTS : Historique - Subdivisions du langage SQL - Types de données - Contraintes, triggers et procédures stockées
Poursuivez avec...
LIRE LES DONNÉES : le simple SELECT !SELECT les expressions - FROM les tables - WHERE un filtre - ORDER BY tri - Fonctions SQL - NULL les absents - CASE le branchement
Approfondissez...
JOINDRE LES TABLES : Les jointures - operateur JOIN - NATURAL, INNER, OUTER, CROSS, UNION - équi, non équi, inéqui et théta jointures - Arbre de jointure
Explorez...
GROUPER, AGRÉGEZ, ENSEMBLEZ : Formez des sous ensembles avec GROUP BY - Agrégez avec SUM, COUNT, MAX, MIN, AVG... - Filtrer les agrégats - opérez des ensembles avec UNION, INTERSECT et EXCEPT
Osez...
LES SOUS REQUÊTES : Imbriquez vos SELECT - structurez votre code - corrélées vos sous requêtes - utilisez IN, SOME, ANY, ALL, MATCH, UNIQUE, EXISTS
Percevez...
LA RÉCURSIVITÉ : Les expressions de table (CTE : Common Table Expression) - Requête ancre et requête d'itération - Requêtes de parcours d'arbres - Requêtes de parcours de graphes - Requêtes de parcours de liste : découper une chaîne, concaténez une liste
Exploitez...
LES FONCTIONS OLAP : Analysez vos données avec les fonctions analytiques et de classement et la clause WINDOW. RANK, ROW_NUMBER, NTILE, LEAD, LAG, FIRST_VALUE, LAST_VALUE....
Agissez
MODIFIEZ LES DONNÉES : Insérez avec INSERT - Supprimez avec DELETE - modifiez avec UPDATE - jouez avec NULL et DEFAULT
Utilisez...
LES FONCTIONS SQL : Démultipliez vos requêtes avec les fonctions du langage SQL.
Créez...
LES OBJETS : Du néant à la création d'une base - jeux de caractères et collations - types de données et domaines - les ASSERTION
Inventez...
DES TABLES : les tables - contraintes en colonne, contraintes de table : NOT NULL, DEFAULT, PRIMARY KEY, UNIQUE, CHECK, FOREIGN KEY / REFERENCES - la gestion de l'intégrité référentielle déclarative - ALTER pour altérer un objet - DROP pour le supprimer - Les vues - Les informations de schéma
Vérifiez...
LES PRIVILÈGES : Octroyez des privilèges (ou gratifiez vos utilisateur) avec GRANT - Révoquez les privilèges octroyés avec REVOKE - Utilisez des rôles
Textualisez...
L'INDEXATION TEXTUELLE : pour faire des recherches en texte intégral (full text) à la manière de Google
Géographez...
LE SIG SQL : le système d'information géographique (SIG SQL) pour des données spatiales et planaires
Comprenez
LES TECHNIQUES : A quoi ça sert... - Les TRANSACTIONS - L'intégrité référentielle - Les déclencheurs (triggers) - Les sous requêtes - Les opérations ensemblistes - Les procédures stockées - Les fonctions UDF - La journalisation
Atomisez...
LA TRANSACTION : Validez avec COMMIT - Annulez avec ROLLBACK - Connaissez les anomalies transactionnelles - Gérez l'isolation de vos transactions
Évitez
LES ERREURS : Nom des objets - Terminologie - NULL - Sensibilité à la casse - Le dernier - Position - Format de date - Dédoublonnage - Cosmétique - Insertions multiples
Exercez
REQUÊTES : Des exercices classiques - Un MCD, un MPD - Des tables sous forme SQL DDL - Un jeu d'essais - Des requêtes à élaborer - Les solutions et corections - Vos commentaires en sus !
Perfectionnez
REQUÊTES : Des puzzles en SQL - Une table sous forme SQL DDL - Un jeu d'essais - Une requête à élaborer - La difficulté noté de 1 à 5 - Les solutions à m'envoyer... - Une correction personnalisée

 

SQL - Le nouveau livre SQL

de Frédéric Brouard, Christian Soutou & Rudi Bruchez

Date de publication : 31/07/2010 , Date de mise a jour : 14/07/2010

Le langage SQL de A à Z pour le débutant comme pour le pro...
Plutôt que d'apprendre le dialecte SQL de chaque éditeur (en fait un patois propre aux différents SGBDR : PL/SQL d'Oracle, Transact SQL de SQL Server, PG PL/SQL de PostGreSQL...) ce site vous fait découvrir la norme SQL c'est à dire la quintescense du langage !
Le professionnel y trouvera de nombreux articles spécialisés et un blog dans lequel l'auteur propose de très nombreuses aides.

SQLpro, c'est aussi un spécialiste SQL à votre service :
expertise, audit, conseil, assistance, formation,analyse, modélisation & développement...

Copyright © 2003 Frédéric Brouard. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD.