La norme SQL 2, les différents dialectes SQL des principaux SGBDR. Un comparatif de toutes les fonctions, du SQL de : Oracle, Sybase, MS SQL Server, MySQL, PostGreSQL, Access et Paradox. Un chapitre de plus de 120 pages sur de multiples exemples de SELECT forgé par les expériences et demande des internautes ! Par l'auteur du forum et du site SQLpro.
Éditeur CampusPress
Collection
Référence Développement
Un manuel de référence
basé sur une approche pragmatique pour découvrir le SQL
- Ce langage d’interrogation
adapté aux bases de données relationnelles est le plus
utilisé au monde
- La syntaxe est très simple et extrêmement
puissante
- Ce livre s’adresse aux débutants comme aux
professionnels
- Il comporte plus de 460 exemples didactiques
SQL (Structured Query Langage) est un langage de
requêtes pour bases de données relationnelles
développé par IBM. Le SQL a été repris par
un grand nombre d’applications reposant sur une architecture
client/serveur. Oracle, Sybase, Microsoft,
OBJECTIFS :
Connaître le SQL et pouvoir l’inclure au sein
d’une application Web
LECTORAT :
Débutant/Avancé
REFERENCE :
ISBN : 2-7440-1184-3
EAN : 9
782744 011849
Prix :
29.99 E (196.73 FF ttc)
Nombre de pages :
510
Parution :
Septembre 2001
EN BREF, CE QUE CONTIENT LE LIVRE...
Spécialiste en la matière, l’auteur nous
fait part aujourd’hui de son expérience forgée
auprès des nombreux utilisateurs confrontés aux
problèmes que peut poser le SQL, des plus
élémentaires au plus complexes. Résolument
pratique, cet ouvrage répondra à toutes vos questions que
vous soyez un informaticien professionnel ou débutant. Facile
à lire, il n’en demeure pas moins intransigeant avec un SQL
normatif, en prenant en compte toutes ses spécificités.
Vous étudierez les bases de données sur les bases du SQL
2, et ferez des comparaisons avec les grands acteurs actuels de
l'univers des SGBDR : Access, MySQL, Oracle et SQL Server notamment.
LES TÊTES DE CHAPITRE
Les bases de données
Présentation
de SQL
Requêtes
d'extraction monotabulaire
Requêtes
d'extraction multi-tabulaires
Création
des éléments d'une base de données
Mise
à jour des données et gestion des droits d'accès
Programmation
des bases de données
Quelques
requêtes remarquables
L'avenir
du SQL (SQL 3, XML, XQL)
Fonctions et structures SQL comparées pour
différents SGBDR
Bibliographie et webographie
Table des matières
complète
AVANT-PROPOS
1 - LES BASES DE DONNÉES
HISTORIQUE
VOCABULAIRE DE BASE
BASE DE DONNÉES RELATIONNELLE
LE TRANSACTIONNEL
LE CLIENT SERVEUR
SGBDR "fichier"
SGBDR "Client/Serveur"
Différence fondamentales entre les deux
GESTION DE LA CONCURRENCE
Verrouillage pessimiste
Verrouillage optimiste
Discussion sur ces différents modes de verrouillage
SPÉCIFICITÉ DU CLIENT / SERVEUR
Les déclencheurs (ou triggers)
Les procédures stockées
LA JOURNALISATION, MÉCANISME DE BASE DU TRANSACTIONNEL
2 - PRÉSENTATION DE SQL
SQL... UNE HISTOIRE !
SQL, UN LANGAGE ?
SUBDIVISIONS DU SQL
DDL : "Data Definition Language"
DML : "Data Manipulation Language"
DCL : "Data Control Language"
TCL : "Transaction Control Language"
SQL dynamique ou programmation SQL
TYPES DE DONNÉES
Types alphanumériques
Types numériques
Entiers
Réels
Types temporels
Données temporelles (DATE, TIME et TIMESTAMP)
Type INTERVAL
Type chaîne de bits
Types "BLOBS"
Autres types courants, hors norme SQL 2
Création de "nouveaux types" (DOMAINE)
REMARQUES PRÉLIMINAIRES SUR L'ÉCRITURE DES REQUÊTES
LA BASE EXEMPLE
Modèle conceptuel de données
Modèle physique des données (MPD)
3 - REQUÊTES D'EXTRACTION MONOTABULAIRE
ELÉMENTS DE BASE DE LA SYNTAXE SQL
Convention d'écriture :
LE SIMPLE (?) SELECT
L'opérateur *
L'opérateur DISTINCT (ou ALL)
Opérateur AS
Surnom
La clause WHERE
Opérateurs de comparaison
Mots réservés
CLAUSE ORDER BY
EN RÉSUMÉ
FONCTION DE TRAITEMENT DES CHAÎNES DE CARACTÈRES
Opérateur de concaténation (||)
Recherche partielle (LIKE)
Mise en majuscule / Minuscule (LOWER, UPPER)
Supprimer les blancs, ou tout autre caractères (TRIM)
Extraire une sous-chaîne (SUBSTRING)
Position d'une sous chaîne dans une chaîne (POSITION)
Longueur d'une chaîne de caractères (CHARACTER_LENGTH)
AUTRES FONCTIONS COURANTES DE TRAITEMENT DES CHAÎNES DE
CARACTÈRES
Correspondance phonétique (SOUNDEX)
Remplissage (LPAD, RPAD, SPACE)
Initiales en majuscule (INITCAP)
Inversion d'une chaîne de caractères (REVERSE, FLIP)
Remplacement (REPLACE)
Conversion de caractères (CHAR, ASCII, NCHAR, UNICODE)
Conversion (CONVERT, TRANSLATE, COLLATE)
FONCTION DE TRAITEMENT NUMÉRIQUES
Opérateurs dyadiques
Fonctions mathématiques
FONCTIONS DE TRAITEMENT DES DONNÉES TEMPORELLES
Date et heure courante (CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP)
Partie de date (EXTRACT)
Prédicat et opérateur OVERLAPS
Ajout et retrait d'intervalle à une valeur temporelle
Autres fonctions temporelles courantes
FONCTIONS COMMUNES AUX DIFFÉRENTS TYPES DE DONNÉES
Longueurs des données (BIT_LENGTH, OCTET_LENGTH)
Transtypage (CAST)
Traitement de liste (GREATEST, LEAST, DECODE)
FONCTIONS D'AGRÉGATION STATISTIQUES
Doublons dans les comptage statistiques
LA CLAUSE GROUP BY
OPÉRATEURS IN ET BETWEEN
Opérateur IN
Opérateur BETWEEN
VALEURS BOOLÉENNES, NÉGATION, "NULL" ET LEURS TRAITEMENTS
Négation (NOT)
Valeurs 'NULL'
Opérateurs de traitement des valeurs 'NULL'
BRANCHEMENTS DANS LE SQL (CASE)
PROBLÈMES DE LOGIQUE EN SQL
CONSTRUCTEUR DE LIGNES VALUÉES
VUE D'ENSEMBLE DES OPÉRATEURS DE LA CLAUSE WHERE
4 - REQUÊTES D'EXTRACTION MULTI-TABULAIRES
LES JOINTURES
Retour sur les clauses WHERE et FROM
DIFFÉRENTS TYPE DE JOINTURES
Opérateur de jointure naturelle
Équi-jointure
Non équi-jointure
Auto jointure
Jointures externes et hypothèse du monde clos
Différence entre jointure externe et jointure interne
Syntaxe normalisée des jointures externes
Jointure croisée
Jointure d'union
RÉCAPITULATIF DES JOINTURES ET DE LEUR SYNTAXE NORMALISÉE
LA CLAUSE HAVING
LES SOUS REQUÊTES
Emplacement d'une sous requête au sein d'un ordre SELECT
Sous requêtes ramenant une seule valeur
Sous requêtes ramenant une seule colonne contenant plusieurs
valeurs.
Sous requêtes ramenant des valeurs (ensemble de données
non vide)
ou rien du tout (ensemble vide)
Sous requêtes ramenant une table quelconque
Sous requêtes remplaçant une constante
Sous requêtes en tant que constante dans
l'énumération des colonnes
Sous requêtes en tant que constante dans la clause WHERE
Sous requêtes remplaçant plusieurs constantes
simultanément
Sous requête remplaçant une liste
Sous requêtes remplaçant une table
Utilisation de l'opérateurs MATCH
Sous requêtes avec les opérateurs ALL, ANY (ou SOME)
Sous requête binaire (clause EXISTS ou UNIQUE)
Sous requête corrélée
OPÉRATEURS ENSEMBLISTES : UNION, INTERSECT, EXCEPT
Union (UNION)
Intersection (INTERSECT)
Différence (EXCEPT)
Quelques remarques sur les opérateurs ensemblistes
5 - CRÉATION DES ÉLÉMENTS D'UNE
BASE DE DONNÉES
NOM DES OBJETS D'UNE BASE DE DONNÉES
CRÉATION DE LA BASE DE DONNÉES
CRÉATION DES TABLES
Contraintes de colonnes
Donnée obligatoire (NOT NULL)
Valeur par défaut (DEFAULT)
Colonne clef (PRIMARY KEY)
Valeur unique (UNIQUE)
Contrôle de validité (CHECK)
Clef étrangère (REFERENCES)
LES DOMAINES (DOMAIN)
CONTRAINTES DE TABLE (CONSTRAINT)
Clef de la table (PRIMARY KEY)
Unicité de données (UNIQUE)
Contrôle de validité multicolonne (CHECK)
Référence de clef étrangère (FOREIGN KEY)
INTÉGRITÉ RÉFÉRENTIELLE
LES ASSERTIONS
MODIFICATION ET SUPPRESSION DES TABLES (ALTER TABLE, DROP TABLE)
LES INDEX
LES VUES
Définition d'une vue
Vues modifiables
GÉNÉRATION D'UNE BASE DE DONNÉES
SCRIPT DE CRÉATION DE LA BASE
Script d'indexation
Script d'alimentation des données de base
Script de modification évolutive de la base de données
Outils de modélisation (User Case Design)
6 - MISE À JOUR DES DONNÉES ET GESTION
DES DROITS D'ACCÈS
INSERTION DE NOUVELLES LIGNES (INSERT)
Insertion d'une seule ligne
Insertion de plusieurs lignes simultanément
MODIFICATION DE LA VALEURS DES DONNÉES (UPDATE)
SUPPRESSION DE LIGNES (DELETE)
GESTION DES TRANSACTIONS (COMMIT, ROLLBACK , SET TRANSACTION)
Anomalies transactionnelles
Pertes de mise à jour
Références fantômes
Lectures impropres (ou inconsistantes)
Lectures non reproductibles
Isolation des transactions (ou la solitude du processus de fond !)
Le problème du verrou mortel (deadlock)
UTILISATEURS, BASE DE DONNÉES ET CONTRÔLE D'ACCÈS
CONFIDENTIALITÉ ET SÉCURITÉ D'ACCÈS AUX
DONNÉES
BASE DE DONNÉES ET MÉTA DONNÉES
7 - PROGRAMMATION DES BASES DE DONNÉES
SQL INTÉGRÉ
Les curseurs
Valeur de retour d'un ordre SQL
Bornage des ordres SQL au sein du langage hôte
Exemple de SQL intégré
LES MODULES PERSISTANTS (PSM)
LES DÉCLENCHEURS (TRIGGER)
DE L'UTILITÉ DES PROCÉDURES STOCKÉES
LES FONCTIONS UTILISATEUR (UDF)
QUELQUES CONSEILS
Utilisation des déclencheurs
8 - QUELQUES REQUÊTES REMARQUABLES
RÉTABLIR L'ORDRE ...
Énumération des lignes d'une table réponse
Cumul
Récupérer les n premiers
Récupérer les p % premiers
Sélection de n en n
Récupérer les trous
Créer des doublons !
GÉRER LE DÉSORDRE !
Des résultats anarchiques
Un élément tiré au sort
Générateurs de hasard
DOUBLONS ET ORPHELINS
Débusquer les doublons
Rechercher les "quasi" doublons
Supprimer les orphelins
IMBRICATION D'AGGRÉGATION
Obtenir le MAX de SUM ou de COUNT partiels, première version
Une version plus élégante
Des versions plus spécifiques pour certains SGBDR
HISTORISATION ET GESTION DE TRANCHES
Recherche de l'état de l'adhérent N à la date D
Recherche de l'état de tous les adhérents à la
date D
La recherche de la tranche la plus proche
Recherche de la tranche la plus fine
UNE COLONNE... PLUSIEURS DONNÉES !
La solution : des valeurs binaires...
Extraction dans ce modèle de données
Modification des données
Encore plus simple avec des vues !
En guise de conclusion
RECHERCHE DE CONTIGUÏTÉ
RECHERCHES PARTIELLES DU PLUS FIN AU PLUS GROSSIER
PÉRIODICITÉ ET PLANIFICATION
PROBLÈME DE PLANNING, D'HORAIRES DE DURÉE ET D'HEURE
D'OUVERTURE..
LA DIVISION RELATIONNELLE
Définition du problème
Essai primaire
Contre- exemple 1
Contre- exemple 2
Contre exemple 3
Raffinements
Une solution
Une bonne solution
Une solution audacieuse
Une solution étrange
Une solution exemplaire
Un pas de plus
Conclusion
GESTION D'ARBRES EN SQL
Représentation classique d'une arborescense
Représentation intervallaire d'une arborescence
Rechercher toutes les feuilles
Toutes les feuilles sous un élément de
référence
Rechercher tous les noeuds
Tous les noeuds sous un élément de référence
Tous les éléments dépendant d'un
élément de référence (sous arbre)
Tous les éléments indépendants d'un
élément de référence
(complément au sous arbre)
Tous les pères d'un élément de
référence
Recherche de la racine de l'arbre
Compter les feuilles
Compter les noeuds
Insertion d'un élément dans cette arborescence
Suppression d'un élément de cette arborescence
Suppression d'un sous arbre
La cerise sur le gâteau !
Transformation en vue d'un arbre à profondeur constante
Indentation hiérarchique des éléments
LINÉRISATION DES RÉSULTATS
Des données de colonnes remises en ligne
Des données de ligne traitées comme une colonne
9 - L'AVENIR DU SQL (SQL 3, XML, XQL)
UNE BRÈVE PRÉSENTATION DE SQL 3
Déclencheurs (Triggers)
Extension du langage
Types abstraits
et encore...
XML, XQL ET LES BASES DE DONNÉES
eXtended Markup Language (XML)
eXtended Query Language (XQL)
ANNEXES
FONCTIONS ET STRUCTURES SQL COMPARÉES POUR
DIFFÉRENTS SGBDR
BIBLIOGRAPHIE ET WEBOGRAPHIE
BIBLIOGRAPHIE SÉLECTIVE
WEBOGRAPHIE SÉLECTIVE
En français
En anglais