of 31/31

Cours3 gdm sql

  • View
    200

  • Download
    1

Embed Size (px)

Text of Cours3 gdm sql

  • 1. Introduction Les serveurs de donnes relationnels prsentent aujourdhui une interface externe sous forme dun langage de recherche et mise jour, permettant de spcifier les ensembles de donnes slectionner ou mettre jour partir de proprits des valeurs, sans dire comment retrouver les donnes. Plusieurs langages assertionnels permettant de manipuler des bases de donnes relationnelles ont t proposs, en particulier QUEL [Zook77], QBE [Zloof77] et SQL [IBM82, IBM87]. le langage SQL est normalis [ISO89, ISO92] et constitue le standard daccs aux bases de donnes relationnelles

2. Introduction SQL = Structured Query Language Langage de requtes standard pour linterrogation de bases de donnes relationnelles (SQL-1 en 1989, puis SQL-2 en 1992, et enfin SQL-3 ) Dvelopp lorigine pour le protype de SGBD recherche dIBM SYSTEM/R, qui a dbouch sur les produits commerciaux SQL/DS et DB-2 Mlange dalgbre relationnelle et de calcul relationnel variables n-uplets 3. Introduction De manire gnrale, SQL comme les autres langages qui ont t proposs (e.g., QUEL) utilisent tous des critres de recherche (encore appels qualifications) SQL: construits partir de la logique des prdicats du premier ordre. Ils comportent: 4. LDD: Langage de Dfinition de Donnes: dfinir le schma de la base de donnes La dfinition dun schma logique comprend essentiellement deux parties : 1) dune part la description des tables et de leur contenu, 2) dautre part les contraintes qui portent sur les donnes de la base. La spcification des contraintes est souvent place au second plan bien quelle soit en fait trs importante : elle permet dassurer, au niveau de la base des contrles sur lintgrit des donnes qui simposent toutes les applications accdant cette base. 3) Un dernier aspect de la dfinition dun schma, est la description de la reprsentation physique. 5. LMD :Langage de Manipulation de Donnes: interroger et modifier les donnes de la base Langage de contrle daccs aux donnes. 6. CRATION DE TABLE CREATION SCHEMA CREATE SCHEMA AUTHORIZATION nom-schema create table nom_relation (nom_attribut_1 type_attribut_1, ) CREATE TABLE (+) 7. CRATION DE TABLES Un lment de table est soit une dfinition de colonne, soit une dfinition de contrainte, comme suit : ::= | 8. Une colonne est dfinie par un nom et un type de donnes. Une valeur par dfaut peut tre prcise. Une contrainte de colonne peut aussi tre dfinie ce niveau. On obtient donc la syntaxe suivante : : := [] [] 9. Type de donnes 10. EXEMPLE CREATE TABLE Internaute (email VARCHAR (50) NOT NULL, nom VARCHAR (20) NOT NULL, prenom VARCHAR (20), motDePasse VARCHAR (60) NOT NULL, AnneeNaiss DECIMAL (4)) CREATE TABLE Cinma (nom VARCHAR (50) NOT NULL, adresse VARCHAR (50) DEFAULT Inconnue) 11. LDD EXPRESSION DES CONTRAINTES DINTGRIT 1)Les contraintes de colonnes permettent de spcifier diffrentes contraintes dintgrit valeur nulle impossible (syntaxe NOT NULL), unicit de lattribut (syntaxe UNIQUE ou PRIMARY KEY), contrainte rfrentielle syntaxe REFERENCES [()] contrainte gnrale (syntaxe CHECK )spcifier des plages ou des listes de valeurs possibles 12. 1.Un attribut doit toujours avoir une valeur. Cest la contrainte NOT NULL vue prcdemment. 2. Un attribut (ou un ensemble dattributs) constitue(nt) la cl de la relation. 3. Un attribut dans une table est lie la cl primaire dune autre table (intgrit rfrentielle). 4. La valeur dun attribut doit tre unique au sein de la relation. 5. Enfin toute rgle sappliquant la valeur dun attribut (min et max par exemple). LDD EXPRESSION DES CONTRAINTES DINTGRIT 13. Cl de la table (1) CREATE TABLE Internaute (email VARCHAR (50) NOT NULL, nom VARCHAR (20) NOT NULL, prenom VARCHAR (20), motDePasse VARCHAR (60) NOT NULL, anneeNaiss INTEGER, PRIMARY KEY (email)) 14. 1 CREATE TABLE Notation (idFilm INTEGER NOT NULL, email VARCHAR (50) NOT NULL, note INTEGER DEFAULT 0, PRIMARY KEY (titre, email)) 2 CREATE TABLE Artiste(id INTEGER NOT NULL, nom VARCHAR (30) NOT NULL, prenom VARCHAR (30) NOT NULL, anneeNaiss INTEGER, PRIMARY KEY (id), UNIQUE (nom, prenom)); Cl de la table (2) 15. Cls trangres CREATE TABLE Film (idFilm INTEGER NOT NULL, titre VARCHAR (50) NOT NULL, annee INTEGER NOT NULL, idMES INTEGER, codePays INTEGER, PRIMARY KEY (idFilm), FOREIGN KEY (idMES) REFERENCES Artiste, FOREIGN KEY (codePays) REFERENCES Pays); 16. MODIFICATION dune table ALTER TABLE nomTable ACTION description ACTION peut tre principalement ADD, MODIFY, DROP ou RENAME, et description est la commande de modification associe ACTION. 17. Modification des attributs On peut ajouter un attribut region la table Internaute avec la commande : ALTER TABLE Internaute ADD region VARCHAR(10); On peut modifier La taille de region ALTER TABLE Internaute MODIFY region VARCHAR(30) NOT NULL; ALTER TABLE Internaute ALTER region SET DEFAULT BLIDA; ALTER TABLE Internaute DROP region; //dtruire 18. LMD la recherche (mot cl SELECT ) permet de retrouver des tuples ou parties de tuples vrifiant la qualification cite en arguments ; linsertion (mot cl INSERT ) permet dajouter des tuples dans une relation ; les tuples peuvent tre fournis par lutilisateur ou construits partir de donnes existant dj dans la base ; la suppression (mot cl DELETE ) permet de supprimer dune relation les tuples vrifiant la qualification cite en argument ; la modification (mot cl UPDATE )permet de mettre jour les tuples vrifiant la qualification cite en argument laide de nouvelles valeurs dattributs ou de rsultats doprations arithmtiques appliques aux 19. SELECTION SELECT [DISTINCT] *FROM table_1 [synonyme_1], table_2 [synonyme_1], [WHERE prdicat_1AND [ou OR] prdicat_2 20. INSERTION 21. MODIFICATION 22. SUPPRESSION 23. Les critres de slection Comparaison une valeur donne. Pour chaque enregistrement, la valeur d'un champ donn est compare une valeur fixe. Cette valeur fixe est gnralement une valeur numrique, une date ou un texte. Voici les oprateurs de comparaison: = "est gal" > "strictement suprieur" < "strictement infrieur" >= "suprieur ou gal" =#1/1/14#; 27. Comparaison un filtre % reprsente n'importe quelle squence de 0 ou plusieurs caractres; _ reprsente un seul caractre quelconque. Exemple: Pour rechercher des personnes dont le nom est ABDrahime' ou ABDrahmene' ou 'SCHMIT' etc. on dfinit par exemple le filtre suivant : ABD%' Exemple: Le filtre 'BL__' slectionne par exemple les valeurs 'BLEU' ou 'BLUE' mais pas 'BLANC' Les filtres sont utiliss ensemble avec le mot rserv LIKE. Voici la syntaxe: . . . WHERE LIKE 28. Afficher le nom et le prnom des employs dont le prnom contient un trait d'union (p.ex. MED-LAMINE) SELECT fldNom, fldPrnom FROM tblEmploys WHERE fldPrnom LIKE '%-%'; 2. Afficher le nom, le prnom et l'ge des employs dont le nom commence par 'W', est compos de 5 lettres et se termine par 'R' SELECT fldNom, fldPrnom, fldAge FROM tblEmploys WHERE fldNom LIKE 'W___R'; 29. Les oprateurs logiques Il existe 3 oprateurs logiques: 1. NOT (Ngation logique) 2. AND (Et logique) 3. OR (Ou logique) 30. Afficher le prnom et le nom de tous les employs qui ne travaillent pas dans le service "Marketing" SELECT fldPrnom, fldNom FROM tblEmploys WHERE NOT fldService='Marketing'; Formulez une requte qui affiche exactement le mme rsultat, sans utiliser l'oprateur NOT. SELECT fldPrnom, fldNom FROM tblEmploys WHERE fldService'Marketing';