Systèmes d’Information et Application

Slides:



Advertisements
Présentations similaires
LMD: Langage de Manipulation de Données
Advertisements

AYARI Mejdi Formation 2121 * ISD * 1 tructured uery Anguage 2006.
LE LANGAGE SQL Langage de manipulation de données (LMD)
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
1 LE LANGAGE DE REQUETES SQL Origines et Evolutions SQL1 86: la base SQL1 89: l'intégrité.
Manipulation des données Requêtes simples
Limiter et trier des données
Introduction Le SQL (Structured  Query Language) est un langage universel de gestion des bases de données. Il a une triple fonction : LDD Langage de Définition.
Chapitre 5 : Le langage SQL
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
Sélection de colonnes (la projection)
SQL : Langage de Manipulation des données
Les bases de données Séance 8 Jointures.
Le Langage de Manipulation de Données LMD. 2 Les ordres SQL de manipulation INSERT –Insertion (ajout) de ligne(s) dans une table –Utiliser SQL*LOAD pour.
Op é rateurs ensemblistes Module 4. 2 La clause GROUP BY La clause GROUP BY est nécessaire dès que l'on utilise des fonctions de calculs statistiques.
Cours n°2 Implémentation et exploitation
Le Langage d ’ Interrogation des donn é es (LID) Module 2.
Le Langage de Manipulation de Données LMD Module 6.
SQL Partie 2. SQL est un langage de manipulation de données SQL est un langage de manipulation de données (LMD), cela signifie qu'il permet de sélectionner,
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
RAPPEL SUR LES BASES DE DONNÉES, LE SQL 1 er trimestre V1.0 06/01/2015.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
SQL partie 5 1 LMD create – update – primary key secondary key.
Le langage de définition de données B.T.S. S.I.O – SI3 –
SQL : 4 fonctions d'exploitation de SGBD SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage informatique ayant pour.
SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.
1- phpMyAdmin 3ème partie : Manipulation des données Le langage SQL 2- Gérer les tables 3- Gérer les données.
Chapitre 3: SQL-ORACLE. Concepts de SQL SQL est un langage d’interrogation de base de données relationnelles pour  Définir les données (LDD)  Interroger.
Intégration web & Base de données 1 Intégration Web & Base de DonnéesMariem Farhat Intérêt des bases de données pour le Web Cours préparé par : Mariem.
ملخص Initiation à la sgbdr
Structured Query Language SQL DDL
Intégration du P7 dans l’épreuve E41
Initiation aux bases de données et à la programmation événementielle
LE LANGAGE DE REQUETES SQL
Langage de manipulation de données (LMD)
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Structured Query Language
Généralité sur les bases de données
Les bases de données et le modèle relationnel
Langage de Manipulation des Données LMD
Langage d’interrogation des Données LID
SQL LID – INTERROGATIN DES DONNEES
SQL LMD FICHE 4.6.
Manipulation D’Une Base De Données
Langage d’interrogation des Données LID
SQL Structured Query Language
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
2 Copyright © 2004, Oracle. Tous droits réservés. Restreindre et trier les données.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
4 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données agrégées à l'aide des fonctions de groupe.
6 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des sous-interrogations pour résoudre des interrogations.
7 Copyright © 2004, Oracle. Tous droits réservés. Utiliser les opérateurs ensemblistes.
8 Copyright © 2004, Oracle. Tous droits réservés. Manipuler les données.
Préface Introduction Objectifs du chapitre I-2 Objectifs du cours I-3 Oracle10g I-4 Oracle Database 10g I-6 Oracle Application Server 10g I-7 Oracle Enterprise.
Remarque : Un nombre ou une lettre en gras fait référence à un chapitre entier ou à une annexe entière. A Affichage des dates par défaut 02-06, Ajouter.
Langage d’interrogation des Données Les fonctions de groupes
3. LE LANGAGE SQL DML (2) Version 2 - Janvier 2012
© Robert Godin. Tous droits réservés.
SIO SI3 : Exploitation des données
1. LE LANGAGE SQL DDL Version 2 - Janvier Le langage SQL-DDL
2. LE LANGAGE SQL DML (1) Version 2 - Janvier 2012
Les Requêtes S.Q.L « Structured Query Language). SQL Historique.
SQL Structured Query Language
Langage SQL ENCG-Tanger Le Langage SQL (1) INTRODUCTION
Systèmes d’Information et Application
1. LE LANGAGE SQL DDL Version 1 - Mai 2009 corrigé le 11/2/2011
Systèmes d’Information et Application
Opérateurs Ensemblistes
Transcription de la présentation:

Systèmes d’Information et Application Année Universitaire 2018-2019 SIA TD3 SQL – Le langage de manipulation des données (LMD) – partie 1 Emmanuel Fruchart

Contact Web: http://happymaths.pagesperso-orange.fr Email: happy.maths@orange.fr

Descriptif du TD Objectif : Savoir interroger et modifier les données d’une base de données déjà implémentée. Partie 1 : travail sur une seule table. Supports : SQL : le Langage de Manipulation des Données.

Contenu du TD Rappel de cours LMD SQL sur une seule table 0h30 Etude de cas Insertion, interrogation, modification, suppression de données sur une base existante 1h30 TNE 3 Exercice 2h

Langage de Manipulation des Données (LMD) Présentation Langage de Manipulation des Données (LMD)

LMD : Langage de Manipulation des Données LMD (DML en anglais) : Le LMD est l'ensemble des commandes permettant de : insérer des données. interroger des données. modifier des données. supprimer des données. d’une base de données relationnelle.    

LMD : Insertion des données Présentation LMD : Insertion des données

LMD : Insertion de données dans une table    Instruction standard SQL INSERT INTO nom_table VALUES (val_col1, val_col2, …); Les valeurs de toutes les colonnes doivent être renseignées, éventuellement avec la valeur NULL. INSERT INTO nom_table(col1, col2, …) Seules les colonnes 1, 2 sont renseignées, autres valeurs positionnées à NULL, ou à valeur par défaut de la colonne.

LMD : Interrogation des données d’une seule table Présentation LMD : Interrogation des données d’une seule table

LMD : Interrogation d’une seule table Instruction standard SQL SELECT [ALL | DISTINCT] clause_de_selection FROM nom_table [WHERE critere_de_selection] [GROUP BY clause_de_regroupement] [HAVING critere_de_regroupement] [ORDER BY critere_de_tri];

LMD : Interrogation d’une seule table Options de la clause de sélection ALL permet de garder tous les t-uplets même ceux en double (option par défaut) DISTINCT permet d'éliminer les doublons.

LMD : Mise à jour des données Présentation LMD : Mise à jour des données

LMD : Mise à jour de données Instruction standard SQL UPDATE nom_table SET col1 = expr1, col2 = expr2, … [WHERE critere_de_selection];   Avec cette syntaxe, les colonnes 1, 2, … des lignes vérifiant éventuellement un critère de sélection seront mises à jour.

LMD : Suppression des données Présentation LMD : Suppression des données

LMD : Suppression de données Instruction standard SQL DELETE FROM nom_table [WHERE critere_de_selection];   Avec cette syntaxe, les lignes vérifiant éventuellement un critère de sélection seront supprimées. Si aucun critère de type WHERE n'est spécifié, toutes les données de la table sont effacées.

Etude de cas : utilisation du LMD Présentation Etude de cas : utilisation du LMD

Etude de cas : schéma relationnel BDCours

Insertion de données (jeu de données) Présentation Insertion de données (jeu de données)

Etude de cas : insertions 1 insert into annee values (2014, 'Année Scolaire 2014-2015', 150, 150); insert into periode values ('1T', 'Premier trimestre'); insert into classe values ('2ND1', 'Seconde 1'); insert into matiere values ('FRAN', 'Français');

Etude de cas : insertions 2 insert into professeur values ('MOREAUPA', 'Moreau', 'Patrick', 'H', '1986-07-01', 'FRAN'); insert into professeur_rem ('CASTELAI', 'Castelain', 'Alice', 'F', NULL, 'FRAN'); insert into enseignement values (2014, '1T', ‘TSES', ‘FRAN', ‘MOREAUPA', 11.5);

Interrogation de données (une seule table) : Présentation Interrogation de données (une seule table) : Clauses de sélection

Etude de cas : interrogation SELECT nom FROM professeur; Ou SELECT ALL nom FROM professeur; On garde tous les noms, même ceux en double.   SELECT DISTINCT nom FROM professeur; On élimine les éventuels doublons.

Etude de cas : interrogation nom Dubois Leroy Moreau Durand Morel Fournier Petit Garcia Thomas Girard Lambert Lefebvre Martinez Roussel nom Dubois Leroy Moreau Durand Morel Fournier Petit Garcia Thomas Girard Lambert Lefebvre Martinez Roussel ALL / DISTINCT

Etude de cas : interrogation SELECT * FROM professeur; Ou SELECT id_professeur, nom, prenom, sexe, date_naissance, id_matiere FROM professeur; Le symbole * représente l'ensemble des colonnes de la table professeur. SELECT nom, prenom, date_naissance    On n’affiche que le contenu des colonnes spécifiées.

Etude de cas : interrogation id_professeur nom prenom sexe date_naissance id_matiere DUBOISAM Dubois Amélie F 1980-01-30 ANGL LEROYTHO Leroy Thomas H 1985-06-05 DUBOISGE Gérard 1981-02-25 FRAN MOREAUPA Moreau Patrick 1986-07-01 DURANDST Durand Stéphane 1983-04-15 HGEO MORELSTE Morel Stéphanie 1990-11-16 FOURNIER Fournier Nicolas 1989-10-21 MATH PETITCHR Petit Christophe 1982-03-20 GARCIATH Garcia Thierry 1988-09-26 PHCH THOMASVI Vincent 1991-12-11 GIRARDAN Girard Antoine 1992-01-21 PHIL LAMBERTA Lambert Alice NULL LEFEBVRE Lefebvre Géraldine 1987-08-31 SCVT MARTINEZ Martinez Nathalie 1993-02-14 LEROYPHI Philippe 1984-05-10 SECS ROUSSELJ Roussel Jeanne

Etude de cas : interrogation Incorporation de colonnes constantes chaînes SELECT nom, prenom, sexe, 'DATE DE NAISSANCE', date_naissance FROM professeur;   numériques SELECT 2015, nom, prenom, sexe, date_naissance FROM professeur;

Etude de cas : interrogation nom prenom sexe DATE DE NAISSANCE date_naissance Dubois Amélie F 1980-01-30 Leroy Thomas H 1985-06-05 Gérard 1981-02-25 Moreau Patrick 1986-07-01 Durand Stéphane 1983-04-15 Morel Stéphanie 1990-11-16 Fournier Nicolas 1989-10-21 Petit Christophe 1982-03-20 Garcia Thierry 1988-09-26 Vincent 1991-12-11 Girard Antoine 1992-01-21 Lambert Alice NULL Lefebvre Géraldine 1987-08-31 Martinez Nathalie 1993-02-14 Philippe 1984-05-10 Roussel Jeanne

Etude de cas : interrogation Utilisation de fonctions arithmétiques SELECT id_annee - 2000, desc_annee FROM annee;    SELECT id_annee, nb_filles + nb_garcons FROM annee; SELECT id_annee, 'Pourcentage de filles :', nb_filles * 100 / (nb_filles + nb_garcons)

Etude de cas : interrogation id_annee - 2000 desc_annee 14 Année Scolaire 2014-2015 15 Année Scolaire 2015-2016 id_annee nb_filles + nb_garcons 2014 300 2015 299 id_annee Pourcentage de filles : nb_filles * 100 / (nb_filles + nb_garcons) 2014 50.0000 2015 52.5084

Etude de cas : interrogation Utilisation de fonctions arithmétiques ensemblistes SELECT COUNT(*) FROM professeur;    SELECT COUNT(DISTINCT nom) FROM professeur; SELECT MAX(nb_filles), MIN(nb_filles) FROM annee; SELECT SUM(nb_filles), AVG(nb_garcons)

Etude de cas : interrogation COUNT(prenom) 16 COUNT(DISTINCT nom) 14 MAX(nb_filles) MIN(nb_filles) 157 150 SUM(nb_filles) AVG(nb_garcons) 307 146.0000

Etude de cas : interrogation Utilisation de fonctions littérales Majuscules, minuscules SELECT UPPER(nom), LOWER(prenom), date_naissance FROM professeur;    Concaténation SELECT CONCAT(UPPER(nom), ' ', LOWER(prenom)), date_naissance FROM professeur; Ou SELECT UPPER(nom) || ' ' || LOWER(prenom), date_naissance FROM professeur;

CONCAT(UPPER(nom), ' ', LOWER(prenom)) Etude de cas : interrogation CONCAT(UPPER(nom), ' ', LOWER(prenom)) date_naissance DUBOIS amélie 1980-01-30 LEROY thomas 1985-06-05 DUBOIS gérard 1981-02-25 MOREAU patrick 1986-07-01 DURAND stéphane 1983-04-15 MOREL stéphanie 1990-11-16 FOURNIER nicolas 1989-10-21 PETIT christophe 1982-03-20 GARCIA thierry 1988-09-26 THOMAS vincent 1991-12-11 GIRARD antoine 1992-01-21 LAMBERT alice NULL LEFEBVRE géraldine 1987-08-31 MARTINEZ nathalie 1993-02-14 LEROY philippe 1984-05-10 ROUSSEL jeanne

Etude de cas : interrogation Sous-chaîne SELECT DISTINCT SUBSTRING(prenom FROM 1 FOR 3) FROM professeur;    Longueur de la chaîne SELECT ALL prenom, CHARACTER_LENGTH(prenom) FROM professeur;

CHARACTER_LENGTH(prenom) SUBSTRING(prenom FROM 1 FOR 3) Etude de cas : interrogation prenom CHARACTER_LENGTH(prenom) Amélie 6 Thomas Gérard Patrick 7 Stéphane 8 Stéphanie 9 Nicolas Christophe 10 Thierry Vincent Antoine Alice 5 Géraldine Nathalie Philippe Jeanne SUBSTRING(prenom FROM 1 FOR 3) Amé Tho Gér Pat Sté Nic Chr Thi Vin Ant Ali Nat Phi Jea

Interrogation de données (une seule table) : Présentation Interrogation de données (une seule table) : Critères de sélection

Etude de cas : interrogation Mots clés =, <>, <, >, <=, >= SELECT * FROM professeur WHERE nom = 'Leroy';    WHERE nom > 'Lombart'; SELECT * FROM annee WHERE nb_filles > 150;

Etude de cas : interrogation Mots clés AND et OR SELECT * FROM professeur WHERE (nom = 'Leroy') OR (prenom = 'Géraldine');    WHERE (nom > 'Lombart') AND (prenom < 'Marc'); SELECT * FROM enseignement WHERE (id_periode = '1T') AND ( (moyenne_classe >= 12) OR (moyenne_classe < 8.5) );

Etude de cas : interrogation Mots clés IN et BETWEEN SELECT * FROM enseignement WHERE moyenne_classe BETWEEN 11.0 AND 11.5;    SELECT * FROM professeur WHERE prenom IN ('Jacques', 'Thomas', 'Pierre'); WHERE prenom IN ('Géraldine', 'Thomas', 'Antoine') AND nom < 'Latour';

Etude de cas : interrogation Mot clé LIKE On cherche des valeurs chaînes de caractères correspondant à un modèle donné. Le caractère '%' modélise une chaine quelconque de caractères (incluant une chaine vide), et le caractère '_' modélise 1 seul caractère. SELECT * FROM professeur WHERE nom LIKE '_e_o_';    WHERE prenom LIKE '___r%';

Etude de cas : interrogation Mot clé NOT SELECT * FROM enseignement WHERE moyenne_classe NOT BETWEEN 8.0 AND 14.0; SELECT * FROM professeur WHERE prenom NOT IN ('Amélie', 'Thomas', 'Gérard', 'Stéphane', 'Patrick');    SELECT * FROM professeur WHERE prenom NOT LIKE '___r%';

Etude de cas : interrogation Mots clés IS NULL et IS NOT NULL SELECT nom, prenom FROM professeur WHERE date_naissance IS NULL; SELECT nom, prenom FROM professeur WHERE date_naissance IS NOT NULL and prenom NOT LIKE '_____t%';   

Etude de cas : interrogation Utilisation de fonctions littérales SELECT UPPER(nom), LOWER(prenom), date_naissance FROM professeur WHERE CHARACTER_LENGTH( CONCAT(nom, prenom)) BETWEEN 12 AND 15; SELECT prenom FROM professeur WHERE SUBSTRING(prenom FROM 1 FOR 3) IN ('Pie', 'Mar', 'Dan', 'Pat') AND date_naissance IS NOT NULL;   

Interrogation de données (une seule table) : Clauses de regroupement Présentation Interrogation de données (une seule table) : Clauses de regroupement

Etude de cas : interrogation Les colonnes dans la clause GROUP BY sont obligatoirement présentes dans la clause de sélection, accompagnées de fonctions de groupe ! SELECT nom, COUNT(*) FROM professeur WHERE SUBSTRING(prenom FROM 1 FOR 1) <> 'J' GROUP BY nom; SELECT id_annee, SUBSTRING(id_professeur FROM 1 FOR 1), AVG(moyenne_classe) FROM enseignement GROUP BY id_annee, SUBSTRING(id_professeur FROM 1 FOR 1);  

SUBSTRING(id_professeur FROM 1 FOR 1) Etude de cas : interrogation nom COUNT(*) Dubois 2 Durand 1 Fournier Garcia Girard Lambert Lefebvre Leroy Martinez Moreau Morel Petit Thomas id_annee SUBSTRING(id_professeur FROM 1 FOR 1) AVG(moyenne_classe) 2014 D 11.755555576748318 F 10.633333206176758 G 12.766667048136393 L 12.833333333333334

Interrogation de données (une seule table) : Critères de regroupement Présentation Interrogation de données (une seule table) : Critères de regroupement

Etude de cas : interrogation On élimine certains groupes selon un critère sur le groupe. SELECT nom, COUNT(*) FROM professeur WHERE SUBSTRING(prenom FROM 1 FOR 1) <> 'J' GROUP BY nom HAVING COUNT(*) > 1; SELECT id_annee, SUBSTRING(id_professeur FROM 1 FOR 1), AVG(moyenne_classe) FROM enseignement GROUP BY id_annee, SUBSTRING(id_professeur FROM 1 FOR 1) HAVING AVG(moyenne_classe) > 12.0;   

SUBSTRING(id_professeur FROM 1 FOR 1) Etude de cas : interrogation nom COUNT(*) Dubois 2 Leroy id_annee SUBSTRING(id_professeur FROM 1 FOR 1) AVG(moyenne_classe) 2014 G 12.766667048136393 L 12.833333333333334

Interrogation de données (une seule table) : Présentation Interrogation de données (une seule table) : Critères de tri

Etude de cas : interrogation Tri sur une seule colonne : ASC tri croissant DESC tri décroissant. Tri par défaut : ASC. SELECT DISTINCT prenom FROM professeur ORDER BY prenom; Ou … ORDER BY prenom ASC;   ORDER BY 1;

Etude de cas : interrogation prenom Alice Amélie Antoine Christophe Géraldine Gérard Jeanne Nathalie Nicolas Patrick Philippe Stéphane Stéphanie Thierry Thomas Vincent

Etude de cas : interrogation Tri sur plusieurs colonnes : SELECT nom, prenom FROM professeur WHERE SUBSTRING(prenom FROM 1 FOR 3) IN ('Ant', 'Mar', 'Dan', 'Pat') ORDER BY prenom DESC, nom ASC; Ou … ORDER BY 2 DESC, 1 ASC;

Etude de cas : interrogation nom prenom Moreau Patrick Girard Antoine