Types de données composites

Slides:



Advertisements
Présentations similaires
PL/SQL : Le Langage PL/SQL est une extension du SQL, qui offre
Advertisements

Créer une base de données MySQL Et création de tables, enregistrements, interaction avec PHP.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données Javascript – SQL - LemanOS.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
LMD: Langage de Manipulation de Données
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
T ECHNOLOGIES O RACLE Manipulation des données © sebvita.com.
Les requêtes Les requêtes permettent dinterroger une base de données suivant 3 opérateurs : La projection Affiche le contenu dun champ complet En langage.
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
L’utilisation des bases de données
Gestion des erreurs Packages ©Alain Villeneuve, 1999
PLSQL ORACLE 8i Connecter VB à BD Oracle Les collections Question de révision Les blocs anonymes Les triggers REVISION Par : Joël Huot.
SQL: Contraintes et Triggers
Les concepts et les méthodes des bases de données
Bases de Données Avancées - TP2: SQL
Modex Web Dominique Rossin
Manipulation des données Requêtes simples
PL/SQL Noreddine GHERABI 1.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
OPTIMISATION DE BASE DE DONNEES ORACLE
Limiter et trier des données
Le Langage de BLOC PL/SQL
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
SQL (deuxième partie) Langage de manipulation de données (LMD) Chap 4.6 p 107.
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Objectifs A la fin de ce chapitre, vous pourrez : présenter l'utilisation d'opérations de chargement de données par chemin direct décrire l'utilisation.
Créer des packages.
Concepts intermédiaires de VHDL
05/02/98WEB ESNIG Modèle logique de données Oracle Designer/2000 & Oracle Web Server.
 C'est une fenêtre par laquelle les informations d'une table peuvent être visualisées et changées.  C'est une table virtuelle: ◦ elle n'existe pas ◦
(Procedural Language / Structured Query Language)
Module 7 : Utilisation de requêtes élaborées
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
6 Copyright © Oracle Corporation, Tous droits réservés. Autres concepts relatifs aux packages.
Sélection de colonnes (la projection)
Module 13 : Implémentation de déclencheurs. Vue d'ensemble Présentation des déclencheurs Définition de déclencheurs Exemples de déclencheurs Performances.
Structure de stockage et relations
Cours LCS N°4 Présenté par Mr: LALLALI
Les Contraintes.
SQL : Langage de Manipulation des données
Introduction  Langage propre à Oracle basé sur ADA  Offre une extension procédurale à SQL  PL/SQL permet d’utiliser un sous-ensemble du langage SQL.
Révision du langage PL/SQL
Création et Gestion de Tables
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
Les vues Une vue: c’est une relation virtuelle. Définie par:
 L’information est conservée sous forme de tables  Contient: ◦ Un nom ◦ Une clé primaire ◦ Une liste de colonnes ◦ Les informations/données (sous forme.
PL/SQL Présentation.
Note: Les nombres écrits en gras renvoie à des leçons entières. Symbole %FOUND 6-13 %ISOPEN 6-13 %NOTFOUND 6-13 %ROWCOUNT 6-13 %ROWTYPE 5, 6-17 %TYPE 1-20.
Procédures Stockées Fonctions Paquetages
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
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.
Le langage SQL.
Nicolas Ribot Introduction aux triggers Nicolas Ribot - Licence GNU FDL - Version 1.1.
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Cours n°2 Implémentation et exploitation
Introduction au langage PL/SQL
Les exceptions Une exception est un identificateur PL/SQL détecté pendant la phase d’exécution. Comment est-elle déclenchée ? À la suite d’une erreur.
Les vues, indexes, séquences.  Qu’est ce qu’une vue 1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base.
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,
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
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.
Langage de manipulation de données (LMD)
Oracle.
Manipulation D’Une Base De Données
Info Bases de données avancées
Transcription de la présentation:

Types de données composites Deux catégories de données composites : Enregistrements PL/SQL Ensembles PL/SQL Table INDEX BY VARRAY Les types de données composites contiennent des composantes internes

Enregistrements PL/SQL Composés d’un ou plusieurs champs de type scalaire, RECORD ou INDEX BY Différents des lignes d’une table de base de données Traitent un ensemble de champs comme une unité logique Permettent d’extraire une ligne de données à partir d’une table pour la traiter

Création d’un enregistrement Pour créer un enregistrement, il faut définir un type RECORD, puis déclarer des enregistrements de ce type. TYPE type_name IS RECORD (field_declaration [, field_declaration]…); Où field_declaration est : field_name {field_type | variable%TYPE |table.column%TYPE|table%ROWTYPE} [[NOT NULL] {:= | DEFAULT} expr]

Exemple TYPE emp_record_type IS RECORD (numemp number(6) not null := 100, nomemp emp.ename%TYPE, fonction varchar2(20), salaire number(10,2)); emp_record emp_record_type;

Exemple DECLARE TYPE personne IS RECORD (nom pilote.plnom%TYPE, prenom pilote.plprenom%TYPE, ville pilote.ville%TYPE, salaire pilote.salaire%TYPE); pl_record personne; BEGIN SELECT plnom,plprenom,ville,salaire INTO pl_record FROM PILOTE WHERE plnum = &numero_pilote; DBMS_OUTPUT.PUT_LINE(pl.prenom||’ ‘||upper(pl.nom)||’ ‘|| pl.ville||’ ‘||pl.salaire); END;

Attribut %ROWTYPE Permet de déclarer une variable à partir d’un ensemble de colonnes d’une table ou d’une vue de base de données. Doit être précédé du nom de la table de base de données. Les champs de l’enregistrement tirent leurs noms et leurs types de données des colonnes de la table ou de la vue. declare emp_record employe%ROWTYPE;

Attribut %ROWTYPE Il n’est pas nécessaire de connaitre le nombre et les types de données des colonnes de la table de base de données sous-jacente. Le nombre et les types des colonnes de la table de base de données sous-jacente peuvent être modifiés à l’exécution. L’attribut permet d’extraire une ligne avec l’instruction SELECT *

Exemple DEFINE emp_numero = 1812 DECLARE emp_rec emp%ROWTYPE; BEGIN SELECT * INTO emp_rec FROM emp WHERE empno = &emp_numero; INSERT INTO emp_retraite VALUES(emp_rec.empno,emp_rec.ename,emp_rec.job, emp_rec.mgr,emp_rec.hiredate,SYSDATE, emp_rec.sal,emp_rec.comm,emp_rec.dept); COMMIT; END;

Table INDEX BY Ces tables comportent 2 composants : Une clé primaire de type BINARY_INTEGER Une colonne de type scalaire ou RECORD Leur taille peut augmenter de façon dynamique, car elles ne présentent pas de contrainte.

Créer une table INDEX BY TYPE type_name IS TABLE OF {column_type | variable%TYPE |table.column%TYPE} [NOT NULL] |table%ROWTYPE [INDEX BY BINARY_INTEGER]; identifier type_name; TYPE ename_table_type IS TABLE OF employe.nomemp%TYPE INDEX BY BINARY_INTEGER; ename_table ename_table_type;

Créer une table INDEX BY DECLARE TYPE ename_table_type IS TABLE OF employe.nomemp%TYPE INDEX BY BINARY_INTEGER; TYPE dateemb_table_type IS TABLE OF employe.dateemb%TYPE ename_table ename_table_type; dateemb_table dateemb_table_type; BEGIN ename_table(1) := ‘AMALI’; dateemb_table(5) := SYSDATE + 7; IF ename_table.EXISTS(1) THEN INSERT INTO … … END; /

Méthodes des tables INDEX BY Les méthodes suivantes facilitent l’utilisation des tables INDEX BY : EXISTS COUNT FIRST and LAST PRIOR(indice) NEXT(indice) TRIM[(n)] DELETE[(n[,m)])] EXTEND(n) LIMIT

Table d’enregistrements INDEX BY Définir une variable TABLE avec un type de données PL/SQL admis. Déclarer une variable PL/SQL pour le stockage des informations d’un service. DECLARE TYPE serv_table_type IS TABLE OF service%ROWTYPE INDEX BY BINARY_INTEGER; serv_table serv_table_type; -- tout élément de la table serv_table est un enregistrement

Exemple SET SERVEROUTPUT ON DECLARE TYPE emp_table_type IS TABLE OF employe%ROWTYPE INDEX BY BINARY_INTEGER; my_emp_table emp_table_type; v_count number(3):=105; BEGIN FOR i IN 100..v_count LOOP select * INTO my_emp_table(i) from employe where numemp = i; END LOOP; FOR i IN my_emp_table.FIRST..my_emp_table.LAST dbms_output.put_line(my_emp_table(i).nomemp); END; /