La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Cours N°2 Base de Données & Langage SQL Sahbi SIDHOM, ICom Lyon 2 Promo. DESS IM 02/03.

Présentations similaires


Présentation au sujet: "Cours N°2 Base de Données & Langage SQL Sahbi SIDHOM, ICom Lyon 2 Promo. DESS IM 02/03."— Transcription de la présentation:

1 Cours N°2 Base de Données & Langage SQL Sahbi SIDHOM, ICom Lyon 2 Promo. DESS IM 02/03

2 Plan du cours : 1. Modèle Relationnel et SQL 2. Introduction au modèle relationnel 3. Opérations propres de lalgèbre relationnelle 4. Syntaxe des opérations SQL et requêtes

3 IV. Syntaxe des opérations en SQL : requêtes Opérations de lalgèbre relationnelle – PROJECTION ( ) – RESTRICTION ou « SELECTION » ( ) – JOINTURE ( ) – DIVISION ( ÷ ) Opérations ensemblistes – UNION ( ) – INTERSECTION ( ) – DIFFERENCE ( ) – PRODUIT CARTESIEN ( )

4 SQL (Structured Query Language) Le langage SQL n'est abordé que dans le cadre des opérations évoquées ci- dessus. Seule l'instruction SELECT et ses multiples aspects sont donc présentés. La rédaction de requêtes (combinaison d'opérateurs) est illustrée par des exercices concrets.

5 Instruction CREATE TABLE Syntaxe : CREATE [TEMPORARY] TABLE table ( champ1 type [(taille)] [NOT NULL] [WITH COMPRESSION | WITH COMP] [index1] [, champ2 type [(taille)] [NOT NULL] [index2] [,...]] [ PRIMARY KEY] [, CONSTRAINT indexmultichamp [,...]])

6 CREATE TABLE se compose des éléments suivants : table : Nom de la table à créer. champ1, champ2 : Nom du ou des champs à créer dans la nouvelle table. Vous devez créer au moins un champ. type : Type de données du champ dans la nouvelle table. taille : Taille du champ en caractères (pour les données de type Texte ou Binaire uniquement). index1, index2 : Une clause CONSTRAINT définissant un index monochamp. Pour plus d'informations sur la façon de le créer. indexmultichamp : Une clause CONSTRAINT définissant un index multichamp. Clause CONSTRAINT : Une contrainte est identique à un index mais elle peut être également utilisée pour établir une relation avec une autre table. L'attribut WITH COMPRESSION a été ajouté pour les colonnes CHARACTER en raison de la modification apportée au format de représentation des caractères Unicode.

7 Exemples avec CREATE TABLE CREATE TABLE ThisTable(FirstName CHAR, LastName CHAR); CREATE TABLE MyTable( FirstName CHAR, LastName CHAR, [DateOfBirth] DATETIME, CONSTRAINT MyTableConstraint UNIQUE(FirstName, LastName, [DateOfBirth])); CREATE TABLE NewTable( FirstName CHAR, LastName CHAR, SSN INTEGER CONSTRAINT MyFieldConstraint PRIMARY KEY);

8 Syntaxe simplifiée de l'instruction SELECT SELECT [ * | DISTINCT ] att1 [, att2, att3,... ] FROM Table1 [, Table2, Table3,...] [ WHERE conditions de sélection et/ou de jointure ] [ GROUP BY att1 [, att2,...] [ HAVING conditions de sélection ]] [ ORDER BY att1 [ ASC | DESC ] [, att2 [ ASC | DESC ],... ] ; [ ] : optionnel/ * : tout/ | : ou/, : et

9 Opération PROJECTION SELECT DISTINCT liste_d'attributs FROM table ; SELECT liste_d'attributs FROM table ; Remarque : La clause DISTINCT permet d'éliminer les doublons. Exemples : SELECT DISTINCT Espèce FROM Champignons ; SELECT DISTINCT Espèce, Catégorie FROM Champignons ;

10

11 Opération RESTRICTION SELECT * FROM table WHERE condition ; Remarque : La condition de sélection exprimée derrière la clause WHERE peut être spécifiée à l'aide : 1.des opérateurs de comparaison : =, >, =, <> 2.des opérateurs logiques : AND, OR, NOT 3.des opérateurs : IN, BETWEEN, LIKE Exemple : SELECT * FROM Champignons WHERE Catégorie="Sec" ;

12 Autres exemples : Soit la table ETUDIANT(N°Etudiant, Nom, Age, CodePostal, Ville) SELECT * FROM ETUDIANT WHERE Age IN (19, 20, 21, 22, 23) ; SELECT * FROM ETUDIANT WHERE Age BETWEEN 19 AND 23 ; SELECT * FROM ETUDIANT WHERE CodePostal LIKE "42*"; SELECT * FROM ETUDIANT WHERE CodePostal LIKE "42???";

13

14 Opération JOINTURE (équijointure et autres) SELECT * FROM table1, table2, table3,... WHERE table1.attribut1 = table2.attribut1 AND table2.attribut2 = table3.attribut2 AND... ; Remarques : En SQL, il est possible d'enchaîner plus jointures dans la même instruction SELECT. Des jointures plus complexes par l'usage de la condition de comparaison (, =, <>). Exemple : SELECT * FROM Produit, Détail_Commande WHERE Produit.CodePrd=Détail_Commande.CodePrd ;

15

16 Opération DIVISION Il n'existe pas en SQL d'équivalent direct à la division. Cependant il est toujours possible de trouver une autre solution, notamment par l'intermédiaire des opérations de calcul (COUNT) et de regroupement (GROUP BY). Fonction COUNT : Calcule le nombre d'enregistrements renvoyés par une requête. Exemple : on souhaite trouver les athlètes qui participent à toutes les épreuves, et en SQL : SELECT Athlète FROM PARTICIPER GROUP BY Athlète HAVING COUNT(*) = ( SELECT COUNT(*) FROM EPREUVE) ;

17

18 Opération UNION SELECT liste d'attributs FROM table1 UNION SELECT liste d'attributs FROM table 2 ; Exemple : SELECT n°enseignant, NomEnseignant FROM E1 UNION SELECT n°enseignant, NomEnseignant FROM E2 ;

19

20 Opération INTERSECTION SELECT attribut1, attribut2,... FROM table1 INTERSECT SELECT attribut1, attribut2,... FROM table2 ; ou SELECT attribut1, attribut2,... FROM table1 WHERE attribut1 IN (SELECT attribut1 FROM table2 ) ; Exemple : SELECT n°enseignant, NomEnseignant FROM E1 INTERSECT SELECT n°enseignant, NomEnseignant FROM E2 ; ou SELECT n°enseignant, NomEnseignant FROM E1 WHERE n°enseignant IN (SELECT n°enseignant FROM E2) ;

21

22 Opération DIFFERENCE SELECT attribut1, attribut2,... FROM table1 EXCEPT SELECT attribut1, attribut2,... FROM table2 ; ou SELECT attribut1, attribut2,... FROM table1 WHERE attribut1 NOT IN (SELECT attribut1 FROM table2); Exemple : SELECT n°enseignant, NomEnseignant FROM E1 EXCEPT SELECT n°enseignant, NomEnseignant FROM E2 ; ou SELECT n°enseignant, NomEnseignant FROM E1 WHERE n°enseignant NOT IN (SELECT n°enseignant FROM E2) ;

23

24 Opération PRODUIT CARTESIEN SELECT * FROM table1, table2 ; Exemple : SELECT * FROM Etudiants, Epreuves ;

25

26 V. Application sur un projet : tables, liens, schéma relationnel, requêtes en SQL…


Télécharger ppt "Cours N°2 Base de Données & Langage SQL Sahbi SIDHOM, ICom Lyon 2 Promo. DESS IM 02/03."

Présentations similaires


Annonces Google