SQL : Langage de Définition de Données (DDL)

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quelle commande SQL est utilisée pour supprimer une structure de données?

  • ERASE
  • REMOVE
  • DROP (correct)
  • DELETE

Parmi les types de contraintes suivants, lequel exige que chaque valeur dans une colonne soit unique ?

  • UNIQUE (correct)
  • CHECK
  • PRIMARY KEY
  • NOT NULL

Quelle contrainte spécifie qu'une colonne ne peut pas contenir de valeurs NULL?

  • UNIQUE
  • PRIMARY KEY
  • NOT NULL (correct)
  • FOREIGN KEY

Quel est le but de la commande ALTER TABLE en SQL?

<p>Modifier la structure d'une table. (D)</p> Signup and view all the answers

Quelle est la commande SQL utilisée pour supprimer une table d'une base de données?

<p>DROP TABLE (B)</p> Signup and view all the answers

Quelle commande est utilisée pour modifier le nom d'une table existante en SQL?

<p>RENAME TABLE (D)</p> Signup and view all the answers

Quelle est la principale différence entre une vue simple et une vue complexe en SQL?

<p>Les vues simples utilisent une seule table, tandis que les vues complexes peuvent utiliser plusieurs tables. (D)</p> Signup and view all the answers

Quel est le but de l'option WITH CHECK OPTION lors de la création d'une vue en SQL?

<p>Assurer que toutes les opérations d'insertion et de mise à jour respectent les conditions de la vue. (A)</p> Signup and view all the answers

Quel est le but principal d'une séquence dans une base de données SQL?

<p>Générer automatiquement des nombres uniques. (D)</p> Signup and view all the answers

Quelles sont les 'pseudo-colonnes' utilisées avec les séquences pour accéder à leur valeur actuelle et incrémenter la séquence?

<p>CURRVAL et NEXTVAL (A)</p> Signup and view all the answers

Dans quel cas est-il approprié de créer un index sur une colonne d'une table SQL?

<p>La colonne contient un grand nombre de valeurs NULL. (D)</p> Signup and view all the answers

Quel est l'objectif principal d'un synonyme dans une base de données?

<p>Fournir un nom alternatif pour un objet de base de données. (A)</p> Signup and view all the answers

Quelle commande SQL est utilisée pour ajouter une nouvelle colonne à une table existante?

<p>ALTER TABLE ... ADD (A)</p> Signup and view all the answers

Si vous souhaitez modifier le type de données d'une colonne existante dans une table, quelle commande SQL utiliserez-vous?

<p>ALTER TABLE ... MODIFY (D)</p> Signup and view all the answers

Quelle est la commande SQL appropriée pour supprimer une colonne spécifique d'une table?

<p>ALTER TABLE ... DROP (A)</p> Signup and view all the answers

Comment peut-on ajouter une contrainte de clé primaire à une table existante en utilisant SQL?

<p>ALTER TABLE ... ADD CONSTRAINT ... PRIMARY KEY (D)</p> Signup and view all the answers

Quelle commande SQL est utilisée pour supprimer une contrainte existante d'une table?

<p>ALTER TABLE ... DROP CONSTRAINT (C)</p> Signup and view all the answers

Quel est l'effet de l'option ON DELETE CASCADE lors de la définition d'une contrainte de clé étrangère?

<p>Supprime les lignes enfants si la ligne parente est supprimée. (A)</p> Signup and view all the answers

Quelle commande SQL est utilisée pour vider rapidement toutes les données d'une table tout en conservant la structure de la table?

<p>TRUNCATE TABLE table_name (C)</p> Signup and view all the answers

Pour créer une table à partir d'une sous-requête, quelle clause doit être incluse dans la définition CREATE TABLE?

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

Dans une contrainte FOREIGN KEY, quelle est la fonction de REFERENCES?

<p>Identifier une colonne dans la table parente (B)</p> Signup and view all the answers

Quel est le principal avantage d'utiliser des vues dans une base de données SQL?

<p>Simplification de la complexité des requêtes et contrôle de l'accès aux données (B)</p> Signup and view all the answers

Lequel des énoncés suivants est vrai concernant l'utilisation de NOT NULL lors de la création d'une table?

<p>La contrainte NOT NULL peut être définie au niveau de la colonne. (C)</p> Signup and view all the answers

Quel est le rôle de la contrainte CHECK dans une base de données SQL?

<p>Définir une condition que chaque ligne de la table doit satisfaire (A)</p> Signup and view all the answers

Parmi les suivants, lequel n'est pas un type de données valide en SQL?

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

Comment modifier une table pour qu'une colonne accepte des valeurs NULL, si elle était initialement définie avec la contrainte NOT NULL?

<p>ALTER TABLE ... MODIFY ... (A)</p> Signup and view all the answers

Si vous créez une vue avec l'option WITH READ ONLY, quelles opérations ne sont pas autorisées via cette vue?

<p>INSERT, UPDATE, DELETE (C)</p> Signup and view all the answers

Quand est-il logique d'utiliser l'option FORCE lors de la création d'une vue?

<p>Pour créer une vue même si les tables sous-jacentes n'existent pas. (C)</p> Signup and view all the answers

Quel est le but de l'utilisation de CYCLE lors de la création d'une séquence?

<p>Indiquer que la séquence doit redémarrer à la valeur minimale après avoir atteint la valeur maximale. (C)</p> Signup and view all the answers

Quelle est la différence entre un index unique et un index non unique en SQL?

<p>Un index unique garantit qu'il n'y a pas de doublons dans les colonnes indexées, tandis qu'un index non unique ne le garantit pas. (B)</p> Signup and view all the answers

Quand est-il conseillé de ne pas créer d'index sur une table?

<p>Lorsque la table est fréquemment mise à jour (A)</p> Signup and view all the answers

Quelle est la différence entre un synonyme public et un synonyme privé?

<p>Un synonyme public est accessible à tous les utilisateurs, tandis qu'un synonyme privé est accessible uniquement à son créateur. (C)</p> Signup and view all the answers

Dans le contexte des contraintes de clé étrangère, que signifie l'option ON UPDATE RESTRICT?

<p>Empêche la mise à jour de la clé primaire dans la table parente si des enregistrements correspondants existent dans la table enfant. (C)</p> Signup and view all the answers

Quel est le principal avantage d'utiliser le langage de définition de données (LDD) en SQL?

<p>Il permet de définir et de gérer la structure de la base de données (A)</p> Signup and view all the answers

Quelle commande SQL est utilisée pour activer une contrainte désactivée?

<p>ALTER TABLE ... ENABLE CONSTRAINT (B)</p> Signup and view all the answers

Quelle commande SQL permet de désactiver une contrainte existante?

<p>ALTER TABLE ... DISABLE CONSTRAINT (D)</p> Signup and view all the answers

Si vous essayez d'insérer des données dans une vue définie avec l'option WITH CHECK OPTION, que se passe-t-il si les données ne satisfont pas la condition de la vue?

<p>Une erreur est renvoyée, et l'insertion est annulée. (D)</p> Signup and view all the answers

Quel est l'impact de la suppression d'une séquence sur les tables qui utilisent cette séquence pour générer des clés primaires?

<p>La suppression de la séquence n'a pas d'impact direct sur les tables, mais empêche la génération de nouvelles clés primaires. (C)</p> Signup and view all the answers

Lors de la création d'un index composite (sur plusieurs colonnes), quel est l'ordre des colonnes dans la définition de l'index?

<p>Les colonnes les plus souvent utilisées dans les requêtes doivent venir en premier. (D)</p> Signup and view all the answers

Quel est l'avantage d'utiliser des synonymes pour les objets de base de données?

<p>Toutes les réponses ci-dessus (C)</p> Signup and view all the answers

Flashcards

Qu'est-ce qu'un LDD (Langage de Définition de Données) ?

Un langage utilisé pour définir les structures de données dans une base de données.

Que fait la commande CREATE TABLE ?

Créer une nouvelle table dans la base de données.

Que fait la commande ALTER TABLE ?

Modifier la structure d'une table existante, comme ajouter, modifier ou supprimer des colonnes.

Que fait la commande DROP TABLE ?

Supprimer une table de la base de données.

Signup and view all the flashcards

Que fait la commande RENAME TABLE ?

Attribuer un nouveau nom à une table existante.

Signup and view all the flashcards

Qu'est-ce qu'une VUE ?

Une table virtuelle basée sur le résultat d'une requête SQL.

Signup and view all the flashcards

Que signifie 'Création et modification de vue' ?

Le fait de créer ou modifier une vue dans la base de données en se basant sur une ou plusieurs tables.

Signup and view all the flashcards

Que fait la commande DROP VIEW ?

Supprimer une vue existante de la base de données.

Signup and view all the flashcards

Qu'est-ce qu'une SEQUENCE ?

Un objet de base de données qui génère une séquence de nombres uniques.

Signup and view all the flashcards

Que signifie 'Création de séquence' ?

L'action de créer une séquence pour générer automatiquement des numéros.

Signup and view all the flashcards

Que signifie 'Modification de séquence' ?

L'action de modifier les paramètres d'une séquence existante.

Signup and view all the flashcards

Que fait CURRVAL ?

Elle retourne la valeur courante de la séquence sans l'incrémenter.

Signup and view all the flashcards

Que fait NEXTVAL?

Elle avance la séquence au numéro suivant et la retourne.

Signup and view all the flashcards

Que fait la commande DROP SEQUENCE ?

Supprimer une séquence de la base de données.

Signup and view all the flashcards

Qu'est-ce qu'un INDEX?

Un objet de base de données qui accélère la recherche de données dans une table.

Signup and view all the flashcards

Que signifie 'Création d'index'?

Le fait de créer un index sur une ou plusieurs colonnes d'une table.

Signup and view all the flashcards

Que fait la commande DROP INDEX ?

Supprimer un index existant de la base de données.

Signup and view all the flashcards

Qu'est-ce qu'un SYNONYME?

Un alias ou un nom alternatif pour un objet de base de données.

Signup and view all the flashcards

Que signifie 'Création de synonyme' ?

Le fait de créer un synonyme pour un objet de base de données.

Signup and view all the flashcards

Que fait la commande DROP SYNONYM ?

Supprimer un synonyme existant de la base de données.

Signup and view all the flashcards

Qu'est-ce qu'une contrainte ?

Une règle qui limite les valeurs pouvant être insérées dans une colonne.

Signup and view all the flashcards

Que fait la contrainte NOT NULL ?

Empêche d'insérer des valeurs NULL dans une colonne.

Signup and view all the flashcards

Que fait la contrainte UNIQUE ?

Assure que chaque valeur dans une colonne est unique.

Signup and view all the flashcards

Que fait la contrainte CHECK ?

Définit une condition que chaque ligne doit respecter.

Signup and view all the flashcards

Que fait la contrainte PRIMARY KEY ?

Identifie une colonne comme clé primaire de la table.

Signup and view all the flashcards

Que fait la contrainte FOREIGN KEY ?

Établit une relation entre deux tables.

Signup and view all the flashcards

Que fait ON DELETE CASCADE ?

Supprime les lignes dépendantes dans la table fille.

Signup and view all the flashcards

Que fait ON DELETE SET NULL ?

Convertit les valeurs dépendantes en NULL.

Signup and view all the flashcards

Que fait ON DELETE RESTRICT ?

Empêche la suppression si des lignes dépendantes existent.

Signup and view all the flashcards

Study Notes

Le Langage SQL : Langage de Définition de Données

  • Le langage SQL permet la définition de données, la manipulation de données, l'interrogation de données, et le contrôle de données.
  • DDL (Data Definition Language) est un langage de définition de données.
  • DDL permet la création, la modification, et la suppression de structures de données.

Table

  • La création, la modification, la suppression et le renommage de tables sont couverts.

Syntaxe de Création de Table

  • La commande CREATE TABLE est utilisée pour créer une nouvelle table.
  • Syntaxe : CREATE TABLE [schema.]<nom_table> (<nom_colonne> type [DEFAULT expr], ...);
  • Exemple : CREATE TABLE Etudiants (Netudiant number, nom varchar2(10), prenom varchar2(10));
  • La commande DESCRIBE (ou DESC) affiche la description de la table. Par exemple: DESCRIBE Etudiants;

Types de Données

  • Les types de données incluent CHAR, NCHAR, VARCHAR2, NVARCHAR2, NUMBER, BINARY_FLOAT, BINARY_DOUBLE, LONG, DATE, et TIMESTAMP.
  • CHAR et NCHAR ont une taille fixe entre 1 et 2000.
  • VARCHAR2 et NVARCHAR2 ont une taille variable entre 1 et 4000.
  • NUMBER a une précision comprise entre 1 et 38, et une échelle variant de -84 à 127.
  • BINARY_FLOAT est un nombre 32 bits à virgule flottante nécessitant 5 octets.
  • BINARY_DOUBLE est un nombre 64 bits à virgule flottante nécessitant 9 octets.
  • LONG permet des données caractères ayant une taille inférieure ou égale à 2GO.
  • DATE comprend des dates entre le 1/1/4712 AJC et le 31/12/999 APJC.
  • TIMESTAMP inclut l'année, le mois, le jour, l'heure, la minute, la seconde et la fraction de seconde.

Création de Table à partir d'une Sous-Interrogation

  • Syntaxe: CREATE TABLE [schema.]<nom_table> (<nom_colonne> type [DEFAULT expr], ...) AS sous_interrogation;
  • Exemple: CREATE TABLE emp AS SELECT * FROM employees WHERE department_id = 20;

Les Contraintes

  • Les cinq types de contraintes sont: NOT NULL, UNIQUE, CHECK, PRIMARY KEY, et FOREIGN KEY.
  • Il existe deux niveaux de définition de contraintes: au niveau de la colonne et au niveau de la table.
  • Syntaxe: CREATE TABLE [schema.]table (nom_colonne type [DEFAULT expr] [contrainte_niveau_colonne], [contrainte_niveau_colonne][,...]);
  • Les contraintes peuvent être définies lors de la création de la table ou après.

Contrainte NOT NULL

  • La contrainte NOT NULL ne peut être définie qu'au niveau de la colonne.
  • Exemple: CREATE TABLE Fournisseurs (fournisseur_id number(10) NOT NULL, nom varchar2(20) NOT NULL, contact varchar2(50));

Contrainte UNIQUE

  • Une contrainte d'intégrité de type unique exige que chaque valeur dans une colonne ou un ensemble de colonnes soit unique.
  • Une contrainte unique autorise la valeur NULL, sauf indication contraire via des contraintes NOT NULL.
  • Exemple au niveau colonne: CREATE TABLE Fournisseurs (fournisseur_id number(10) UNIQUE, nom varchar2(20) NOT NULL, contact varchar2(50));
  • Exemple au niveau table: CREATE TABLE Fournisseurs (fournisseur_id number(10), nom varchar2(20) NOT NULL, contact varchar2(50), CONSTRAINT uq_fournisseurs UNIQUE(fournisseur_id));

Contrainte CHECK

  • La contrainte CHECK définit une condition que chaque ligne de la table doit vérifier.
  • Les appels de fonction telle que SYSDATE et les interrogations qui font référence à d'autres valeurs dans d'autres lignes ne sont pas autorisés.
  • Exemple au niveau colonne: CREATE TABLE Fournisseurs (fournisseur_id number(10) CHECK (fournisseur_id BETWEEN 10 AND 1000), nom varchar2(20) NOT NULL, contact varchar2(50));

Contrainte PRIMARY KEY

  • Une contrainte clé primaire crée une clé primaire pour la table.
  • Une seule clé primaire peut être créée par table.
  • La clé primaire peut être constituée d'une ou plusieurs colonnes et aucune des colonnes faisant partie de la clé primaire ne peut être NULL.
  • Exemple au niveau colonne: CREATE TABLE Fournisseurs (fournisseur_id number(10) PRIMARY KEY, nom varchar2(20) NOT NULL, contact varchar2(50));
  • Exemple au niveau table: CREATE TABLE Etudiants(nom varchar2(30), prenom varchar2(30), date_naiss date, CONSTRAINT pk_etudiants PRIMARY KEY (nom, prenom));

Contrainte FOREIGN KEY

  • Définit la colonne dans la table fille au niveau contrainte de table.

  • REFERENCES identifie la table et la colonne dans la table parente.

  • Syntaxe au niveau table:

    CREATE TABLE <nom_table> (
        <col1> type NULL/NOT NULL,
        <col2> type NULL/NOT NULL,
        CONSTRAINT <fk_table_colonne> FOREIGN KEY (col1, col2, ..., coln) 
        REFERENCES <table_parente> (col1, col2, ..., coln)
        ON DELETE {CASCADE|SET NULL|SET DEFAULT|RESTRICT}
        ON UPDATE {CASCADE|SET NULL|SET DEFAULT|RESTRICT}
    );
    
  • Syntaxe au niveau colonne:

    CREATE TABLE <nom_table> (
        <col1> type NULL/NOT NULL CONSTRAINT <fk_table_colonne> 
            REFERENCES <table_parente>(col)
            ON DELETE {CASCADE|SET NULL|SET DEFAULT|RESTRICT}
            ON UPDATE {CASCADE|SET NULL|SET DEFAULT|RESTRICT},
        <col2> type NULL/NOT NULL,
        ...
    );
    
  • Il est important de créer les tables parentes avant les tables filles et de supprimer les tables filles avant les tables parentes.

Options du mot-clé ON DELETE pour FOREIGN KEY

  • CASCADE: Supprime les lignes dépendantes dans la table fille lorsqu'une ligne de la table parente est supprimée.
  • SET NULL: Convertit les valeurs des clés étrangères dépendantes en valeurs NULL. Applicable seulement si toutes les colonnes de clé étrangère de la table cible acceptent les valeurs NULL.
  • SET DEFAULT: Place la valeur par défaut dans la ligne de la table étrangère en cas d'effacement d'une valeur correspondant à la clé. Cette option n'est pas prise en charge dans Oracle.
  • RESTRICT: Indique une erreur en cas d'effacement d'une valeur correspondant à la clé. Cette option n'est pas prise en charge dans Oracle.

Options du mot-clé ON UPDATE pour FOREIGN KEY

  • CASCADE: Met à jour les lignes dépendantes dans la table fille lorsqu'une ligne de la table parente est mise à jour.
  • SET NULL: Convertit les valeurs des clés étrangères dépendantes en valeurs NULL. Cette option n'est applicable que si toutes les colonnes de clé étrangère de la table cible acceptent des valeurs NULL.
  • SET DEFAULT: Place la valeur par défaut dans la ligne de la table étrangère en cas de mise à jour d'une valeur correspondant à la clé.
  • RESTRICT: Indique une erreur en cas de mise à jour d'une valeur correspondant à la clé.

Modification de Table

  • L'instruction ALTER TABLE permet de modifier la structure de la table.
  • Elle permet de faire ce qui suit :
    • ajouter une colonne (ADD)
    • modifier une colonne existante (MODIFY)
    • supprimer une colonne (DROP)
    • ajouter une contrainte (ADD CONSTRAINT)
    • supprimer une contrainte (DROP CONSTRAINT)

Ajouter une Colonne

  • Syntaxe : ALTER TABLE <nom_table> ADD (<column> type [DEFAULT expr] [, <column> type][DEFAULT expr],...);
  • Exemple : ALTER TABLE Fournisseurs ADD (adresse varchar2(50), telephone number(8) NOT NULL);

Modifier une Colonne

  • La modification d'une colonne peut concerner:
    • le type de données,
    • la taille,
    • la valeur par défaut d'une colonne (affecte uniquement les nouvelles insertions dans la table)
  • Syntaxe : ALTER TABLE <nom_table> MODIFY (<column> type [DEFAULT expr] [, <column> type][DEFAULT expr],...);
  • Exemple : ALTER TABLE Fournisseurs MODIFY (adresse varchar2(100), telephone number(13));

Supprimer une Colonne

  • Syntaxe : ALTER TABLE <nom_table> DROP (column1, column2, ...);
  • Exemple : ALTER TABLE Fournisseurs DROP (adresse, telephone);

Ajouter une Contrainte

  • Syntaxe : ALTER TABLE <nom_table> ADD [CONSTRAINT <nom_contrainte>] type_contrainte (<nom_colonne>);
  • Exemples :
    • ALTER TABLE Fournisseurs ADD CONSTRAINT uq_fournisseurs UNIQUE(fournisseur_id);
    • ALTER TABLE Fournisseurs ADD CONSTRAINT ck_fournisseurs CHECK (fournisseur_id BETWEEN 10 AND 1000);
    • Pour ajouter une contrainte NULL/NOT NULL, on utilise l'option MODIFY.
    • Exemple : ALTER TABLE Fournisseurs MODIFY contact CONSTRAINT nn_fournisseurs_contact NOT NULL;

Supprimer une Contrainte

  • Syntaxe : ALTER TABLE <nom_table> DROP CONSTRAINT <nom_contrainte>;
  • Exemples :
    • ALTER TABLE Fournisseurs DROP CONSTRAINT ck_fournisseurs;
    • ALTER TABLE Fournisseurs DROP CONSTRAINT pk_fournisseurs;

Activer/Désactiver une Contrainte

  • Syntaxe : ALTER TABLE <nom_table> ENABLE | DISABLE CONSTRAINT <nom_contrainte>;
  • Permet d'activer ou de désactiver une contrainte existante.
  • Après l'insertion de lignes, la contrainte peut être réactivée. La vérification des valeurs insérées se fait lors de l'activation de la contrainte.

Suppression de Table

  • Syntaxe : DROP TABLE <nom_table>;
  • La commande TRUNCATE TABLE nom_table; permet de vider la table.

Renommage de Table

  • Syntaxe : RENAME <ancien_nom> TO <nouveau_nom>;
  • Exemple : RENAME Fournisseurs TO LesFournisseurs;

Vue

  • Une vue est une table logique sur une ou plusieurs autres tables ou vues.

  • Seule la définition de la vue (requête) est enregistrée dans la base, pas les données.

  • Elle permet de :

    • limiter l'accès à la base de données,
    • faciliter la création de requêtes complexes,
    • présenter les mêmes données sous différentes formes
  • Types de vues :

    • Vue simple:Utilise une seule table,ne contient ni fonction ni groupe de données, permet d'exécuter des instructions LMD (UPDATE, DELETE, INSERT).
    • Vue Complexe: Utilise plusieurs tables, contient des fonctions ou des groupes de données, ne permet pas d'instructions LMD (UPDATE, DELETE, INSERT).

Création et Modification de Vue

  • Syntaxe :
    CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW <nom_vue> [(alias [, alias], ...)]
    AS SELECT <requête>
    [WITH CHECK OPTION [CONSTRAINT <nom_contrainte>]]
    [WITH READ ONLY [CONSTRAINT <nom_contrainte>]];
    
  • FORCE crée la vue même si les tables n'existent pas.
  • alias indique les noms des expressions sélectionnées par la requête de la vue.
  • WITH CHECK OPTION n'autorise l'insertion et la mise à jour des lignes que pour les lignes auxquelles la vue peut accéder (vérification des conditions de la clause WHERE).
  • CONSTRAINT donne un nom de contrainte aux restrictions WITH CHECK OPTION et WITH READ ONLY.
  • WITH READ ONLY interdit toute opération LMD.

Suppression de Vue

  • Syntaxe : DROP VIEW <nom_vue>;

Séquence

  • Génére automatiquement les numéros uniques.
  • Est partageable entre plusieurs utilisateurs et éventuellement entre plusieurs tables.
  • Permet de créer une valeur clé primaire.

Création de Séquence

  • Syntaxe :
    CREATE SEQUENCE <nom_sequence>
    [INCREMENT BY <pas>]
    [START WITH <valeur>]
    [{MAXVALUE <valeur_max> | NOMAXVALUE}]
    [{MINVALUE <valeur_min> | NOMINVALUE}]
    [{CYCLE | NOCYCLE}]
    [{CACHE <cache> | NOCACHE}];
    
  • INCREMENT BY définit l'intervalle entre les numéros (pas d'incrémentation).
  • START WITH est le premier numéro de la séquence.
  • MAXVALUE | NOMAXVALUE définit la valeur maximale.
  • MINVALUE | NOMINVALUE définit la valeur minimale.
  • CYCLE | NOCYCLE détermine si la séquence continue ou non à générer des valeurs si la valeur maximale ou minimale est atteinte.
  • CACHE | NOCACHE spécifie le nombre de valeurs pré-allouées et conservées en mémoire.
  • La valeur du cache doit être inférieure ou égale au nombre de valeurs d'un cycle.

Modification de Séquence

  • Syntaxe :
    ALTER SEQUENCE <nom_sequence>
    [INCREMENT BY <pas>]
    [START WITH <valeur>]
    [{MAXVALUE <valeur_max> | NOMAXVALUE}]
    [{MINVALUE <valeur_min> | NOMINVALUE}]
    [{CYCLE | NOCYCLE}]
    [{CACHE <cache> | NOCACHE}];
    

Utilisation de Séquence

  • L'utilisation d'une séquence se fait par les pseudo-colonnes CURRVAL et NEXTVAL.
  • CURRVAL retourne la valeur courante de la séquence.
  • NEXTVAL incrémente la séquence et retourne la nouvelle valeur.

Suppression de Séquence

  • Syntaxe : DROP SEQUENCE <nom_sequence>;

Index

  • Un index est un objet de la base de données qui permet d'accélérer la recherche des lignes et contient deux champs: la clé d'index et l'adresse du bloc de données contenant la clé.
  • Il peut être créé juste après la création d'une table ou sur une table existante.
  • Un index peut porter sur plusieurs colonnes.
  • Les index sont indépendants logiquement et physiquement des tables qu'ils indexent.

Création d'Index

  • La création d'index peut être automatique (lors de la définition d'une contrainte PRIMARY KEY ou UNIQUE) ou manuelle.
  • Syntaxe :
    CREATE [UNIQUE] INDEX <nom_index>
    ON <nom_table>(col1, col2,...);
    
  • Un index unique ne permet pas de valeurs dupliquées dans la colonne indexée.
  • Il est possible de renommer un index avec ALTER INDEX <ancien_nom> RENAME TO <nouveau_nom>;.
  • Créer un index si :
    • la colonne est souvent utilisée dans la clause WHERE ou une condition de jointure.
    • la colonne contient un grand nombre de valeurs NULL.
    • deux ou plusieurs colonnes sont souvent utilisées conjointement dans une clause WHERE ou une condition de jointure.
    • la table est de grande taille et la plupart des requêtes doivent extraire moins de 2 à 4% des lignes.
  • Ne pas créer d'index si :
    • la table est de petite taille.
    • la table est souvent mise à jour.
    • les colonnes ne sont pas souvent utilisées comme condition dans une requête.
    • la plupart des requêtes sont prévues pour extraire un très grand pourcentage de lignes.

Suppression d'Index

  • Syntaxe : DROP INDEX <nom_index>;

Synonyme

  • Un synonyme est un alias sur un objet de la base ou un schéma (sorte de raccourci).
  • L'objet peut être une table, une vue, une séquence, une procédure, une fonction, un package, etc.
  • Le synonyme peut être public (accessible à tous les schémas et utilisateurs) ou privé (accessible uniquement à partir du schéma dans lequel il a été créé).
  • Les synonymes sont créés pour masquer le vrai nom des objets, simplifier les noms des objets, et éviter le préfixage dans les requêtes avec le nom de son propriétaire.

Création et Suppression de Synonyme

  • Syntaxes:
    • Création : CREATE [OR REPLACE] [PUBLIC] SYNONYM <nom_synonyme> FOR [schéma.]<nom_objet>;
    • Suppression : DROP SYNONYM <nom_synonyme>;

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser