Bases de données. Mihaela Mathieu

Dimension: px
Commencer à balayer dès la page:

Download "Bases de données. Mihaela Mathieu"

Transcription

1 Bases de données Mihaela Mathieu

2 Objectifs : comprendre et maîtriser les fonctions d un SGBD relationnel (Oracle et MySQL) connaître le langage SQL savoir développer une application sous Oracle et MySQL c M. Mathieu 2

3 Contenu du cours : Introduction aux SGBD(R) historique définitions, panorama du marché présentation d Oracle et de SQL*Plus présentation de MySQL Manipulation et description des objets d une base - langage SQL Système transactionnel Administration système d Oracle catalogues de données gestion des utilisateurs c M. Mathieu 3

4 Programmation et bases de données programmation en PL/SQL Java et le SGBD (Oracle) c M. Mathieu 4

5 Contenu TP : travail avec Oracle (SQL, PL/SQL, C, Java) depuis une plate-forme Windows ou Unix Contenu TD : * rappel du modèle relationnel c M. Mathieu 5

6 Le cours ne comprend pas : progammation C pour les bases de données aspects XML module Oracle Web... d autres modules d Oracle notions de bases de données OLAP, bases de données distribuées c M. Mathieu 6

7 Pré-requis : logique cours Systèmes d Informations c M. Mathieu 7

8 Chapitre 1 : Introduction aux SGBD(R) 1. Définitions 2. État du marché 3. Présentation d Oracle et de SQL*Plus 4. Présentation de MySQL c M. Mathieu 8

9 Base de données = collection structurée de données cohérentes, intègres, protégées et accessibles simultanément aux utilisateurs. Système de Gestion de Bases de Données = logiciel complexe capable d assurer l exploitation correcte et efficace des BD. BD au coeur des Systèmes d Information importance capitale de la qualité, de la fiabilité et de la bonne exploitation des SGBDs. Volume d une BD : entre 1 MegaBytes et 10? TeraBytes. La taille d une BD doit être transparente à l utilisateur et au développeur (-), de même pour son déploiement. c M. Mathieu 9

10 Une représentation d une BD : Schéma externe Schéma externe Schéma conceptuel Schéma physique Mémoire (externe) c M. Mathieu 10

11 Le schéma conceptuel indique la façon dont les données sont modélisées, structurées (selon le modèle choisi : relationnel, objet ou autre ; les tables et les indexes, les procédures...) Le schéma physique indique comment dont les structures choisies sont implantées physiquement. Tout est stocké en mémoire. Les schémas externes sont dédiées aux utilisateurs et donnent des vues (partielles) des données de la base. c M. Mathieu 11

12 Les acteurs d une BD : utilisateurs : naïfs, occasionnels, avertis développeurs administrateurs (DBA) : administrateurs de données et administrateurs système experts c M. Mathieu 12

13 UTILISATEUR Schéma externe Schéma externe Schéma conceptuel DEVELOPPEUR Schéma physique EXPERT DBA Mémoire (externe) c M. Mathieu 13

14 Plusieurs configurations sont possibles : une BD sur une seule machine plusieurs BD sur la même machine une BD sur plusieurs machines (BD distribuée) Une BD peut admettre 1 ou plusieurs utilisateurs simultanés. Pour n importe quelle configuration le SGBD doit assurer le bon fonctionnement dans la transparence. Un SGBD doit assurer : la définition des bases de données et des objets contenus la manipulation des données la confidentialité l intégrité des données la sécurité de fonctionnement la gestion des accès concurrents c M. Mathieu 14

15 Les SGBD ont un modèle de représentation des données. Classification de SGBD selon leur modèle : relationnel réseau, hiérarchique (plus maintenant) orienté objet (passé de mode). Exemple : O2 XML Les fonctions d un SGBD sont indépendantes du modèle de représentation des données, mais la réalisation de ces fonctions y dépend. Quelques SGBD : petits (bureautique) : Paradox, MS Access moyens SGBD : dbase, FoxPro de taille importante : Oracle, DB2, SQL Server, Ingres logiciel libre : MySQL, PostgeSQL. Le prix d un SGBD varie entre 100 et quelques 10 6 euros. c M. Mathieu 15

16 MySQL - logiciel libre - SGBD relationnel, client/serveur - facile à installer et à utiliser - supporte mal les gros volumes de données - langage SQL réduit par rapport au standard - assure mal la cohérence et la consistence de données c M. Mathieu 16

17 ORACLE - SGBD produit depuis 1975 par Oracle Corporation - SGBD périodiquement mis à jour et en évolution (dernières versions : 9i et 10G). Version utilisée SGBD relationnel (qui tolère des représentations objets depuis la version 8 et des traitements RI et en langage XML depuis la version 9). Pourquoi Oracle? utilise SQL très proche du standard comme langage d interrogation fiable multi-utilisateurs comporte toutes des fonctions des SGBD possibilité de développer des applications variées très répandu en milieu industriel (les moins : administration assez lourde pour des gros volumes de données, son prix) c M. Mathieu 17

18 Les composants d Oracle : SQL*Plus : permet de description et la manipulation des données à travers le langage SQL SQL*Loader, SQL*Net, SQL*Admin compilateur Pro*C Oracle Entreprise Manager OracleWeb : développement des application Web Portail d entreprise, gestionnaire de documents papiers et multimédia Oracle JDevelopper : réalisation des applications multi-fonctions, multi-fenêtres sur la BD... Architecture Client /Serveur sur des serveurs Unix, Windows (NT, XP...), Linux et clients PC, Linux, Unix. c M. Mathieu 18

19 Les objets qu Oracle manipule : pour la manipulation des données : les tables les séquences les indexes les synonymes les clusters - jointure physiques sur plusieurs tables (distantes) pour les traitements : les fonctions et procédures stockées et/ou appelées explicitement les triggers - procédures déclenchées lors des événements précis les assertions - procédures de vérifications lancées systématiquement pour la gestion des utilisateurs les users et leurs droits explicites c M. Mathieu 19

20 Les méta-données d Oracle : des tables spécifiques avec des informations sur des objets de la même catégorie Oracle sait aussi gérer les transactions. Une base Oracle peut s interfacer facilement avec une autre base Oracle ou autre. Des nombreux logiciels de développement d applications travaillent sur les bases Oracle (Swing, PowerBuilder, OpenRoad,...) c M. Mathieu 20

21 Présentation SQL*Plus SQL*Plus est un outil d Oracle pour interroger la BD. fonctionne comme un interpréteur en ligne En entrée : des commandes propres des ordres SQL des procédures PL/SQL des fichiers SQL Il est appelé avec la commande : >sqlplus nom de passe] c M. Mathieu 21

22 Exemple 1 : SQL>desc agent ou SQL>describe agent commande SQL*PLUS qui indique la structure de l objet agent. Équivalent à : SQL > desc - agent Exemple 2 : SQL > select * from agent ; (toutes les instructions SQL finissent par les caractère ; ) Exemple 3 : SQL exécute les ordres contenus dans fichier.sql c M. Mathieu 22

23 Architecture Oracle utilisée : Oracle en client/serveur sur educusers (le serveur) et optxy et asixy (les clients Sun) et PC (les clients Windows). c M. Mathieu 23

24 Chapitre 2 : Types de données Les tables d une BD relationnel se composent des attributs qui contiennent des données. Chaque attribut a un type de données précis. Les types de données sous SQL : tous les types sont simples (pas de types composés, pas de références...) ordonnés ou pas, indexables ou pas c M. Mathieu 24

25 Les types de données sont les suivants : Chaînes de caractères : VARCHAR2(taille) : taille variable d au plus 2000 caractères (VARCHAR sous MySQL) CHAR(taille) :taille fixe d au plus 255 caractères LONG : au plus caractères non-indexable un seul champ LONG par table c M. Mathieu 25

26 Nombres : NUMBER(n,v) : n chiffres, v chiffres après la virgule (DECIMAL sous MySQL) INTEGER FLOAT Dates : DATE : date et heure type ordonné permet des opérations numériques (elle est visible comme une chaîne de caractères selon le format de sortie) Données binaires : RAW(taille) : jusqu à 255 octets LONG RAW : jusqu à 2 Giga Octets pareil que long pb pour la récupération de la valeur c M. Mathieu 26

27 Les constantes : texte : délimitées par des apostrophes ou guillemets : Chaîne ou Chaine numériques : nombre entiers ou à virgule : 12, 12,5 ou 12.5 valeurs logiques : TRUE, FALSE la date courante : SYSDATE (ou NOW sous MySQL) l objet NULL manque de données, vide c M. Mathieu 27

28 La valeur NULL : désigne un manque de données 0 n est pas NULL si une expression contient NULL, est vaut NULL la comparaison avec NULL : IS NULL, est pas = NULL La fonction NVL permet de corriger dans des expressions une possible valeur NULL : NVL (attribut, valeur par-défaut) La fonction COALESCE est une extension de NVL en admettant un nombre variable de paramètres, elle retourne la première valeur non nulle rencontrée dans la liste de ses paramètres. c M. Mathieu 28

29 Fonctions de conversion : TO CHAR : numérique ou date -> chaîne de caractères TO NUMBER : chaîne ->numérique TO DATE : chaîne -> date Autres fonctions : GREATEST, LEAST Opération et fonctions pour le type DATE : opérations + et - avec la signification : date + - nombre : ajout ou suppression d un nombre de jours de la date date1 - date2 : le nombre de jours entre les deux dates calcul de dates : LAST DAY, NEXT DAY, ADD MONTHS c M. Mathieu 29

30 La table DUAL est créée par défaut par Oracle et accessible par tous les utilisateurs ne contient qu un champ DUMMY avec la valeur C est utilisée pour obtenir des valeurs calculées sur la base des constantes Oracle Exemple : SELECT SYSDATE FROM DUAL ; c M. Mathieu 30

31 Chapitre 3 : Langage SQL 1. Manipulations (interrogations et modifications des objets données d une base) 2. Descriptions (créations, modifications, suppressions) 3. Contrôle (gestion des transactions). c M. Mathieu 31

32 SQL = Structured Query Language version stable issu de QUEL sur Ingres et SEQUEL sur SYSTEM R (IBM) langage non-procédural langage interactif Trois dimensions du langage : définition et modification du schéma d une base de données relationnelle interrogation et modification (non-procédurale) de la base contrôle de sécurité et confidentialité de la base. Une commande SQL est souvent appelée requête. SQL ne fait pas la différence entre les petites et les grandes lettres (sauf à l intérieur des chaînes de caractère). c M. Mathieu 32

33 1. Consultation de données - une seule commande : SELECT [ALL/DISTINCT/UNIQUE] liste de sélection FROM nom table,... [WHERE condition de recherche] [GROUP BY liste attributs] [HAVING condition de recherche] [ORDER BY liste attributs] ou une version qui opère avec des ensembles : requête SELECT1 {UNION MINUS INTERSECT} requête SELECT2 car le résulat d une requête SELECT est un ensemble de tuples, i.e. une table. c M. Mathieu 33

34 On appèle clause une partie d une requête. Les clauses SELECT et FROM sont obligatoires. La clause SELECT contient la liste de séléction ainsi que des descripteurs pour la présentation du résultat. La liste de sélection contient : des attributs, des expressions où des attributs ou des constantes interviennent. Un attribut est sous la forme champs ou table.champs. Le symbole * dans la liste de sélection signifie tous les champs de la table. Exemple : SELECT * FROM LECTEUR ; fournit tous les enregistrements de cette table. c M. Mathieu 34

35 SELECT NOM, PRENOM, AGE FROM LECTEUR fournit uniquement les champs indiqués de la table, présentés enregistrement par enregistrement. Les options DISTINCT, UNIQUE assurent la non-redondance du résultat (option implicite : ALL, donc rédondance). Exemple : SELECT PRENOM FROM LECTEUR ; fournit tous les champs PRENOM des enregistrements de cette table, même les doublons. SELECT DISTINCT PRENOM FROM LECTEUR fournit l ensemble des champs PRENOM, donc sans les doublons. c M. Mathieu 35

36 La clause FROM contient une liste d au moins une table avec ou sans synonyme pour une écriture équivalente plus rapide. Exemple : les deux requêtes ci-dessous sont strictement équivalentes : SELECT NOM, PRENOM, AGE FROM LECTEUR et SELECT L.NOM, L.PRENOM, L.AGE FROM LECTEUR L Une vue ou un synonyme se comporte dans une requête SELECT comme une table. (On se concentre pour l instant sur les requêtes SELECT qui opèrent sur une seule table). c M. Mathieu 36

37 La clause ORDER BY permet d afficher les résultats selon des champs présents dans sa liste de sélection. Le tri peut être croissant (option ASC - implicite) ou décroissant (option DESC). La liste de la clause ORDER BY contient des éléments de même type que la clause SELECT (sauf le * ) et / ou des numéros. Exemple : SELECT NOM, PRENOM FROM LECTEUR ORDER BY AGE et SELECT NOM, PRENOM, AGE FROM LECTEUR ORDER BY 3 Les numéros font référence aux éléments de la clause SELECT. En absence de cette clause les résultats sont présentés dans leur ordre d obtention par le système. c M. Mathieu 37

38 Les conditions de recherche sont formées d une ou plusieurs conditions reliées par les opérateurs logiques : NOT, AND et OR. Ces conditions sont de 3 types : conditions de comparaisons conditions de jointure conditions sous-requête c M. Mathieu 38

39 Conditions de comparaison permettent de comparer un attribut ou une expression à un autre attribut ou valeur. La syntaxe est : exp opérateur comparaison exp exp [NOT] BETWEEN exp AND exp exp [NOT] IN (liste valeurs) attribut [NOT] LIKE chaîne attribut IS [NOT] NULL exp désigne une expression formée des attributs, constantes, fonctions reliés par les opérateurs : +, -, *, /,. Les opérateurs de comparaisons sont ceux connus. Exemple : SELECT * FROM LECTEUR WHERE AGE < 10 ; c M. Mathieu 39

40 Le prédicat BETWEEN permet de vérifier si l expression située à gauche se trouve dans l intervalle défini. Exemple : SELECT * FROM LECTEUR WHERE AGE BETWEEN 10 AND 14 ; Le prédicat IN permet de vérifier si un attribut se trouve dans la liste de valeurs indiquées. Exemple : SELECT * FROM LECTEUR WHERE AGE IN (10, 11, 12, 13, 14) ; c M. Mathieu 40

41 Le prédicat LIKE permet de réaliser des comparaisons entre un attribut et une chaîne de caractères en utilisant des caractères de substitution : pour zéro ou plusieurs caractères (%) pour un seul caractère ( ) Exemple : SELECT * FROM LECTEUR WHERE PRENOM LIKE Mich% ; permet d avoir les enregistrements qui correspond aux lecteurs dont le prénom commence par Mich. c M. Mathieu 41

42 Les fonctions sur les chaînes de caractères : UPPER() - conversion en majuscules LOWER() - conversion en minuscules TRIM() - suppression des répétitions d un caractère à gauche ou à droite ou aux deux extrémités SUBTRING() - création d une chaîne a partir d une autre. Les fonction sur les dates : DATE(exp) - conversion d une expression numérique ou chaîne de caractère vers une date DAY(date) - le jour du mois de la date MONTH(date) - le mais de la date YEAR(date) - l année de la date c M. Mathieu 42

43 Les fonctions agrégat (de regroupement) permettent d obtenir des données synthétiques concernant une table ou des attributs de la table : COUNT(* / attribut) - le nombre d enregistrements satisfaisant la requête SUM(attribut) - la somme des valeurs MIN(attribut) - le minimum MAX(attribut) - le maximum AVG(attribut) - la moyenne arithmétique STDEV(attribut) - l écart-type VARIANCE(attribut) - la variance liée à l écart-type La fonction COUNT peut contenir aussi les directives DISTINCT ou ALL. Exemple : SELECT COUNT(*), AVG(AGE) FROM LECTEUR ; fournit le nombre d enregistrements dans la table LECTEUR et la moyenne d âge. c M. Mathieu 43

44 La clause GROUP BY permet de grouper le résultat en fonction des valeurs des attributs présents dans la liste SELECT. Exemple 1 : SELECT COUNT(*), AGE FROM LECTEUR GROUP BY AGE ; fournit le nombre d enregistrements dans la table LECTEUR pour chaque tranche d age. La même requête sans la clause GROUP BY est érronnée, car imbigue. Exemple 2 : SELECT COUNT(*) FROM LECTEUR WHERE PRENOM = Anna ; fournit le nombre d enregistrements dans la table LECTEUR qui ont le prénom Anna. c M. Mathieu 44

45 La clause HAVING décrit une restriction posées sur un groupe des tuples, donc toute condition qui est posée sur un agrégat doit figurer dans la clause HA- VING. Exemple 3 : SELECT COUNT(*), AGE FROM LECTEUR GROUP BY AGE HAVING COUNT(*) >= 2 ; fournit les tranches d age avec au moins deux enregistrements dans la table LECTEUR. c M. Mathieu 45

46 Travail avec la valeur NULL Des champs peuvent avoir la valeur NULL. Exemple : select anom, aprenom, commission from agent ; Résultat : JACQ Aime LEM Roger DESCH Didier BART Fabs BLANCO Laurent 10.5 DESS Lim... c M. Mathieu 46

47 Les requêtes d agrégat comme : select min(commission) from agent ou select count(commission) from agent opèrent uniquement sur des valeurs non NULL. La requête : select anom, aprenom, nvl(to char(commission), sans ) from agent affiche : ANOM APRENOM NVL(TO CHAR(COMMISSION), SANS ) JACQ Aime sans LEM Roger sans DESCH Didier sans BART Fabs sans BLANCO Laurent 10.5 DESS Lim sans c M. Mathieu 47

48 Le fonctionnement de la fonction COUNT et des autres fonctions agrégat Exemples : select count(*) from agent ; fournit le nombre total d enregistrements de la table AGENT. select count(fonction) from agent ; fournit le nombre d apparitions du champ FONCTION de la table AGENT. select count(distinct fonction) from agent ; fournit le nombre d apparitions des valeurs distinctes du champ FONCTION. c M. Mathieu 48

49 La requete : select fonction, count(*) from agent ; est ambigue et non-résolue. La requete : select fonction, count(*) from agent group by fonction ; fournit : FONCTION COUNT(*) ANALYSTE 2 CAPITAINE 1 COMMERCIAL 4 DIRECTEUR 1 EMPLOYE 4 GARDIEN 1 PRESIDENT 1 qui est la liste de toutes les valeurs du champ FONCTION, avec leur nombre d apparitions. c M. Mathieu 49

50 Si la liste de sélection d une requete SELECT contient des fonctions d agrégat et des attributs des tables de sélection, dans la clause GROUP BY il faut impérativement indiquer tous les attributs ou fonctions scalaires sur ces attributs qui apparaissent dans la clause SELECT. c M. Mathieu 50

51 Requêtes SELECT sur plusieurs tables Dans la clause FROM on fait figurer plusieurs tables ou on utilise une condition de sous-requête. Exemple : SELECT lecteur.*, pret.* FROM lecteur, pret ; fournit les enregistrements concatennés de deux tables. En absence de toute condition entre les champs de deux tables la requête réalise simplement le produit cartésien : il faut donc ajouter des conditions de jointure. c M. Mathieu 51

52 Conditions de jointure Un jointure est un lien entre des attributs semblables des deux tables différente : table1.attribut1 opérateur table2.attribut2 L opérateur de comparaison peut être : =, <, >, <> (!=), <=, >=. Exemple : SELECT LECTEUR.CODE LECTEUR, LECTEUR.NOM, LECTEUR.PRENOM FROM LECTEUR, ENSEIGNANT WHERE LECTEUR.NOM = ENSEIGNANT.NOM AND LECTEUR.PRENOM = ENSEIGNANT.PRENOM ; permet d extraire des informations de la table LECTEUR qui ont un correspondant dans la table ENSEIGNANT. c M. Mathieu 52

53 Les jointures s appèlent internes quand l existence des deux attributs (table1.attribut1, table2.attribut2) est obligatoire. Un cas particulier de jointure interne est l équijointure : on teste l égalité entre des attributs qui ont des domaines compatibles et la même signification sémantique. Exemple : SELECT lecteur.*, pret.* FROM lecteur, pret WHERE lecteur.code lecteur = pret.code lecteur ; on fournit uniquement les lecteurs qui ont des prêts en cours, un lecteur apparaît autant de fois que le nombre d enregistrements de la table pret. c M. Mathieu 53

54 Exemple : les lecteurs qui ont en prêt la livre L Ile Mistérieuse : SELECT nom, prenom FROM lecteur l, pret p, document d WHERE lecteur.code lecteur = pret.code lecteur AND p.code document = d.code document AND d.titre = L Ile Mystérieuse ; L ordre des conditions d équijointure n est pas importante, de même dans une équijointure on peut permuter les deux attributs. Remarque : d autres conditions que = ou!= sont rarement utilisées dans les jointures. c M. Mathieu 54

55 Une condition de jointure externe s exprime à l aide du (+) mis à coté d un attribut : table1.attribut1 = table2.attribut2(+) ou table2.attribut2(+) = table1.attribut1 avec la signification : si des enregistrement de la table2 existent et vérifient la clause WHERE ils sont sélectionnés conformément à une jointure classique ; si des enregistrement de la table2 n existent pas les enregistrements de la table1 sont toutefois sélectionnés. c M. Mathieu 55

56 Exemple : soient les tables EMPLOYE(NOM, CODE S) et SERVICE(CODE S, NOM SERVICE) avec les enregistrements : NOM CODE S Anna 117 Nicolas 170 André 170 Paul CODE S NOM SERVICE 170 RH 800 Direction 117 Comptabilité c M. Mathieu 56

57 Pour afficher les employés et leur service : SELECT nom, nom service FROM employe, service WHERE e.code s = s.code s ; mais l employé Paul n y figure pas. La jointure ouverte (externe) : SELECT nom, nom service FROM employe, service WHERE e.code s = s.code s(+) ; fournit : NOM André Anna Nicolas Paul NOM SERVICE RH Comptabilité RH c M. Mathieu 57

58 Autre jointure ouverte : SELECT nom, nom service FROM employe, service WHERE e.code s(+) = s.code s ; fournit : NOM André Anna Nicolas NOM SERVICE RH Contabilité RH Direction Si on veut obtenir une jointure à deux entrées, il faut utiliser l opération UNION. c M. Mathieu 58

59 Une condition de sous-requête : [NOT] EXISTS (requête SELECT) la condition est évaluée à vrai, si la requête SELECT retourne au moins une ligne. Exemple : SELECT * FROM PRET WHERE EXISTS (SELECT * FROM DOCUMENT) ; affiche le contenu de la table PRET uniquement si la table DOCUMENT n est pas vide. c M. Mathieu 59

60 Exemple 1 : vérifier que des exemplaires du livre Les Fourmis sont en prêt : SELECT COUNT(*) FROM document d WHERE d.titre = Les formis AND EXISTS (SELECT * FROM pret p WHERE d.code document = p.code document) ; c M. Mathieu 60

61 Exemple 2 : vérifier que tous les exemplaires du livre Les Fourmis sont en prêt : SELECT Oui FROM document d WHERE d.titre = Les formis AND NOT EXISTS (SELECT * FROM pret p WHERE d.code document = p.code document) HAVING COUNT(*) = 0 ; c M. Mathieu 61

62 Requêtes imbriquées Les imbrications des requêtes peuvent apparaître au niveau des conditions de la clause WHERE et au niveau des tables de sélection. (Oracle admet jusqu à 16 requêtes imbriquées.) Les imbrications de la clause WHERE sont de type : table.attribut = (requête SELECT) ou table.attribut IN (requête SELECT) ou table.attribut {<,>,<=,>=} {ANY ALL}(requête SELECT) Les deux premières formes sont sémantiquement équivalentes, mais leur façon d être résolues par le SGBD est différent. c M. Mathieu 62

63 Les sous-requêtes qui apparaissent dans la partie droite ne doivent pas contenir des clauses ORDER BY. Une requête imbriquée peut s écrire comme une requête non-imbriquée. Exemple : afficher tous les lecteurs ayant emprunté des livres depuis 24h : SELECT DISTINCT l.nom, l.prenom FROM lecteurs l WHERE l.code lecteur IN (SELECT p.code lecteur FROM pret p WHERE p.date pret > SYSDATE -1) ; Cette requête peut s écrire comme : SELECT DISTINCT l.nom, l.prenom FROM lecteurs l, pret p WHERE l.code lecteur = p.code lecteur AND p.date pret > SYSDATE -1 ; c M. Mathieu 63

64 Exemple : afficher les agents qui gangent au moins comme un plus grand salaire d une fonction : SELECT anom, aprenom FROM agent WHERE salaire >= ANY (SELECT MAX(salaire) FROM agent GROUP BY fonction) Exemple : afficher les agents qui gangent plus que le plus grand salaire de chaque fonction : SELECT anom, aprenom FROM agent WHERE salaire >= ALL (SELECT MAX(salaire) FROM agent GROUP BY fonction) c M. Mathieu 64

65 Le résultat d une requête SELECT peut être utilisé comme une table de sélection. Exemple : afficher les agents qui gagnent le plus grand et le plus bas salaire : select anom, aprenom from agent A, ( select min(salaire) as sal from agent) B, ( select max(salaire) as sala from agent) C where A.salaire = B.sal or A.salaire = C.sala ; Dans les requêtes de cette forme l usage des synonymes devient impératif. (Les synonymes sont utilisés pour les noms des tables de la clause FROM et pour la liste de sélection de la clause SELECT. Ces synonymes sont volatiles.) c M. Mathieu 65

66 Une requête ensembliste est de forme : requête1 UNION [ALL] MINUS INTERSECT requête2 où UNION, MINUS, INTERSECT réalise les opérations des ensembles connues. La version UNION ALL réalise l union des résultats de chaque requête sans éliminer les doublons. Les listes de sélection des deux requêtes se doivent être compatibles par type. c M. Mathieu 66

67 Exemple : afficher les agents qui gagnent le plus grand et le plus bas salaire : select anom, aprenom from agent where salaire = (select min(salaire) from agent) union select anom, aprenom from agent where salaire = (select max(salaire) from agent) ; c M. Mathieu 67

68 Modifications de données : Langage SQL - Mise à jour des données insertion INSERT mise à jour - UPDATE suppression - DELETE (TRUNCATE) 1. Insertion INSERT INTO nom table [(liste attributs)] VALUES (liste valeurs) Si les champs de la table sont explicités par (liste attributs), la liste des valeurs doit avoir la même longueur car la correspondance se fait de 1 à 1, sinon, la liste des valeurs doit correspondre en longueur et en type à la liste des attributs de la table dans leur ordre de définition. Si des attributs ne sont pas spécifiés, ils prendront la valeur NULL ou leur valeur par défaut. c M. Mathieu 68

69 Exemple : la table COLLECTIVITE a la structure suivante : SQL>desc collectivite Name Type IDCOLLECT NUMBER CDESINATION VARCHAR2(20) alors : INSERT INTO COLLECTIVITE VALUES (9, Picardie ) ; est équivalent à : INSERT INTO COLLECTIVITE (CDESINATION, IDCOLLECT) VALUES ( Picardie, 8) ; c M. Mathieu 69

70 Une autre forme de l ordre INSERT : INSERT INTO nom table[(liste attributs)] requête SELECT ; permet l insertion dans la table indiquée des enregistrements (même plusieurs) obtenus avec la requête SELECT. Exemple : INSERT INTO AGENT BIS SELECT * FROM AGENT ; réalise une copie de la table AGENT dans la table AGENT BIS qui a la même structure. c M. Mathieu 70

71 2. Modification UPDATE nom table SET nom attribut = valeur,.../ (liste attributs) = (liste valeurs)... WHERE condition ; Cette instruction permet la modification des enregistrements vérifiant la condition ; cette modification porte sur les attributs précisés dans la clause SET qui se voient attribués les valeurs indiquées. Ces valeurs sont soit des constantes, soit des expressions contenant des opérateurs et fonctions (excepté les fonctions agrégats) qui portent sur des constantes et des attributs. Le type d une valeur associée pour un attribut modifié doit être compatible avec le type de l attribut. c M. Mathieu 71

72 Exemple : UPDATE COMMANDE SET DATEC = sysdate, DATEL = DATEL + 10 WHERE IDCOMM = 20 ; est équivalent avec : UPDATE COMMANDE SET (DATEC, DATEL) = (sysdate, DATEL+ 10) WHERE IDOMM = 20 ; Cette requête modifie l enregistrement de la table COMMANDE ayant la valeur 20 pour l attribut clé IDCOMM. c M. Mathieu 72

73 La forme suivante de UPDATE permet de faire la modification des attributs avec des valeurs obtenues par une ou plusieurs requêtes SELECT (appelées sous-requêtes) : UPDATE nom table SET (attribut) = (sous-requête),... (liste attributs) = (sous-requête) [WHERE condition] ; Les sous requêtes doivent impérativement retourner un seul enregistrement. Si la sous-requête fait intervenir la table nom table et les attributs à modifier, on dit que la requête est corrélée. Dans une requête corrélée on doit utiliser des synonymes pour les tables. c M. Mathieu 73

74 Exemple 1 - une requête non-corrélée qui attribue à un certain agent le salaire maximum de la fonction COMMERCIAL : UPDATE AGENT SET SALAIRE = (SELECT MAX(SALAIRE) FROM AGENT WHERE FONCTION = COMMERCIAL ) WHERE IDAGENT = 210 ; Exemple 2 - une requête corrélée, qui attribue à un certain agent le salaire maximum de son service : UPDATE AGENT A1 SET SALAIRE = (SELECT MAX(A2.SALAIRE) FROM AGENT A2 WHERE A2.SERVICE ID = A1.SERVICE ID) WHERE IDAGENT = 210 ; c M. Mathieu 74

75 3. Suppression DELETE FROM nom table [WHERE condition] ; Cette instruction permet d enlever de la table nom table tous les enregistrements qui vérifient la condition. En absence de la clause WHERE tous les enregistrements de la table seront effacés. L ordre : TRUNCATE nom table ; permet la suppression rapide de tous les enregistrements de la table nom table. c M. Mathieu 75

76 Exemple : DELETE FROM COMMANDE WHERE DATEL < SYSDATE ; efface les enregistrements de la table COMMANDE qui ont la date de livraison passé de plus d un an. Les instructions : DELETE FROM COMMANDE ; et TRUNCATE COMMANDE ; fournissent presque le même résultat : l effacement de tous les enregistrements de la table COMMANDE, mais la deuxième forme est plus rapide et ne nécessite pas de confirmation. c M. Mathieu 76

77 L effet des mises à jour : SQL - langage de contrôle des données les requête INSERT, UPDATE, DELETE modifient d abord le buffer utilisateur. Elles doivent être rendues définitives avec l ordre SQL : COMMIT ou annulées avec l ordre ROLLBACK la requête TRUNCATE est effective (une fois qu elle est saisie, elle est directement exécutée sur la base). c M. Mathieu 77

78 Transactions Transaction = une séquence de commandes traitée comme une opération atomique afin de garantir la cohérence et l intégrité des données de la base. Les commandes sont des mises à jour et / ou des simples consultations. Exemple 1 : l enregistrement d une commande VPC de plusieurs produits, qui comporte : l insertion de l entête de la commande l insertions des produits commandés Ces insertions doivent être exécutées de façon indissociable et définitive. Exemple 2 : la réservation de places dans un avion (problème de concurrence d accès) - solution : gestion transactionnelle des opérations sur la base. Exemple 3 : un transfert bancaire entre 2 comptes. c M. Mathieu 78

79 Les propriétés d une transactions : atomicité : les opérations d une transaction sont exécutées comme une unique opération consistance : la base reste dans un état cohérent à la fin de la transaction isolation : la transaction s exécute indépendamment d autres opérations sur la base durabilité : les mises à jour d une transaction sont définitives (ACID) Une transaction comporte : un début : création une fin : validation ou annulation c M. Mathieu 79

2 ème PARTIE : LE LANGAGE SQL

2 ème PARTIE : LE LANGAGE SQL 2 ème PARTIE : LE LANGAGE SQL PLAN : I. Le langage de manipulation des données II. Le langage de définition des données III. Administration de la base de données IV. Divers (HORS PROGRAMME) Introduction:

Plus en détail

IFT3030 Base de données. Chapitre 6 SQL. Plan du cours

IFT3030 Base de données. Chapitre 6 SQL. Plan du cours IFT3030 Base de données Chapitre 6 SQL Plan du cours Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des

Plus en détail

SQL et Bases de données relationnelles. November 26, 2013

SQL et Bases de données relationnelles. November 26, 2013 November 26, 2013 SQL : En tant que langage d interrogation En tant que langage de mise à jour En tant que langage de définition de données Langages de requête Langages qui permettent d interroger la BD

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers

PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers Département d informatique Collège Lionel Groulx. Préparé par Saliha Yacoub Table des matières. Introduction...

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

SQL : Origines et Evolutions

SQL : Origines et Evolutions SQL : Origines et Evolutions SQL est dérivé de l'algèbre relationnelle et de SEQUEL Il a été intégré à SQL/DS, DB2, puis ORACLE, INGRES, Il existe trois versions normalisées, du simple au complexe : SQL1

Plus en détail

PL/SQL. Pourquoi PL/SQL? Introduction. Principales caractéristiques de PL/SQL. Utilisation de PL/SQL

PL/SQL. Pourquoi PL/SQL? Introduction. Principales caractéristiques de PL/SQL. Utilisation de PL/SQL PL/SQL Avertissement : cette partie du cours n est qu un survol du langage PL/SQL, utile pour écrire des procédures stockées simples Elle laisse de côté de nombreuses fonctionnalités du langage Université

Plus en détail

SQL Les fondamentaux du langage (2ième édition)

SQL Les fondamentaux du langage (2ième édition) Introduction 1. Un peu d'histoire 11 2. Les normes SQL 12 3. Description rapide du modèle relationnel 14 3.1 Principaux concepts du modèle relationnel 15 3.2 Principales règles 16 4. Les opérateurs en

Plus en détail

Conception de bases de données relationnelles

Conception de bases de données relationnelles Conception de bases de données relationnelles Langage PL/(pg)SQL Marie Szafranski 2015-2016 ensiie 1 2015-2016 ensiie 1 Aperçu de PL/(pg)SQL Aperçu de PL/(pg)SQL PL/SQL : Procedural Language for SQL (Oracle)

Plus en détail

Le Langage SQL version Oracle

Le Langage SQL version Oracle Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn

Plus en détail

Cours 7 : Langage de définition, manipulation et contrôle des données

Cours 7 : Langage de définition, manipulation et contrôle des données Cours 7 : Langage de définition, manipulation et contrôle des données Objets d une base de données Dans un schéma Tables, vues Index, clusters, séquences, synonymes Packages, procédures, fonctions, déclencheurs

Plus en détail

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale Département Génie Informatique BD50 TP5 : Développement PL/SQL Avec Oracle SQL Developer Gestion Commerciale Françoise HOUBERDON & Christian FISCHER Copyright Avril 2007 Présentation de la gestion commerciale

Plus en détail

Introduction aux bases de données relationnelles

Introduction aux bases de données relationnelles Formation «Gestion des données scientifiques : stockage et consultation en utilisant des ases de données» 24 au 27 /06/08 Introduction aux ases de données relationnelles Christine Tranchant-Dureuil UMR

Plus en détail

Programmer avec PL/SQL

Programmer avec PL/SQL Programmer avec PL/SQL École Supérieure de la Statistique et de l Analyse de l Information (ESSAI) Avertissement : cette partie du cours n est qu un survol du langage PL/SQL, utile pour écrire des procédures

Plus en détail

Théorie et pratique de Base de données Oracle M.Boubetra 1 Système d Information But : gérer un ensemble d informations Stockage Consultation Modification Suppression Edition 2 Conception d un système

Plus en détail

Considérons une partie d un modèle conceptuel de données avec les schémas d entités. Figure 1: Une partie du modèle conceptuel de données

Considérons une partie d un modèle conceptuel de données avec les schémas d entités. Figure 1: Une partie du modèle conceptuel de données Considérons une partie d un modèle conceptuel de données avec les schémas d entités suivants: EMP(EmpNo, Enom, Job, DirNo, Sal, Prime) DEPT(DeptNo, Dnom, Adr) Où EmpNo est la clé primaire de EMP et DeptNo

Plus en détail

1.1/Architecture des SGBD Les architectures physiques de SGBD sont très liées au mode de répartition.

1.1/Architecture des SGBD Les architectures physiques de SGBD sont très liées au mode de répartition. LP Informatique(DA2I), F7 : Administration Système, Réseaux et Base de données 15/11/2007, Enseignant : M. Nakechbnadi, mail : nakech@free.fr Première parie : Administration d une BD Chapitre 1 : Architecture

Plus en détail

FONCTIONS DE TRAITEMENT} COUNT

FONCTIONS DE TRAITEMENT} COUNT Nom Prénom Promotion Date Buhl Damien Année 1 Groupe 2 21 Janvier 2007 CER Prosit n 22 Mots-Clés : - Requête/Langage SQL Le langage SQL (Structured Query Language) est un langage de requêtes, il permet

Plus en détail

Bases de données Programmation PL/SQL. LP TOSPI, IUT Montluçon, Université Blaise Pascal 2010-2011 Laurent d Orazio

Bases de données Programmation PL/SQL. LP TOSPI, IUT Montluçon, Université Blaise Pascal 2010-2011 Laurent d Orazio Bases de données Programmation PL/SQL LP TOSPI, IUT Montluçon, Université Blaise Pascal 2010-2011 Laurent d Orazio Plan I. Vue d ensemble et principes de fonctionnement II. Eléments de programmation III.

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Plan Généralités Langage de Définition des (LDD) Langage de Manipulation

Plus en détail

Faculté de Sciences Économiques et de Gestion. Bases de données. Maîtrise de Sciences Économiques Année 2001-2002 Jérôme Darmont

Faculté de Sciences Économiques et de Gestion. Bases de données. Maîtrise de Sciences Économiques Année 2001-2002 Jérôme Darmont Faculté de Sciences Économiques et de Gestion Bases de données Maîtrise de Sciences Économiques Année 2001-2002 Jérôme Darmont http://eric.univ-lyon2.fr/~jdarmont/ Plan du cours I. Introduction II. Le

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

Langage SQL : créer et interroger une base

Langage SQL : créer et interroger une base Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,

Plus en détail

Cours 2 : SQL Structured Query Language

Cours 2 : SQL Structured Query Language Cours 2 : SQL Structured Query Language SQL Langage permettant de définir, manipuler et contrôler les données d une BD relationnelle Objet d une norme de l Institut National Américain de Normalisation

Plus en détail

UMBB, Département Informatique Cours Master 1 BDA Responsable : A. AIT-BOUZIAD Le 06 Décembre 2011 CHAPITRE 2 CONTRÖLE DE DONNEES DANS SQL

UMBB, Département Informatique Cours Master 1 BDA Responsable : A. AIT-BOUZIAD Le 06 Décembre 2011 CHAPITRE 2 CONTRÖLE DE DONNEES DANS SQL UMBB, Département Informatique Cours Master 1 BDA Responsable : A. AIT-BOUZIAD Le 06 Décembre 2011 CHAPITRE 2 CONTRÖLE DE DONNEES DANS SQL I Gestion des utilisateurs et de leurs privilèges I.1 Gestion

Plus en détail

Oracle Database 10g: Les fondamentaux du langage SQL I

Oracle Database 10g: Les fondamentaux du langage SQL I Oracle University Appelez-nous: +33 (0) 1 57 60 20 81 Oracle Database 10g: Les fondamentaux du langage SQL I Durée: 3 Jours Description Ce cours offre aux étudiants une introduction à la technologie de

Plus en détail

Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple

Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire l objet d une exploitation

Plus en détail

1/28. I Utiliser à bon escient les types de données proposés par SQL, ou. Introduction 3/28

1/28. I Utiliser à bon escient les types de données proposés par SQL, ou. Introduction 3/28 Introduction 1/28 2/28 Anne-Cécile Caron Licence MIAGE - BDD 2015-2016 Objectifs Après ce cours, les TD et TP correspondants, vous devez être capables de I Créer des tables à partir d un modèle I Utiliser

Plus en détail

I) Bases de données et tables :

I) Bases de données et tables : I) Bases de données et tables : Un S.G.B.D. est un outil pour organiser, stocker, modifier, calculer et extraire des infos. Une B.D.R. peut être considérée comme un ensemble de tables à 2 dimensions. Exemple

Plus en détail

PL/SQL. Présenté par Abdoul Aziz Ciss Dept GIT EPT Email: aaciss@ept.sn. 1 PL/SQL --AA Ciss

PL/SQL. Présenté par Abdoul Aziz Ciss Dept GIT EPT Email: aaciss@ept.sn. 1 PL/SQL --AA Ciss PL/SQL Présenté par Abdoul Aziz Ciss Dept GIT EPT Email: aaciss@ept.sn 1 Contenu Introduction au PL/SQL Variables PL/SQL Créer des sections exécutables Interactions avec le serveur Oracle Structures de

Plus en détail

Cours PL/SQL. Cours PL/SQL. E.Coquery. emmanuel.coquery@liris.cnrs.fr

Cours PL/SQL. Cours PL/SQL. E.Coquery. emmanuel.coquery@liris.cnrs.fr Cours PL/SQL E.Coquery emmanuel.coquery@liris.cnrs.fr Programmation au sein du SGBD Pourquoi? Les contraintes prédéfinies ne sont pas toujours suffisantes. Exemple : tout nouveau prix pour un CD doit avoir

Plus en détail

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Le langage SQL pour Oracle - partie 1 : SQL comme LDD Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger

Plus en détail

Apprendre le langage SQL - Le DDL - 1 / 34 - Apprendre le langage SQL par l exemple Partie 1 : le DDL

Apprendre le langage SQL - Le DDL - 1 / 34 - Apprendre le langage SQL par l exemple Partie 1 : le DDL Apprendre le langage SQL - Le DDL - 1 / 34 - Apprendre le langage SQL par l exemple Partie 1 : le DDL Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire

Plus en détail

Bases de données. Jean-Yves Antoine. VALORIA - Université François Rabelais Jean-Yves.Antoine@univ-tours.fr. L3 S&T mention Informatique

Bases de données. Jean-Yves Antoine. VALORIA - Université François Rabelais Jean-Yves.Antoine@univ-tours.fr. L3 S&T mention Informatique Bases de données Jean-Yves Antoine VALORIA - Université François Rabelais Jean-Yves.Antoine@univ-tours.fr L3 S&T mention Informatique Bases de Données IUP Vannes, UBS J.Y. Antoine 1 Bases de données SGBD

Plus en détail

Langage de Requêtes. talel@infres.enst.fr

Langage de Requêtes. talel@infres.enst.fr Langage de Requêtes talel@infres.enst.fr Supports de cours : (1) Database Management Systems, R. Ramakrishnan and J. Gehrke, ed. McGrawHill, 2000. (2) Bases de Données, G. Gardarin, ed. Eyrolles, 2001.

Plus en détail

SQL : création et mises-à-jour de schémas et de données

SQL : création et mises-à-jour de schémas et de données SQL : création et mises-à-jour de schémas et de données Commandes de définition de données (DDL) Commandes de mise-à-jour de données (DML) Vues SQL-MAJ, vues-1 / 33 Exemple Définition de la relation

Plus en détail

3 - Administration de BD SQL. Chapitre III. Administration des BD SQL. Actions possibles. Composants ORACLE. Chapitre 3 : Administration des BD SQL 1

3 - Administration de BD SQL. Chapitre III. Administration des BD SQL. Actions possibles. Composants ORACLE. Chapitre 3 : Administration des BD SQL 1 3 - Administration de BD SQL Chapitre III Administration des BD SQL 3.1 Création de BD 3.2 Gestion des utilisateurs 3.3 Administration des transactions 3.4 Accès à une BD distante 3.5 Conclusions Composants

Plus en détail

Oracle : Langage PL/SQL

Oracle : Langage PL/SQL 1 Introduction à PL/SQL Oracle : Langage PL/SQL PL/SQL est un langage de programmation procédural et structuré. 1.1 Langage de programmation Il contient un ensemble d'instructions permettant de mettre

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 1 : Vues et Index Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Les Vues Généralités Syntaxe Avantages Conditions de mise à jour 2 Index Généralités

Plus en détail

Web dynamique. Techniques, outils, applications. (Partie C)

Web dynamique. Techniques, outils, applications. (Partie C) Web dynamique Techniques, outils, applications (Partie C) Nadir Boussoukaia - 2006 1 SOMMAIRE 1. MySQL et PHP (20 min) 2. SQL (petits rappels) (20 min) 2 MySQL et PHP Synthèse 3 MySQL et PHP SGBD MySQL

Plus en détail

Rudiments SQL pour Oracle BDA_RCS

Rudiments SQL pour Oracle BDA_RCS Rudiments SQL pour Oracle BDA_RCS 08-11-2014 1 La base de données Gestion des commandes 08-11-2014 2 Les noms de colonnes sont volontairement simplifiés 3 Ajout de nouvelles colonnes dans des tables qui

Plus en détail

Les déclencheurs (Triggers) avec Oracle

Les déclencheurs (Triggers) avec Oracle 1) Introduction 2) Événements déclenchant 3) Mécanisme général 4) Privilèges systèmes 5) Syntaxe 6) Nom du déclencheur 7) Option BEFORE ou AFTER 8) Déclencheur LMD 9) Déclencheur LDD 10) Déclencheur d'instance

Plus en détail

2.1/ Les privilèges sous oracle

2.1/ Les privilèges sous oracle LP Informatique(DA2I), UF7 : Administration Système, Réseaux et Base de données 13/12/2007, Enseignant : M. Nakechbnadi, mail : nakech@free.fr Première parie : Administration d une BD Chapitre 2 : Transaction,

Plus en détail

Devoir Data WareHouse

Devoir Data WareHouse Université Paris XIII Institut Galilée Master 2-EID BENSI Ahmed CHARIFOU Evelyne Devoir Data WareHouse Optimisation, Transformation et Mise à jour utilisées par un ETL Mr R. NEFOUSSI Année 2007-2008 FICHE

Plus en détail

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle

Plus en détail

Introduction aux bases de données

Introduction aux bases de données 1/73 Introduction aux bases de données Formation continue Idir AIT SADOUNE idir.aitsadoune@supelec.fr École Supérieure d Électricité Département Informatique Gif sur Yvette 2012/2013 2/73 Plan 1 Introduction

Plus en détail

Modèle relationnel Création et modification des relations en SQL

Modèle relationnel Création et modification des relations en SQL Modèle relationnel Création et modification des relations en SQL ENT - Clé sql2009 BD - Mírian Halfeld-Ferrari p. 1 Insertion dans une relation Pour insérer un tuple dans une relation: insert into Sailors

Plus en détail

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes. Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger

Plus en détail

INTRODUCTION A SQL. http://www.lri.fr/~rigaux/bd/sql.html

INTRODUCTION A SQL. http://www.lri.fr/~rigaux/bd/sql.html 012345678901234567890123 INTRODUCTION A SQL SQL = Structured Query Language SEQUEL = Structured English as a QUEry Language standard ISO depuis 87. Avantages : implanté + ou - complètement sur principaux

Plus en détail

TD BD dynamique. DECLARE déclaration des variables, constantes, exceptions et curseurs locaux au bloc

TD BD dynamique. DECLARE déclaration des variables, constantes, exceptions et curseurs locaux au bloc TD BD dynamique Un déclencheur est utilisé pour complémenter les contraintes d'intégrité de la base. Une partie des contraintes ne peut souvent pas être définie avec les fonctionnalités décrites jusqu'ici.

Plus en détail

Le language SQL (2/2)

Le language SQL (2/2) Les commandes de base sous Unix SQL (Première partie) Walter RUDAMETKIN Bureau F011 Walter.Rudametkin@polytech-lille.fr Création d'une base ([] facultatif) : createdb nombase [ -U comptepostgres ] Destruction

Plus en détail

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition)

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition) Avant-propos 1. Les objectifs de ce livre 13 2. Les principaux sujets qu'aborde ce livre 13 3. À qui s adresse ce livre? 14 4. Les pré-requis 14 Introduction à MySQL 1. Introduction aux bases de données

Plus en détail

Le Langage De Description De Données(LDD)

Le Langage De Description De Données(LDD) Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,

Plus en détail

Introduction au langage SQL

Introduction au langage SQL Introduction au langage SQL 1. Description SQL est un acronyme pour Structured Query Language qui a été conçu par IBM, et a succédé au langage SEQUEL. C est maintenant le langage le plus utilisé dans les

Plus en détail

Université M Hamed Bougara Boumerdès, Faculté des Sciences, Département Informatique SQL PROCEDURAL

Université M Hamed Bougara Boumerdès, Faculté des Sciences, Département Informatique SQL PROCEDURAL Université M Hamed Bougara Boumerdès, Faculté des Sciences, Département Informatique Cours (Master 1) : Bases de Données Avancées, (Responsable : A. AIT BOUZIAD) SQL PROCEDURAL Dans les différentes parties

Plus en détail

Bases de données et Systèmes transactionnels

Bases de données et Systèmes transactionnels Bases de données et Systèmes transactionnels Dominique Laurent dominique.laurent@u-cergy.fr Tao-Yan Jen jen@u-cergy.fr Plan du cours Introduction Modèle Entité/Association Langage SQL - ORACLE Architectures

Plus en détail

Il est nécessaire de connaître au moins un système d'exploitation de type graphique.

Il est nécessaire de connaître au moins un système d'exploitation de type graphique. GBD-030 Oracle Prise en main Saint-Denis à 9h30 5 jours Objectifs : Une formation Oracle complète pour découvrir tous les concepts du système et les différentes façons de les utiliser concrètement tout

Plus en détail

Pour les débutants. langage de manipulation des données

Pour les débutants. langage de manipulation des données Pour les débutants SQL : langage de manipulation des données Les bases de données sont très utilisées dans les applications Web. La création, l interrogation et la manipulation des données de la base sont

Plus en détail

SQL (Première partie) Walter RUDAMETKIN

SQL (Première partie) Walter RUDAMETKIN SQL (Première partie) Walter RUDAMETKIN Bureau F011 Walter.Rudametkin@polytech-lille.fr Les commandes de base sous Unix Création d'une base ([] facultatif) : createdb nombase [ -U comptepostgres ] Destruction

Plus en détail

Table des matières PREAMBULE...I 1 L OUTIL SQL*PLUS... 1-1 2 L INTERROGATION DES DONNEES... 2-1 3 LES OPERATEURS LOGIQUES... 3-1

Table des matières PREAMBULE...I 1 L OUTIL SQL*PLUS... 1-1 2 L INTERROGATION DES DONNEES... 2-1 3 LES OPERATEURS LOGIQUES... 3-1 Table des matières PREAMBULE...I 1 L OUTIL SQL*PLUS... 1-1 Le langage SQL... 1-2 Le langage PL/SQL... 1-4 Qu'est-ce que SQL*Plus?... 1-5 Commandes SQL*Plus... 1-7 Variables de substitution... 1-15 La commande

Plus en détail

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles) SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients

Plus en détail

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

1/39. I Langage d interrogation et modification des données (DML) I Langage de définition du schéma (DDL)

1/39. I Langage d interrogation et modification des données (DML) I Langage de définition du schéma (DDL) Introduction 1/39 2/39 Introduction Anne-Cécile Caron Licence MIAGE - BDD 2015-2016 A partir de l algèbre relationnelle s est construit un langage informatique permettant d interroger les données : SQL

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 4 : PL/SQL : ou comment faire plus avec ORACLE 2ème partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Exceptions Rappels bloc PL/SQL Definition

Plus en détail

Apprendre le langage SQL - Le DDL - 1 / 28 - Apprendre le langage SQL par l exemple Partie 1 : le DDL

Apprendre le langage SQL - Le DDL - 1 / 28 - Apprendre le langage SQL par l exemple Partie 1 : le DDL Apprendre le langage SQL - Le DDL - 1 / 28 - Apprendre le langage SQL par l exemple Partie 1 : le DDL Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire

Plus en détail

CC30 Certificat de compétence Conception, développement et animation de sites Web

CC30 Certificat de compétence Conception, développement et animation de sites Web CC30 Certificat de compétence Conception, développement et animation de sites Web UE RSX053 Introduction aux bases de données Séance 9 1 Table des matières 1. PLSQL...3 1.1. Présentation...3 1.2. L utilité

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

Introduction aux Systemes d Information et aux Bases de Données

Introduction aux Systemes d Information et aux Bases de Données Introduction aux Systemes d Information et aux Bases de Données L2 Informatique Serenella Cerrito Département d Informatique Évry 2014-2015 Quels valeurs peut prendre un attribut? Ici, les types les plus

Plus en détail

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4 SQL pour Oracle 10g Razvan Bizoï Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4 Table des matières PRÉAMBULE... MODULE 1 : PRÉSENTATION DE L ENVIRONNEMENT... 1-1 Qu'est-ce

Plus en détail

PL/SQL Procedural Language Extensions to SQL

PL/SQL Procedural Language Extensions to SQL PL/SQL Procedural Language Extensions to SQL Il permet : - l'utilisation d'un sous-ensemble du langage SQL, - la mise en œuvre de structures procédurales, - la gestion des erreurs. L'une des plus importantes

Plus en détail

Bases de Données Avancées PL/SQL

Bases de Données Avancées PL/SQL 1/170 Bases de Données Avancées Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017

Plus en détail

Instructions SQL. Première partie : Langage de description et de gestion des données

Instructions SQL. Première partie : Langage de description et de gestion des données Instructions SQL Première partie : Langage de description et de gestion des données Quelques instructions et leur syntaxe 1. Introduction Trois principales catégories d instructions. Instructions de création

Plus en détail

Base de donnée relationnelle. Exemple de table: Film. Exemple de table: Acteur. Exemple de table: Role. Contenu de la table Role

Base de donnée relationnelle. Exemple de table: Film. Exemple de table: Acteur. Exemple de table: Role. Contenu de la table Role IFT7 Programmation Serveur Web avec PHP Introduction à MySQL Base de donnée relationnelle Une base de données relationnelle est composée de plusieurs tables possédant des relations logiques (théorie des

Plus en détail

Compte rendu d activité Fiche n 1

Compte rendu d activité Fiche n 1 Compte rendu d activité Fiche n 1 Alexandre K. (http://ploufix.free.fr) Nature de l activité Création d une base de connaissances avec PostgreSQL Contexte : Le responsable technique souhaite la mise en

Plus en détail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

SQL Server 2012 - SQL, Transact SQL Conception et réalisation d'une base de données

SQL Server 2012 - SQL, Transact SQL Conception et réalisation d'une base de données Le modèle relationnel 1. Introduction 9 2. Rappels sur le stockage des données 9 2.1 Les différentes catégories de données 10 2.1.1 Les données de base 10 2.1.2 Les données de mouvement 10 2.1.3 Les données

Plus en détail

Auto-évaluation DB2 for z/os: cours de base

Auto-évaluation DB2 for z/os: cours de base Auto-évaluation DB2 for z/os: cours de base Document: f1067test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION DB2 FOR Z/OS:

Plus en détail

PL/SQL. Richard CHBEIR Email : richard.chbeir@u-bourgogne.fr

PL/SQL. Richard CHBEIR Email : richard.chbeir@u-bourgogne.fr PL/SQL Richard CHBEIR Email : richard.chbeir@u-bourgogne.fr Plan Introduction Environnements Bloc PL/SQL Variables Traitements conditionnels Traitements répétitifs Curseurs Gestion des erreurs Fonctions

Plus en détail

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours Bilan : Des vues à PL/SQL corrigé Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Cas exemple 2 Les tables... 3 Vues et index 4 Privilèges 5 Fonctions

Plus en détail

Plan. Bases de données. Cours 1 : Généralités & rappels. But du cours. Organisation du cours. Polytech Paris-Sud. Apprentis 4 ème année

Plan. Bases de données. Cours 1 : Généralités & rappels. But du cours. Organisation du cours. Polytech Paris-Sud. Apprentis 4 ème année Plan Bases de données Polytech Paris-Sud Apprentis 4 ème année Cours 1 : Généralités & rappels 1.1 Avant-propos 1.2 Algèbre relationnelle kn@lri.fr http://www.lri.fr/~kn 2/18 But du cours Organisation

Plus en détail

INITIATION AU LANGAGE SQL

INITIATION AU LANGAGE SQL ECOLE NATIONALE DES INGENIEURS DES TRAVAUX AGRICOLES DE BORDEAUX DEPARTEMENT ENTREPRISE ET SYSTEMES UNITE DE FORMATION INFORMATIQUE ET GENIE DES EQUIPEMENTS ~o~o~o~ INITIATION AU LANGAGE SQL Notes de cours

Plus en détail

1/44. I Programming Language with SQL. I Langage de programmation procédural ADA like. I Langage propriétaire mais qui a inspiré la norme SQL3

1/44. I Programming Language with SQL. I Langage de programmation procédural ADA like. I Langage propriétaire mais qui a inspiré la norme SQL3 Généralités 1/44 2/44 Anne-Cécile Caron Présentation Programming Language with SQL Langage de programmation procédural ADA like Langage propriétaire mais qui a inspiré la norme SQL3 Adapté à la manipulation

Plus en détail

Solutions des exercices du chapitre 6 selon la syntaxe du dialecte Oracle

Solutions des exercices du chapitre 6 selon la syntaxe du dialecte Oracle Solutions des exercices du chapitre 6 selon la syntaxe du dialecte Oracle 1. a Ajouter un CHECK sur la table LigneCommande ALTER TABLE LigneCommande ADD (CONSTRAINT XXX CHECK (noarticle

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 2 : Contrôle des accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Les privilèges Définitions 2 Rôles Définition de création d attribution de

Plus en détail

11. MySQL. Cours Web. MySQL. 11. MySQL. 11. MySQL. Structured Query Language. Lionel Seinturier. Université Pierre & Marie Curie

11. MySQL. Cours Web. MySQL. 11. MySQL. 11. MySQL. Structured Query Language. Lionel Seinturier. Université Pierre & Marie Curie Cours Web Lionel Seinturier Université Pierre & Marie Curie Lionel.Seinturier@lip6.fr Structured Query Language Langage de manipulation des données stockées dans une base de données interrogation/insertion/modification/suppression

Plus en détail

Chapitre 7 Le Langage de Définition de Données

Chapitre 7 Le Langage de Définition de Données Chapitre 7 Le Langage de Définition de Données Jusque là, nous avons réalisé toutes les interrogations possibles sur les données, sans pour autant savoir comment gérer leurs structures. Dans ce chapitre,

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

Informatique Initiation aux requêtes SQL. Sommaire

Informatique Initiation aux requêtes SQL. Sommaire cterrier.com 1/14 04/03/2008 Informatique Initiation aux requêtes SQL Auteur : C. Terrier ; mailto:webmaster@cterrier.com ; http://www.cterrier.com Utilisation : Reproduction libre pour des formateurs

Plus en détail

Bases de données et sites WEB

Bases de données et sites WEB Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

Plus en détail

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

Déclencheurs Bases de Données TRIGGER. C. Bonnet // R. Chapuis Cours PL/SQL d après cours ORACLE - OAI

Déclencheurs Bases de Données TRIGGER. C. Bonnet // R. Chapuis Cours PL/SQL d après cours ORACLE - OAI Déclencheurs Bases de Données TRIGGER C. Bonnet // R. Chapuis Cours PL/SQL d après cours ORACLE - OAI Généralités Un déclencheur est un traitement (sous forme de bloc PL/SQL) qui s exécute automatiquement

Plus en détail

Auto-évaluation Oracle: cours de base

Auto-évaluation Oracle: cours de base Auto-évaluation Oracle: cours de base Document: F0475Test.fm 14/01/2008 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION ORACLE: COURS DE

Plus en détail

Développer en PL/SQL. Sommaire du cours

Développer en PL/SQL. Sommaire du cours Sommaire du cours Module 1 Introduction et Rappels Module 2 Eléments de langage PL/SQL Module 3 Accès à la Base de données Module 4 Traitements stockés Module 5 Gestion des exceptions Module 6 - Compléments

Plus en détail