Initiation au langage SQL niveau 2 Morgane De Nicolo, Chloé Cornet, Charles Bén

Initiation au langage SQL niveau 2 Morgane De Nicolo, Chloé Cornet, Charles Bénier, Nicolas Pegdwendé Sawadogo, Harry Abogourin 26/10/2017 1 COURS SQL 2 Sommaire Introduction Les requêtes de mise à jour La gestion des privilèges Les sous requêtes Les jointures en sql La notion de TOP Pour aller plus loin … Bibliographie 26/10/2017 2 COURS SQL 2 Introduction - le cours de SQL 2 s’inscrit dans la suite du cours SQL 1 mais il traite cette fois-ci non pas les tables, mais les enregistrements - utilisation d’un langage spécifique à Access ◦Facilement accessible ◦Très intuitif pour débuter ◦Attention : Langage spécifique et fonctionnalités réduites 26/10/2017 3 COURS SQL 2 Les requêtes de mise à jour But : effectuer des transactions sur les enregistrements de la BDD INSERER UN ENREGISTREMENT DANS UNE TABLE Syntaxe SQL : INSERT INTO nom_table (nom_attribut) VALUES (liste_valeurs) 26/10/2017 4 COURS SQL 2 Les requêtes de mise à jour SUPPRIMER UN (DES) ENREGISTREMENT(S) D’UNE TABLE Cas 1 : Suppression de toutes les lignes Syntaxe SQL : DELETE FROM nom_table Cas 2 : Suppression conditionnelle Syntaxe SQL : DELETE FROM nom_table WHERE [condition] 26/10/2017 5 COURS SQL 2 Les requêtes de mise à jour MODIFIER UN (DES) ENREGISTREMENT(S) D’UNE TABLE Cas 1 : Mise à jour d’une colonne sans condition Syntaxe SQL : UPDATE nom_table SET colonne = valeur Cas 2 : Mise à jour d’une colonne avec filtrage Syntaxe SQL : UPDATE nom_table SET colonne = valeur WHERE [condition] 26/10/2017 6 COURS SQL 2 La gestion des privilèges en SQL But : Contrôler les droits et la création des utilisateurs + manipuler des objets (tables par exemple) OCTROYER DES DROITS D’ACCES A UNE BASE DE DONNEES Syntaxe SQL : GRANT privilèges ON table TO gratifié Exemple : GRANT SELECT ON MAGASIN TO DUPONT Donne l’autorisation à Dupont de lancer les ordres SQL SELECT sur la table Magasin 26/10/2017 7 COURS SQL 2 La gestion des privilèges en SQL REVOQUER (RETIRER) DES DROITS D’ACCES A UNE BASE DE DONNEES Syntaxe SQL : REVOKE privilèges ON table FROM gratifié Exemple : REVOKE SELECT ON MAGASIN FROM DUPONT Supprime l’autorisation à Dupont de lancer les ordres SQL SELECT sur la table Magasin 26/10/2017 8 COURS SQL 2 Les sous requêtes But : Permet d’imbriquer une requête dans une autre, pour utiliser son résultat dans la requête supérieure Syntaxe SQL : SELECT nom_attribut FROM nom_table WHERE condition avec sous requête entre parenthèses Exemple Access: SELECT * FROM etudiant WHERE Etudiant.age > (SELECT AVG(Etudiant.age) FROM etudiant) Renvoi toutes les informations sur les étudiants dont l'âge est supérieur à la moyenne. Remarque: o Les sous requêtes peuvent être utilisées dans plusieurs clauses (select, having, where …) o Les sous requêtes peuvent renvoyer une ou plusieurs valeurs 26/10/2017 9 COURS SQL 2 Les jointures en sql But : Permettent de mettre en relation plusieurs tables pour des interrogations communes La jointure croisée Effectue le produit cartésien entre les enregistrements de deux tables Syntaxe SQL : SELECT nom_attribut FROM nom_table A CROSS JOIN nom_table B Exemple Access: SELECT nom_attribut FROM nom_table A , nom_table B Remarque: o Le nombre d’enregistrements peut très vite augmenter ! 26/10/2017 10 COURS SQL 2 Les jointures en sql Les jointures internes Joindre plusieurs tables sur une condition en conservant uniquement les enregistrement correspondant à la condition Syntaxe SQL : SELECT nom_attribut FROM nom_table 1 INNER JOIN nom_table 2 ON condition Exemple Access: SELECT * FROM Client INNER JOIN Produit ON Client.Num_p= Produit.Num.p SELECT * FROM commande INNER JOIN (client INNER JOIN produit ON Client.Num_p=Produit.Num.p) ON Client.Num_co = Commande.Num_co; Remarque: o Il est possible d’imbriquer les jointures grâce à des parenthèses. 26/10/2017 11 COURS SQL 2 Les jointures en sql Les jointures externes La jointure gauche Permet de conserver les résultats d’une requête commune à deux tables mais aussi l’ensemble des enregistrements de la table de gauche Syntaxe SQL : SELECT nom_attribut FROM nom_table 1 LEFT JOIN nom_table 2 ON condition WHERE … GROUP BY … Exemple Access: SELECT * FROM Client LEFT JOIN Produit ON Client.Num_p= Produit.Num.p 26/10/2017 12 COURS SQL 2 Les jointures en sql Les jointures externes La jointure droite Permet de conserver les résultats d’une requête commune à deux tables mais aussi l’ensemble des enregistrements de la table de droite Syntaxe SQL : SELECT nom_attribut FROM nom_table 1 RIGHT JOIN nom_table 2 ON condition WHERE … GROUP BY … Exemple Access: SELECT * FROM Client RIGHT JOIN Produit ON Client.Num_p= Produit.Num.p 26/10/2017 13 COURS SQL 2 Les jointures en sql Les jointures totales Permet de conserver les résultats d’une requête commune à deux tables mais aussi l’ensemble des enregistrements de la table de droite et de gauche Syntaxe SQL : SELECT nom_variable FROM nom_table 1 FULL JOIN nom_table 2 ON condition Exemple Access: SELECT * FROM Client RIGHT JOIN Produit ON Client.Num_p= Produit.Num.p UNION SELECT * FROM Client LEFT JOIN Produit ON Client.Num_p= Produit.Num.p Conserve l’ensemble des enregistrements de la table Client et Produit ainsi que les enregistrements présents dans les deux tables Remarques: - Access ne permet pas d’effectuer la clause « full join » - Il faut donc utiliser une jointure droite et une jointure gauche que nous combinerons par le mot clé « union » 26/10/2017 14 COURS SQL 2 Les jointures en sql La commande union Permet de rassembler les éléments issus de plusieurs requêtes Syntaxe SQL : SELECT nom_attribut FROM nom_table A UNION SELECT nom_attribut FROM nom_table B Remarques: ◦Le mot clé « union » ne conserve pas les enregistrements identiques aux deux requêtes, pour cette opération il faut utiliser « union all » ◦Les requêtes doivent retourner le même nombre de colonnes, les attributs doivent être de même types et dans le même ordre 26/10/2017 15 COURS SQL 2 La notion TOP La mot clé « TOP » permet de retourner les n premières lignes d’un résultat sans passer par l’option ORDER BY. Syntaxe SQL : SELECT TOP 1 nom_attribut FROM nom_table A GROUP BY [critères] Remarque: ◦Il est fortement conseillé d’utiliser ORDER BY tout de même car sans cette notion, la requête n’est pas déterministe et renverrais un résultat trié sur un critère arbitraire. 26/10/2017 COURS SQL 2 16 Pour aller plus loin … oLe langage SQL est un outil de requêtage et ne permet pas de faire de la programmation (boucles , fonctions …) oLe SQL est souvent intégré à des langages de programmation (java, php, pl/sql…) pour permettre des opérations procédurales oIl est possible d’optimiser les traitements sur une base de données grâce aux procédures stockées et aux déclencheurs 26/10/2017 17 COURS SQL 2 Bibliographie ohttp://sqlpro.developpez.com/ oISO/CEI 9075:2011 ohttp://sql.sh/ 26/10/2017 18 COURS SQL 2 uploads/Finance/ sql-2-cours.pdf

  • 33
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Sep 11, 2022
  • Catégorie Business / Finance
  • Langue French
  • Taille du fichier 0.9286MB