Extrait du cours langages SQL complet
Historique
-1970 IBM => System-R, a implanté le modèle relationnel au travers du langage SEQUEL (Stuctured English as QUEry Language), rebaptisé par la suite SQL (Structured Query Language).
-1979 Relational Software, Inc (Oracle corp.) : première version commerciale
-1986 recommandation AINSI
-ISO/CEI 9075:1987 => SQL1 : compromis entre constructeurs
-ISO/CEI 9075:1992 => SQL2 : entry – transitional – intermediate – full level
-ISO/CEI 9075:1999 => SQL3 : concepts objets, collections, entrepôts de données, séries temporelles, accès à des sources non SQL, réplication des données, etc..
Caractéristiques
-Depuis 1986
-N’est pas complet : Impedance mismatch
-Peut être embedded : interfacé avec des langages de 3ème génération (c, cobol ..) ou plus (c++, java, c# ..)
-Langage déclaratif : décrire les résultats attendus sans se soucier de la manière de les obtenir
Utilisation
-Programme => middleware => sgbd
-Programme + embedded sql => sgbd
-Programme => sgbd + stored proc, triggers ..
……..
Index
-Un index ralentit les rafraîchissements de la base (conséquence de la mise à jour de l’arbre ou des bitmaps). En revanche il accélère les accès ;
-Il est conseillé de créer des index sur des colonnes (majoritairement des clés étrangères) utilisées dans les clauses de jointures;
-Les index bitmaps sont conseillés quand il y a peu de valeurs distinctes de la (ou des) colonne(s) à indexer. Dans le cas inverse, utilisez un index B-tree.
-Les index sont pénalisants lorsqu’ils sont définis sur des colonnes très souvent modifiées ou si la table contient peu de lignes.
Modifications structurelles
-DROP TABLE [schéma.]nomTable [CASCADE CONSTRAINTS];
-RENAME ancienNom TO nouveauNom;
-ALTER TABLE ancienNom RENAME TO nouveauNom;
-ALTER TABLE Pilote ADD (compa VARCHAR2(4) DEFAULT ‘AF’,ville VARCHAR2(30) DEFAULT ‘Paris’ NOT NULL);
-ALTER TABLE Pilote RENAME COLUMN ville TO adresse;
-ALTER TABLE Pilote MODIFY compa CHAR(4) NOT NULL;
-ALTER TABLE Pilote DROP COLUMN adresse;
-ALTER TABLE Pilote SET UNUSED COLUMN compa;
ALTER TABLE Pilote DROP UNUSED COLUMNS;
Modification comportementales
-ALTER TABLE [schéma.]nomTable
ADD [CONSTRAINT nomContrainte] typeContrainte;
-ALTER TABLE [schéma.]nomTable DROP CONSTRAINT nomContrainte [CASCADE];
-ALTER TABLE [schéma.]nomTable
DISABLE CONSTRAINT nomContrainte
[CASCADE] [ { KEEP | DROP } INDEX ] ;
-ALTER TABLE [schéma.]nomTable
ENABLE [ VALIDATE | NOVALIDATE ] CONSTRAINT nomContrainte
[USING INDEX ClauseIndex] [EXCEPTIONS INTO tableErreurs];
Modification comportementales
-ENABLE vérifie les mises à jour à venir (insertions et nouvelles modifications de la table) ;
-DISABLE autorise toute mise à jour ;
-VALIDATE vérifie que les données courantes de la table respectent la contrainte ;
-NOT DEFERRABLE INITIALLY IMMEDIATE.
-DEFERRABLE INITIALLY DEFERRED
-DEFERRABLE INITIALLY IMMEDIATE
-SET CONSTRAINT fk_Avion_comp_Compag DEFERRED;
-SET CONSTRAINTS ALL DEFERRED;
-ALTER SESSION SET CONSTRAINTS = { IMMEDIATE | DEFERRED | DEFAULT }
…………
Cours langages SQL complet (304.71 KB) (Cours PPT)