Base de Données Avancée - DUT GI - S3

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Que signifie le PL dans PL/SQL ?

  • Programmation Logicielle
  • Programmation Linéaire
  • Langage de Programmation
  • Langage de Procédure (correct)

Quelles sont les étapes nécessaires pour se connecter à la base de données XEPDB1 ?

  • Créer un utilisateur puis exécuter une requête
  • Se connecter en tant que test puis exécuter une requête
  • Se connecter en tant que sysdba, puis lister les utilisateurs
  • Se connecter en tant que sysdba, puis créer un utilisateur (correct)

Quelles commandes sont utilisées pour afficher des valeurs en PL/SQL ?

  • DBMS_OUTPUT.PRINT() et DBMS_OUTPUT.DISPLAY()
  • DBMS_DISPLAY.PUT() et DBMS_DISPLAY.PUT_LINE()
  • DBMS_OUTPUT.PUT() et DBMS_OUTPUT.PUT_LINE() (correct)
  • DBMS_OUTPUT.ECRIRE() et DBMS_OUTPUT.ÉCRIRE_LIGNE()

Quels privilèges doivent être affectés à l'utilisateur test ?

<p>create session et create table (C)</p> Signup and view all the answers

Quelle est la structure de base d'un bloc PL/SQL ?

<p>DECLARE / BEGIN / END; (A)</p> Signup and view all the answers

Quelle commande est utilisée pour activer l'affichage des résultats dans SQL+ ?

<p>SET SERVEROUTPUT ON (A)</p> Signup and view all the answers

Comment se déclare une variable en PL/SQL ?

<p>nom type [:= initialisation]; (B)</p> Signup and view all the answers

Quel type de variable n'est pas considéré comme une variable scalaire en PL/SQL ?

<p>ARRAY (C)</p> Signup and view all the answers

Quel mot-clé est utilisé pour affecter le résultat d'une requête à une variable ?

<p>INTO (D)</p> 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 ?

<p>Pour éviter une erreur d'exécution. (B)</p> Signup and view all the answers

Dans l'exemple donné, quelle variable stocke le jour selon la valeur de nb ?

<p>jour (A)</p> Signup and view all the answers

Le code suivant : 'CASE nb WHEN 1 THEN 'lundi'' est un exemple de quoi ?

<p>Condition CASE (B)</p> Signup and view all the answers

La déclaration 'film exemplaire.numFilm%TYPE;' est un exemple de quoi ?

<p>Déclaration de type basé sur une table (C)</p> 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?

<p>Boucle FOR (A)</p> Signup and view all the answers

Quel est l'objectif principal de l'instruction EXIT WHEN dans une boucle?

<p>Quitter la boucle sous une condition spécifique (C)</p> 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?

<p>'Violation de la Contrainte' (B)</p> Signup and view all the answers

Dans quel cas le trigger VERIFIERNOCLIENT lève-t-il une erreur?

<p>Lorsque le Codecli est égal à 10000 (C)</p> Signup and view all the answers

Comment est déclaré une variable numérique en PL/SQL?

<p>declare nb number ; (A)</p> Signup and view all the answers

Quel est le rôle principal du trigger dans PL/SQL?

<p>Maintenir les contraintes d'intégrité (A)</p> Signup and view all the answers

Quelle instruction est utilisée pour afficher un message à l'utilisateur dans PL/SQL?

<p>DBMS_OUTPUT.PUT_LINE (A)</p> Signup and view all the answers

Quelle forme d'itération est représentée par 'LOOP...END LOOP'?

<p>Une boucle infinie (B)</p> Signup and view all the answers

Flashcards

Installation d'Oracle Database XE

Étape pour installer la version d'évaluation gratuite d'Oracle Database.

Connexion en sysdba

Connexion à Oracle en tant qu'administrateur système pour gérer les bases de données.

Base de données XEPDB1

Une base de données Oracle préconfigurée.

Create session et create table

Privilèges accordés à un utilisateur pour créer des sessions et des tables.

Signup and view all the flashcards

PL/SQL

Extension de SQL permettant des traitements complexes dans une base de données, avec des instructions procédurales.

Signup and view all the flashcards

Déclaration de variable

Création d'une variable avec son nom, type et éventuellement une initialisation.

Signup and view all the flashcards

Variable scalaires

Variables stockant une seule valeur.

Signup and view all the flashcards

Type de données SQL

Types de variables issus de SQL : CHAR, NUMBER, DATE, VARCHAR2.

Signup and view all the flashcards

Affectation de variable

Attribution d'une valeur à une variable.

Signup and view all the flashcards

SET SERVEROUTPUT ON

Commande SQL+ pour afficher la sortie des instructions PL/SQL.

Signup and view all the flashcards

Instruction CASE

Structure de contrôle pour une sélection multiple.

Signup and view all the flashcards

Requête INTO

Attribuer des valeurs de requête dans des variables.

Signup and view all the flashcards

Type de données PL/SQL

Types de variables spécifiques à PL/SQL supplémentaires aux types SQL. Exemple: BOOLEAN, INTEGER.

Signup and view all the flashcards

Boucle LOOP

Permet d'exécuter des instructions de manière répétée jusqu'à une condition d'arrêt. Utilise l'instruction EXIT WHEN pour quitter la boucle.

Signup and view all the flashcards

Boucle FOR

Boucle qui itère sur une plage de valeurs spécifiques.

Signup and view all the flashcards

Boucle WHILE

Boucle qui s'exécute tant qu'une condition est vraie.

Signup and view all the flashcards

Instruction EXIT WHEN

Permet de quitter une boucle LOOP lorsqu'une condition est satisfaite.

Signup and view all the flashcards

Déclencheur (TRIGGER)

Fonction SQL qui est exécutée automatiquement en réponse à un événement spécifique sur une table.

Signup and view all the flashcards

Déclencheur pour la contrainte d'intégrité dynamique

Trigger qui empêche les mises à jour de prix dans une table 'PRODUIT' si la nouvelle valeur est inférieure de plus de 10% à la valeur actuelle.

Signup and view all the flashcards

Déclencheur pour la contrainte d'intégrité statique

Trigger qui vérifie la valeur d'un champ 'Codecli' et lève une erreur si la valeur est égale à 10000.

Signup and view all the flashcards

CHECK contrainte

Une contrainte dans une table SQL qui spécifie une condition qui doit être vraie pour chaque enregistrement.

Signup and view all the flashcards

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

Installation de SQL Developer

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 et create table.
  • Création de la table etudiants avec des colonnes id, nom et age.
  • 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 syntaxe connect 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() et DBMS_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 et WHILE.

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, et CUR_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 et SQL%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.

Quiz Team

Related Documents

Cours BD Avancée 2023-2024 PDF

More Like This

Use Quizgecko on...
Browser
Browser