Podcast
Questions and Answers
Que signifie le PL dans PL/SQL ?
Que signifie le PL dans PL/SQL ?
Quelles sont les étapes nécessaires pour se connecter à la base de données XEPDB1 ?
Quelles sont les étapes nécessaires pour se connecter à la base de données XEPDB1 ?
Quelles commandes sont utilisées pour afficher des valeurs en PL/SQL ?
Quelles commandes sont utilisées pour afficher des valeurs en PL/SQL ?
Quels privilèges doivent être affectés à l'utilisateur test ?
Quels privilèges doivent être affectés à l'utilisateur test ?
Signup and view all the answers
Quelle est la structure de base d'un bloc PL/SQL ?
Quelle est la structure de base d'un bloc PL/SQL ?
Signup and view all the answers
Quelle commande est utilisée pour activer l'affichage des résultats dans SQL+ ?
Quelle commande est utilisée pour activer l'affichage des résultats dans SQL+ ?
Signup and view all the answers
Comment se déclare une variable en PL/SQL ?
Comment se déclare une variable en PL/SQL ?
Signup and view all the answers
Quel type de variable n'est pas considéré comme une variable scalaire en PL/SQL ?
Quel type de variable n'est pas considéré comme une variable scalaire en PL/SQL ?
Signup and view all the answers
Quel mot-clé est utilisé pour affecter le résultat d'une requête à une variable ?
Quel mot-clé est utilisé pour affecter le résultat d'une requête à une variable ?
Signup and view all the answers
Pourquoi est-il important que la requête retourne une seule ligne lors de l'utilisation d'une affectation ?
Pourquoi est-il important que la requête retourne une seule ligne lors de l'utilisation d'une affectation ?
Signup and view all the answers
Dans l'exemple donné, quelle variable stocke le jour selon la valeur de nb ?
Dans l'exemple donné, quelle variable stocke le jour selon la valeur de nb ?
Signup and view all the answers
Le code suivant : 'CASE nb WHEN 1 THEN 'lundi'' est un exemple de quoi ?
Le code suivant : 'CASE nb WHEN 1 THEN 'lundi'' est un exemple de quoi ?
Signup and view all the answers
La déclaration 'film exemplaire.numFilm%TYPE;' est un exemple de quoi ?
La déclaration 'film exemplaire.numFilm%TYPE;' est un exemple de quoi ?
Signup and view all the answers
Quel type de boucle est utilisé pour répéter une action un nombre fixe de fois en PL/SQL?
Quel type de boucle est utilisé pour répéter une action un nombre fixe de fois en PL/SQL?
Signup and view all the answers
Quel est l'objectif principal de l'instruction EXIT WHEN dans une boucle?
Quel est l'objectif principal de l'instruction EXIT WHEN dans une boucle?
Signup and view all the answers
Quel message d'erreur est levé lorsque le prix d'un produit dépasse 110% de son ancien prix dans le trigger AUGMENTPU2?
Quel message d'erreur est levé lorsque le prix d'un produit dépasse 110% de son ancien prix dans le trigger AUGMENTPU2?
Signup and view all the answers
Dans quel cas le trigger VERIFIERNOCLIENT lève-t-il une erreur?
Dans quel cas le trigger VERIFIERNOCLIENT lève-t-il une erreur?
Signup and view all the answers
Comment est déclaré une variable numérique en PL/SQL?
Comment est déclaré une variable numérique en PL/SQL?
Signup and view all the answers
Quel est le rôle principal du trigger dans PL/SQL?
Quel est le rôle principal du trigger dans PL/SQL?
Signup and view all the answers
Quelle instruction est utilisée pour afficher un message à l'utilisateur dans PL/SQL?
Quelle instruction est utilisée pour afficher un message à l'utilisateur dans PL/SQL?
Signup and view all the answers
Quelle forme d'itération est représentée par 'LOOP...END LOOP'?
Quelle forme d'itération est représentée par 'LOOP...END LOOP'?
Signup and view all the answers
Study Notes
Base de Données Avancée - DUT GI - S3
- Le cours porte sur la base de données avancée.
- Le cours est dispensé par Laraqui Abderrahmane.
- La version du document est non révisée.
- L'année académique est 2023-2024.
Installation d'Oracle Database XE
- Lien pour le téléchargement d'Oracle Database XE : https://www.oracle.com/fr/database/technologies/xe-downloads.html
- Différentes versions sont disponibles pour Windows x64, Linux x64 (OL8) et Linux x64 (OL7).
- Les tailles de fichier et dates de mise à jour sont indiquées pour chaque version.
Installation de SQL Developer
- Lien pour le téléchargement de SQL Developer : https://www.oracle.com/database/sqldeveloper/technologies/download/
- Versions disponibles pour Windows 64-bit (459 Mo) avec JDK 11 intégré, Windows 32/64 bits (510 Mo) et Mac OSX (462 Mo) avec JDK 11 intégré.
Connexion à la Base de données
- Se connecter à Oracle en utilisant l'authentification sysdba.
- La commande
select name from v$pdbs;
permet de lister les bases de données disponibles. - La base de données XEPDB1 est mentionnée comme seule base de données existante.
- La connexion à XEPDB1 s'effectue avec la syntaxe:
connect sys/oracle@localhost:1521/XEPDB1 as sysdba
. - Création d'un nouvel utilisateur (test) avec le privilège
create session
etcreate table
. - Création de la table
etudiants
avec des colonnesid
,nom
etage
. - Insertion d'un enregistrement dans la table
etudiants
. - Interrogation de la table
etudiants
(affichage des données).
Connexion avec le compte Utilisateur
- Connexion en tant qu'utilisateur
test
avec la syntaxeconnect test/test@localhost:1521/XEPDB1;
. - Création de la table
etudiants
. - Insertion de données à la table
etudiants
. - Requête SQL pour afficher les données de la table.
Blocs PL/SQL
- PL/SQL est un langage procédural permettant d'effectuer des traitements complexes sur une base de données.
- Les instructions
DECLARE
,BEGIN
,END
définissent les blocs PL/SQL. - Les procédures
DBMS_OUTPUT.PUT()
etDBMS_OUTPUT.PUT_LINE()
permettent d'afficher le contenu d'une variable. - L'
instruction
SET SERVEROUTPUT ON
active les sorties d'affichage.
Variables
- Déclaration des variables avec
nom type [:= initialisation];
- Affectation avec
variable := valeur;
- Exemple
c varchar2(15) := 'Hello World!';
Types de Variables
- Les types de variables peuvent être issus de SQL (CHAR, NUMBER, DATE, VARCHAR2) ou PL/SQL (BOOLEAN, SMALLINT, BINARY_INTEGER, DECIMAL, FLOAT, INTEGER, REAL, ROWID).
- Déclaration d'une variable scalaire avec
nom-variable nom-du-type;
- Exemples d'utilisation avec nom-variable nom-table.nom-attribut%TYPE
Affectation
- L'utilisation de
INTO
permet d'assigner le résultat d'une requête à une variable. - Exemple:
select cnum into numero from conducteur
Traitements Conditionnels
- Utilisation de
IF...THEN...ELSE...END IF
pour les instructions conditionnelles. - Utilisation de
CASE
pour gérer les choix multiples. - Les conditions sont similaires à celles utilisées en SQL.
Traitements Répétitifs
- Boucles
LOOP...END LOOP
permettent d'exécuter des blocs d'instructions plusieurs fois. - L'instruction
EXIT WHEN
permet de quitter une boucle. - Boucles
FOR
etWHILE
.
Structures
- Une structure (RECORD) regroupe plusieurs types de données.
- Déclaration d'un type de structure :
TYPE nomType IS RECORD (...)
. - Déclaration d'une variable de type structure :
nomVariable nomType
. - Exemple de utilisation de type structuré
p point
.
Déclaration pour un Enregistrement
- Déclaration par ROWTYPE:
nomVariable nomTable%ROWTYPE
(ou nomCurseur%ROWTYPE). - Exemple avec une requête SQL pour récupérer l'information dans une table
Déclaration pour un Enregistrement (2)
- Déclarer un enregistrement par énumération de rubriques:
- Exemple d'utilisation
TYPE nomType IS RECORD (...)
et la déclaration de la variable.
Exemple
- Exemple complet d'utilisation d'une variable de type de structure.
Tables et Structures
- Utilisation du type
nomTable.nomColonne%type
. - Déclarer une ligne d'une table avec
nomTable%rowtype
.
Gestion de Transaction
- Les transactions sont des unités logiques de travail exécutées ensemble, ou non exécutées du tout.
- Si des erreurs surviennent pendant une transaction, l'opération peut être annulée (
ROLLBACK
). - gestion de transactions et les blocs PL/SQL
Gestion de Transaction - Structure d'un bloc
- Les programmes PL/SQL sont constitués de blocs avec les sections DECLARATION, corps de bloc et gestion des erreurs (EXCEPTION).
Section Déclaration
- Contient la déclaration des structures et variables dans le bloc.
- Facultatif.
Section Corps du Bloc
- Bloc
BEGIN...END
contenant les instructions du programme. - Obligatoire.
Section Traitement des Erreurs
- Section
EXCEPTION
qui gère les erreurs. - Facultative.
Syntaxe
- Syntaxe complète pour un bloc PL/SQL, incluant
DECLARE
,BEGIN
,EXCEPTION
,END
.
Exemple Complet
- Un exemple d'utilisation complet d'une transaction PL/SQL, y compris la gestion des erreurs.
Les Curseurs dans SQL
- Les curseurs sont des zones de travail qui permettent de traiter une requête SQL ligne par ligne.
- Attributs
SQL%ROWCOUNT
,SQL%FOUND
,SQL%NOTFOUND
,SQL%ISOPEN
. - Utilisation des curseurs avec
OPEN
,FETCH
,CLOSE
Les Attributs du Curseur Explicite
- Attributs
CUR_EXP%ISOPEN
,CUR_EXP%NOTFOUND
,CUR_EXP%FOUND
, etCUR_EXP%ROWCOUNT
.
Les Attributs des Curseurs SQL
- Comment utiliser l'attribut
SQL%ROWCOUNT
pour obtenir le nombre de lignes affectées. - Comment utiliser
SQL%FOUND
etSQL%NOTFOUND
pour conditionner la boucle.
Les Boucles FOR des Curseurs
- Utilisation des boucles
FOR
pour parcourir les lignes d'un curseur.
Procédures
- Définition et utilisation des procédures PL/SQL avec paramètres (type
IN
,OUT
,IN OUT
).
Fonctions
- Définition et utilisation des fonctions PL/SQL avec paramètres (type
IN
). - Invocation d'une fonction via la structure
SELECT module (...) FROM DUAL;
Déclencheurs
- Définition des déclencheurs pour exécuter des actions automatiquement lorsqu'un événement (INSERT, UPDATE, DELETE) se produit sur une table.
- Types de déclencheurs (énoncé, tuple).
- Utilisation des variables
:old
et:new
pour accéder aux anciennes et nouvelles valeurs. - Gestion des erreurs dans les déclencheurs.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Ce quiz porte sur les concepts avancés de bases de données dans le cadre du DUT G informatique, semestre 3. Vous y trouverez des informations sur l'installation d'Oracle Database XE, SQL Developer, et les méthodes de connexion à la base de données. Testez vos connaissances sur ces sujets essentiels pour une compréhension approfondie des bases de données.