background preloader

MySQL Tutorial

MySQL Tutorial

Oracle SQL & PL/SQL Cours de bases de données pour SRC 1 Programmation SQL/Langage de manipulation de données Un livre de Wikilivres. Instruction SELECT[modifier | modifier le wikicode] L'instruction SELECT est la base du LMD, elle permet de renvoyer une table contenant les données correspondantes aux critères qu'elle contient. Seules les clauses "SELECT" et "FROM" sont obligatoires. SELECT [ALL] | [DISTINCT] * | <liste de champs ou d'instructions d'agrégation>FROM <liste de tables>WHERE <condition>GROUP BY <champs de regroupement>HAVING <condition>ORDER BY <champs de tri> [DESC] | [ASC] Une autre forme est SELECT [ALL] | [DISTINCT] * | <liste de champs ou d'instructions d'agrégation>FROM <TABLE de base><liste de jointures>GROUP BY <champs de regroupement>HAVING <condition>ORDER BY <champs de tri> [DESC] | [ASC] Détails des clauses : SELECT[modifier | modifier le wikicode] La clause SELECT permet de spécifier les informations qu'on veut récupérer. Instructions d'agrégation[modifier | modifier le wikicode] Les instructions d'agrégation permettent des opérations comme le comptage ou les sommes. Exemple :

Démythifier le GROUP BY Il existe une légende populaire à propos de la clause SQL GROUP BY. Cette légende soutient que la "norme SQL" impose, dans une requête, que les colonnes référencées dans la liste du SELECT apparaissent également dans la clause GROUP BY, à moins que ces colonnes n'apparaissent exclusivement dans une expression d'agrégation. MySQL est souvent accusé de violer cette norme. Dans cet article, je vais tenter de briser ce mythe et d'apporter par la même occasion un regard plus mesuré sur le traitement du GROUP BY dans MySQL. Pour ce faire, je vais d'abord démontrer que MySQL peut être configuré pour accepter des clauses GROUP BY qui ne comportent que des colonnes dans la liste du SELECT contenues dans des fonctions d'agrégation, rapprochant ainsi le comportement de MySQL de celui des autres célèbres SGBDR. Ensuite, je vais montrer qu'il est très important de bien préciser à quelle version de la norme SQL on fait référence. Allons au fait ! SELECT *FROM menagerie.pet; Que se passe-t-il donc ?

Le SQL de A à Z - groupage, sous ensembles et opérateurs ensemblistes Vous trouverez des compléments d'information sur le sujet aux pages 153 à 154 de l'ouvrage "SQL", collection "La Référence", Campus Press éditeur. La clause BROUP BY est nécessaire dès que l'on utilise des fonctions de calculs statistiques avec des données brutes. Cette clause groupe les lignes sélectionnées en se basant sur la valeur de colonnes spécifiées pour chaque ligne et renvoie une seule ligne par groupe.On peut la comparer à une opération de découpage de sous ensemble un peut à la manière des "niveaux de rupture" lorsque l'on réalise des états imprimés. Cherchons à compter le nombre de chambre par étage de notre hôtel : Exemple 1 La requête, telle que présentée ci dessus n'est pas calculable. Si la requête se faisait pour chaque chambre, le résultat serait : NOMBRE CHB_ETAGE ----------- --------- 1 RDC 1 RDC 1 RDC 1 RDC 1 1er 1 1er 1 1er 1 1er 1 1er ... Et n'aurait pas beaucoup de sens ! En revanche, un regroupement par étage, donne tout son sens à la requête : Exemple 1 bis Exemple 2

Formations Oracle SQL : Créations de vues Une vue est une table virtuelle, c'est-à-dire dont les données ne sont pas stockées dans une table de la base de données, et dans laquelle il est possible de rassembler des informations provenant de plusieurs tables. On parle de "vue" car il s'agit simplement d'une représentation des données dans le but d'une exploitation visuelle. Les données présentes dans une vue sont définies grâce à une clause SELECT La création d'une vue se fait grâce à la clause CREATE VIEW suivie du nom que l'on donne à la vue, puis du nom des colonnes dont on désire agrémenter cette vue (il faut autant de redéfinitions de colonne qu'il y en aura en sortie), puis enfin d'une clause AS précédant la sélection. CREATE VIEW Nom_de_la_Vue (colonnes) AS SELECT ... Voici ce que cela pourrait donner: CREATE VIEW Vue (colonneA,colonneB,colonneC,colonneD) AS SELECT colonne1,colonne2,colonneI,colonneII FROM Nom_table1 Alias1,Nom_tableII AliasII WHERE Alias1.colonne1 = AliasII.colonneI AND Alias1.colonne2 = AliasII.colonneII

Related: