SQL (suite) Manipulation: CRUD Insertion, Suppression, mise à jour, lecture Triggers Vues. Bases de données



Documents pareils
Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

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

TP Contraintes - Triggers

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

Intégrité des données

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

Administration des bases de données. Jean-Yves Antoine

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

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Bases de données et sites WEB

Bases de données avancées

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

Bases de données relationnelles

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

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

CREATION WEB DYNAMIQUE

Langage SQL : créer et interroger une base

INTEGRITE ET BD ACTIVES

Olivier Mondet

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

A QUOI SERVENT LES BASES DE DONNÉES?

Gestion de base de données

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

A QUOI SERVENT LES BASES DE DONNÉES?

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

Chapitre 10. Architectures des systèmes de gestion de bases de données

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Intégrité sémantique dans les bases de données relationnelles

Les bases de données

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN

AGRÉGATION «ÉCONOMIE ET GESTION»

Le Langage De Description De Données(LDD)

TP3 : Creation de tables 1 seance

Partie II Cours 3 (suite) : Sécurité de bases de données

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

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Mysql. Les requêtes préparées Prepared statements

Les déclencheurs. Version 1.0. Grégory CASANOVA

Systèmes de Gestion de Bases de Données

Gestion des transactions et accès concurrents dans les bases de données relationnelles

BTS/CGO P10 SYSTEME INFORMATION Année

16H Cours / 18H TD / 20H TP

Bases de données et sites WEB Licence d informatique LI345

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Le langage SQL (première partie) c Olivier Caron

1. Base de données SQLite

Introduction au Système de Gestion de Base de Données et aux Base de Données

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Le Langage SQL version Oracle

Création et Gestion des tables

PHP 5. La base de données MySql. A. Belaïd 1

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

SQL Historique

1 Modélisation d une base de données pour une société de bourse

Historisation des données

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Le langage procédural PL-PGSQL

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

OpenPaaS Le réseau social d'entreprise

Application web de gestion de comptes en banques

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

Introduction à JDBC. Accès aux bases de données en Java

Introduction au PL/SQL Oracle. Alexandre Meslé

MySQL / SQL EXEMPLES

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

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Compétences Business Objects

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

Bases de Données Réparties Concepts et Techniques. Matthieu Exbrayat ULP Strasbourg - Décembre 2007

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Gestion des utilisateurs et de leurs droits

APIs de table pour SQL Server

Le langage SQL Rappels

Cours SQL. Base du langage SQL et des bases de données

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Comprendre les bases de données

Compte-rendu de projet de Système de gestion de base de données

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Stockage du fichier dans une table mysql:

FileMaker 13. Guide de référence SQL

Bases de Données Réparties

Les BASES de DONNEES dans WampServer

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

IFT3030 Base de données. Chapitre 1 Introduction

Devoir Data WareHouse

I4 : Bases de Données

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Vincent Augusto

Bases de Données Relationnelles. Le Modèle Relationnel

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

Bases de Données Avancées PL/SQL

Modélisation et Gestion des bases de données avec mysql workbench

Transcription:

SQL (suite) Manipulation: CRUD Insertion, Suppression, mise à jour, lecture Triggers Vues

Manipulation CRUD INSERT INTO (Create) pour insérer des tuple SELECT FROM (Read) pour lire des tuples UPDATE (Update) pour mettre à jour des tuples DELETE FROM (Delete) pour supprimer des tuples

Insertion Insérer des tuples dans une table Syntaxe: INSERT INTO table VALUES ('valeur 1', 'valeur 2',...) INSERT INTO table (nomatt1, nomatt2, ) VALUES ('valeur 1', 'valeur 2',...) ('valeur 1', 'valeur 2',...) INSERT INTO table (nomatt1, nomatt2, ) SELECT col1, col2, FROM table

Insertion INSERT INTO Employe VALUES (102, 'DUPONT', 35, 'Ingenieur', 120, '10/01/2002', 3500, 0, 25); INSERT INTO Employe(num, nom, fonc) VALUES (104, 'DURAND', 'Comptable');

Insertion à partir d une sélection INSERT INTO Employe(num, nom, fonc) SELECT F.numero, F.nom, F.fonction FROM Employe_2 F WHERE F.dept=4;

Suppression Supprimer des tuples dans une table Syntaxe: DELETE FROM `table` WHERE condition DELETE FROM `table` WHERE att1 IN ( SELECT att1 FROM table WHERE <condition> )

Suppression DELETE FROM Employe WHERE nom = 'DUPONT' ; DELETE FROM Employe WHERE dept in (SELECT num FROM Departement D WHERE D.nom='R&D') ;

Mise à jour Mettre à jour les attributs de tuples Syntaxe: UPDATE table SET colonne_1 = 'valeur 1', colonne_2 = 'valeur 2', colonne_3 = 'valeur 3' WHERE <condition> UPDATE table SET colonne1 = valeur 1, colonne2 = valeur 2, WHERE colonn_1 IN SELECT att1 FROM table WHERE <condition> )

Mise à jour UPDATE Employe SET dept=25 WHERE dept=45 ; UPDATE Employe SET salaire=salaire*1.1 WHERE dept in (SELECT num FROM Departement D WHERE D.nom='R&D') ;

Triggers

Définition de triggers Les triggers sont des objets de la base de données Ils sont attachés à une table Ils permettent de déclencher l'exécution d'instructions lorsqu'une modification est effectuée

Définition de triggers Un trigger spécifie un évènement, un moment, une action, une condition, pour surveiller la base de données L'action doit être exécutée automatiquement si la condition est satisfaite CREATE TRIGGER nom_trigger quand evenement ON table [FOR EACH ROW [WHEN condition] ] action;

Définition de triggers Nom_trigger: Nom qui permet de d identifier le trigger Quand: BEFORE/AFTER Evenement: INSERT/UPDATE/DELETE Table: Table à laquelle le trigger est rattaché condition: Condition pour exécution du trigger Action: instruction à réaliser

Définition de triggers FOR EACH ROW trigger de niveau ligne : pour que la règle soit déclenchée une fois pour chaque ligne affectée par l'évènement déclencheur sans cette clause : trigger de niveau instruction : règle déclenchée une seule fois pour chaque évènement

Définition de triggers Il ne peut exister qu un seul trigger par combinaison moment/evenement par table Ex. pour une table FILM un seul trigger BEFORE UPDATE Donc pour chaque table, un nombre max de triggers possible!

Définition de triggers Dans la partie instructions du Trigger, MySQL met a disposition deux mots clés: OLD et NEW OLD: correspond aux valeurs de la ligne avant le traitement NEW: correspond aux valeurs de la ligne après traitement Conséquence: OLD et NEW n existent que dans le cas d un UPDATE

Définition de triggers Exemple: INSERT INTO Client(id, nom, prenom, code) Values(122, Toto, Alain, 97180) Dans le trigger NEW.id -> 122 NEW.nom -> Toto Evidemment, OLD n est pas défini

Définition de triggers Exemple: UPDATE Client SET code = 97200 WHERE id=122 Dans le Trigger OLD.code -> 97180 NEW.code -> 97200 OLD.nom = NEW.nom -> TOTO

Exemple on suppose la table DeptSalaires créée : DeptSalaires (numdept, nbreemp, totalsal); Mettre en place un trigger qui garantisse que l attribut totalsal de la table DeptSalaires soit toujours égal au total des salaires de tous les employes du département Rappel: Employe(num, nom, age, fonction, sup, datent, salaire, comm, #numdept) Departement(numDept, nom, noresp, datecre, loc)

Exemple trigger CREATE TRIGGER TotalSalaires AFTER INSERT ON Employe FOR EACH ROW WHEN new.dept IS NOT NULL AND SALAIRE IS NOT NULL UPDATE DeptSalaires SET total_sal=total_sal + new.salaire WHERE num_dept=new.dept ;

Vues

Définition des vues Une vue est une table virtuelle dérivée de tables de base : On stocke seulement la définition de vue Son contenu est généré dynamiquement CREATE VIEW nom_de_vue (nom_de_colonne {,nom_de_colonne } ) ; AS sous-selection ;

Exemple de vues Exemple CREATE VIEW EmployeDept(num, nom,dept) AS SELECT E.num, E.nom, D.nom FROM Employe E, Departement D WHERE E.dept=D.num ;

Propriétés des vues Une vue est toujours supposée à jour Elle n'est générée que lorsqu'une réquête est spécifiée sur elle Une requête sur une vue est traduite en requête sur les tables de base Une table temporaire correspondant à la vue est créée