Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parJulienne Rousseau Modifié depuis plus de 10 années
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 l’algèbre relationnelle 4. Syntaxe des opérations SQL et requêtes
3
IV. Syntaxe des opérations en SQL : requêtes
Opérations de l’algè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( 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 ;
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 : des opérateurs de comparaison : =, >, <, <=, >=, <> des opérateurs logiques : AND, OR, NOT 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???";
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 ;
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) ;
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 ;
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 ; SELECT n°enseignant, NomEnseignant FROM E1 WHERE n°enseignant IN (SELECT n°enseignant FROM E2) ;
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 ; SELECT n°enseignant, NomEnseignant FROM E1 WHERE n°enseignant NOT IN (SELECT n°enseignant FROM E2) ;
24
Opération PRODUIT CARTESIEN
SELECT * FROM table1, table2 ; Exemple : SELECT * FROM Etudiants, Epreuves ;
26
V. Application sur un projet : tables, liens, schéma relationnel, requêtes en SQL…
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.