Documente Academic
Documente Profesional
Documente Cultură
Objectifs :
Savoir utiliser les bases de donnes travers un langage de manipulation offert par les SGBD Matriser les ordres SQL Matriser le langage de dfinition des donnes Matriser le langage de manipulation des donnes.
Plan du chapitre :
I. Introduction II. Le langage de dfinition des donnes (LDD) III. Le langage de manipulation de donnes (LMD)
I. Introduction
SQL est un langage de manipulation de bases de donnes mis au point dans les annes 70 par IBM. Cest le langage standard des SGBD relationnels. Il fournit aux utilisateurs les instructions ncessaires la dfinition et la manipulation des donnes. Les instructions du langage SQL se dcomposent en deux sous ensembles : Le langage de dfinition des donnes (LDD) qui permet la description (la cration) de la structure de la BD, la modification et la suppression dune table. Le langage de manipulation des donnes (LMD) qui permet la manipulation des tables constituant la BD cest dire la slection, la modification et la suppression d'enregistrements. Il existe un troisime sous ensemble pour des tables. Le langage de contrle des donnes qui permet la gestion des droits d'accs aux tables : Contrle des donnes : droits d'accs, validation des modifications.
L'intrt de SQL est que c'est un langage de manipulation de bases de donnes standard, vous pourrez l'utiliser sur n'importe quelle base de donnes, mme si, priori, vous ne connaissez pas son utilisation. Ainsi, avec SQL, vous pouvez grer une base de donnes Access, mais aussi Paradox, dBase, SQL Server, Oracle ou Informix par exemple (les bases de donnes les plus utilises). Le langage SQL a souvent t implment de faon diffrente. Les commandes de base sont toujours les mmes mais ont parfois des variantes ou des extensions.
REFERENCES Nom_de_table (attribut_cl_primaire)) ; Les types de donnes possibles : NUMBER(n) : nombre entier n chiffres. NUMBER(n,m) : Nombre rel n chiffres au total (virgule comprise) et m chiffres aprs la virgule. CHAR(n) : chane de caractres de taille n. (n est le nombre maximum de caractres autoriss dans le champ) VARCHAR(n) : chane de caractres de taille variable. DATE. Les contraintes dintgrit : NOT NULL autorise ou non que lattribut puisse tre vide. CONSTRAINT pour dclarer une contrainte. PRIMARY KEY signifie que lattribut est une cl primaire. FOREIGN KEY signifie que lattribut est une cl trangre REFERENCES pour indiquer le nom de la table dans laquelle cette cl est une cl primaire. Exemple : a) Crer la table Client dfinie par : (Nclt, Adrclt, Telclt, CAclt) Create table Client ( Nclt number(3), Adrclt varchar(60), Telclt number(8), CAclt number(6,3), Constraint PK_Client Primary Key (Nclt));
b) Puis crer la table Commande dfinie par : Commande(Ncde, Datecde, #Nclt) Create table Client ( Ncde number(3), Datecde date, Nclt nuber(3), Constraint PK_Commande Primary Key (Ncde),
1. Modification d une table : Foreign Key (Nclt) references Client (Nclt)); Constraint FK_Commande
ALTER TABLE permet trois actions, ces actions sont : - ADD Ajoute un champ une table ADD Nom_attribut type_attribut; - DROP Supprime un champ d'une table DROP Nom_attribut; - MODIFY Modifie les caractristiques d'un champ MODIFY Nom_attribut type_attribut;
Aprs l'action, on indique, entre parenthses, les spcifications du champ de la mme faon que pour la commande CREATE TABLE. On ne peut faire qu'une action la fois (ajout, suppression ou modification dans la mme commande). Exemple : Modifier la structure de la table Client est ce en ajoutant un nouvel attribut appel Prnomclt et en modifiant la taille de ladresse Client qui devient de taille 80. ALTER TABLE Client Add Prnomclt Varchar(15) ALTER TABLE Client Modify Adrclt varchar(80)
b. Insrer le client de code 101qui habite Tunis. Insert into client codc, ville values (101, Tunis)
Si des valeurs doivent tre insres dans tous les champs de l'enregistrement de la table, la liste des noms des champs n'a pas besoin d'tre explicitement indique dans la commande. Les valeurs des champs insrer doivent cependant apparatre dans le mme ordre que les noms des champs lors de la cration de la table, sans oublier un seul champ.
Pour supprimer tous les enregistrements d'une table, n'indiquez pas de clause WHERE : DELETE FROM table; Cette variante de la commande DELETE ne supprime pas la table, elle supprime seulement les enregistrements contenus dans cette table et laisse une table vide.
Attributs
conservs
dans
la
rponse
(projection sur les attributs A1,, An). FROM Table1, Table2, , Tablep [WHERE C1 and C2 and Cn] Tables concernes par la requte. Critres facultatifs de slection sur la valeur des occurrences des attributs. [ORDER BY Ai Sens] ; Critre facultatif de tri sur un des attributs de la rponse.
Critres de slection (cas simples) : < champ> <comprateur> <champ> < champ> <comprateur> valeur Critres de tri des rponses : ASC DESC Sens croisant Sens dcroissant
S'il y a plus d'un champ spcifi aprs SELECT, les champs doivent tre spars par des virgules. Les champs sont retourns dans l'ordre spcifi aprs la clause SELECT, et non pas dans l'ordre qu'ils ont t crs dans la table. Requte1: Donner la liste des NC et des dates de commandes.
Si on veut rcuprer tous les champs des enregistrements slectionns, la syntaxe est la suivante :
Lattribut DISTINCT :
Sert omettre dans les occurrences denregistrement de la rponse qui seraient en double. A loppos, lattribut ALL affiche toutes les rponses. Cest la valeur par dfaut lorsque lattribut nest pas spcifi. Requte3: Donner la liste des produits commands (Codp).
Les clauses SELECT et FROM doivent obligatoirement apparatre au dbut de chaque requte, on peut, ensuite, indiquer des critres de slection avec la clause WHERE : SELECT * FROM table WHERE condition; La clause WHERE :
Permet dintroduire une condition pour spcifier les lignes afficher. Requte4: Donner la liste des clients de Tunis (Codc et nom).
On peut utiliser les oprateurs suivants dans les conditions : =, , <, >, , Requte5: Donner la liste des commandes effectues par le client de code 8.(NC).
Oprateurs logiques :
Il est possible de combiner plusieurs conditions avec des oprateurs logiques : L'oprateur AND runit deux ou plusieurs conditions et slectionne un enregistrement seulement si cet enregistrement satisfait TOUTES les conditions listes. (C'est--dire que toutes les conditions spares par AND sont vraies). L'oprateur OR runit deux conditions mais slectionne un enregistrement si UNE des conditions listes est satisfaite. Lutilisation des instructions IS NULL et IS NOT NULL : dtection occurrence dun attribut vide IS NULL
IS NOT NULL dtection occurrence dun attribut non vide Requte8: Donner la liste des clients dont on ne connat pas la ville o il habite.
Lutilisation des instructions BETWEEN, IN, NOT IN et LIKE : Ces instructions permettent de spcifier les conditions de recherche. Clauses IN et BETWEEN:
Pour slectionner des enregistrements dont la valeur d'un champ peut tre comprise dans une liste ou entre deux valeurs, on utilise les clauses IN et BETWEEN. Requte9: Donner la liste des commandes passes au cours de cette anne.
Requte10: Donner la liste des produits dont la quantit en stock est comprise entre 100 et 200 units.
IN vrifie si une valeur dun attribut correspond lune des celles spcifies dans la liste.
Pour slectionner les produits dont le prix n'est pas dans cet intervalle : De la mme faon, NOT IN slectionne les enregistrements exclus de la liste spcifie aprs IN. Requte11: Donner la liste des clients qui n habitent pas Tunis, Djerba ou sfax.
La clause LIKE :
La clause LIKE permet de faire des recherches approximatives sur le contenu d'un champ laide de caractres de remplacement. Le caractre % reprsente nimporte quel nombre de caractres. Le caractre _ reprsente un seul caractre quelconque
Requte13: Donner la liste des clients dont le nom contient le mot hm.
SQL a cinq fonctions importantes : SUM, AVG, MAX, MIN et COUNT. On les appelle fonctions d'ensemble parce qu'elles rsument le rsultat d'une requte plutt que de renvoyer une liste d'enregistrements. Fonction SUM ( ) Signification Donne le total dun champ de tous les enregistrements
satisfaisant la condition de la requte. Le champ doit bien sur tre de type numrique. AVG ( ) Donne la moyenne dun champ de tous les enregistrements satisfaisant la condition de la requte. MAX ( ) Donne la valeur la plus leve dun champ de tous les enregistrements satisfaisant la condition de la requte. MIN ( ) Donne la valeur la plus petite dun champ de tous les enregistrements satisfaisant la condition de la requte. COUNT (*) Renvoie le nombre denregistrements satisfaisant la requte.
Syntaxe : SELECT fonction(Attribut) AS [Nom_chp_calcule] Requte14: Donner le nombre total des clients.
La clause ORDER BY : spcifie la liste dattributs sur lesquels laffichage doit tre tri (croissant ou dcroissant). Requte17: Donner la liste des commandes classes par date de commande.
Requte18: Classer par ordre dcroissant les prix unitaires des produits.
Regroupement denregistrements :
Effectuer les calculs sur des regroupements denregistrement, suivant un certain critre, plutt que sur lensemble des occurrences rsultat. Deux nouvelles clauses (facultatives) dans la requte SQL, placer entre la clause WHERE et la clause ORDER BY : [GROUP BY champ1, ..., champn] critres de groupement : Dfinition
des champs formant le groupement. Chaque agrgat sur lequel seffectuent les calculs
correspond lensemble des enregistrements prsentant les mmes occurrences du champs (champ1, ..., champn)
[HAVING
Condition]
critre de slection portant sur les regroupements et non pas sur les enregistrements isols.
Requte22: Donner le nombre des produits par commande pour les commandes ayant plus que 10 produits.
Requte23: Donner le nombre des produits par commande pour les commandes ayant plus que 10 produits et dont la quantit commande est suprieure ou gale 150 units.
Requte25: Donner les noms des clients qui ont pass des commandes en 2005 concernant les produits dont le prix unitaire est suprieur 10.