Oracle
 sql >> Base de données >  >> RDS >> Oracle

Commande Oracle CREATE TABLE en PL/SQL avec 10 exemples

Dans cet article, nous allons parler de la CREATE TABLE commande. Pour être plus précis, nous allons nous concentrer sur la façon de créer une table dans Oracle avec une clé primaire et étrangère, ainsi que des colonnes non nulles et de date, regardez de près comment créer une nouvelle table sur la base de celle existante , et plus. Nous passerons également en revue les avantages et avantages de l'utilisation de dbForge Studio pour Oracle lorsque vous travaillez avec des tables.

Contenu

  • Syntaxe de l'instruction Oracle CREATE TABLE
    • Exemple de CRÉATION DE TABLE
  • CREATE TABLE avec la contrainte PRIMARY KEY
  • CRÉER UNE TABLE avec CLÉ ÉTRANGÈRE
  • CREATE TABLE avec une colonne NOT NULL
  • CREATE TABLE avec une colonne de date
  • Alternative Oracle à SQL CREATE TABLE IF NOT EXISTS
  • Créer une nouvelle table à partir d'une autre table à l'aide de CREATE TABLE AS SELECT
  • CRÉER UNE TABLE à partir de SELECT en PL/SQL
  • Comment créer et insérer des données dans une table temporaire
  • CRÉER UNE TABLE en un clin d'œil avec dbForge pour Oracle
  • Conclusion

La création de tables dans Oracle est l'une des façons d'organiser les données, il est donc essentiel d'en apprendre le plus possible sur le CREATE TABLE commande. Il existe plusieurs façons de créer une table dans Oracle et nous les aborderons plus en détail dans ce guide.

Veuillez noter que vous devez disposer du privilège système CREATE TABLE pour créer une nouvelle table. Si vous souhaitez créer une table dans le schéma d'un autre utilisateur, vous devez disposer du privilège système CREATE ANY TABLE. Si vous êtes le propriétaire de la table, vous devez disposer du privilège système UNLIMITED TABLESPACE ou du quota pour l'espace de table que contient la table.

De plus, vous devez disposer du privilège d'objet EXECUTE ou du privilège système EXECUTE ANY TYPE pour créer une table d'objets ou une table relationnelle contenant une colonne de type d'objet si vous souhaitez avoir accès à tous les types référencés par la table.

Les exemples de cet article concernent la version Oracle 19c, mais les méthodes sont les mêmes pour toutes les versions Oracle utilisées (y compris Oracle 10g, 11g, 12c, etc.).

Syntaxe de l'instruction Oracle CREATE TABLE

Commençons par les bases. Pour créer une nouvelle table dans une base de données Oracle, le CREATE TABLE déclaration peut être utilisée. Le CREATE TABLE syntaxe dans Oracle est la suivante :

CREATE TABLE schema_name.table_name (
    column_1 data_type column_constraint,
    column_2 data_type column_constraint,
    ...
    table_constraint
 );

Examinons de plus près la syntaxe fournie :

  1. schema_name.table_name  :noms de la table et du schéma auxquels appartient la nouvelle table.
  2. column_1 et column_2 data_type column_constraints :espaces réservés pour les noms de colonnes.
  3. data_type :NOMBRE, VARCHAR, etc.
  4. column_constraint :NOT NULL, clé primaire, vérification, etc.
  5. table_constraint :contraintes de table (clé primaire, clé étrangère, vérification).

Vous trouverez l'Oracle CREATE TABLE exemple de syntaxe plus loin dans cet article.

Remarque  :
En plus d'apprendre à créer une table dans Oracle, vous souhaiterez peut-être également approfondir vos connaissances sur Instruction Oracle ALTER TABLE .

Exemple CREATE TABLE

Il est toujours préférable d'apprendre par la pratique. Par conséquent, regardons l'Oracle CREATE TABLE exemple :

L'exemple suivant montre comment créer un tableau à trois colonnes nommé employés :

CREATE TABLE employees
( employee_id number(10) NOT NULL,
  employee_name varchar2(50) NOT NULL,
  city varchar2(50)
);
  • Colonne 1 est nommé employee_id et a un type de données numérique (10 chiffres maximum). Il ne peut pas contenir de valeurs nulles.
  • Colonne 2 est nommé nom_client et a un type de données varchar2 (50 caractères maximum) et ne peut pas non plus contenir de valeurs nulles.
  • Colonne 3 est nommé ville et a un type de données varchar2. Contrairement aux deux précédentes, cette colonne peut contenir des valeurs nulles.

CREATE TABLE avec la contrainte PRIMARY KEY

Voyons maintenant comment créer une table dans Oracle avec une clé primaire. Pour définir une clé primaire pour la table, vous pouvez utiliser notre table précédemment créée Employés , éditez Oracle SQL CREATE TABLE et définissez employee_id comme clé primaire :

CREATE TABLE employees
( employee_id number(10) NOT NULL,
  employee_name varchar2(50) NOT NULL,
  city varchar2(50),
  CONSTRAINT employees_pk PRIMARY KEY (employee_id)
);

La PRIMARY KEY La clause permet de spécifier une colonne comme clé primaire. Vous pouvez utiliser la syntaxe de clé primaire pour identifier chaque ligne unique dans la table. Contrairement à d'autres bases de données, Oracle permet à une table d'inclure une seule clé primaire, et chaque champ de la clé primaire doit contenir des valeurs autres que NULL pour que la table soit considérée comme valide. Dans l'exemple ci-dessus, nous définissons le employee_id colonne en tant que colonne de clé primaire .

CRÉER UNE TABLE avec CLÉ ÉTRANGÈRE

Examinons la syntaxe d'Oracle CREATE TABLE instruction FOREIGN clé. Il peut être à la fois défini au niveau de la colonne ou au niveau de la table :

CREATE TABLE table_name
(
col1 datatype [ NULL | NOT NULL ],
col2 datatype [ NULL | NOT NULL ],
...
col_n datatype [ NULL | NOT NULL ]
constraint <name> FOREIGN KEY (col1,col2) REFERENCES table(col1,col2)
)  tablespace <tablepace name>

CREATE TABLE table_name
(
col1 datatype [ NULL | NOT NULL ] constraint <name> primary key
,
col2 datatype [ NULL | NOT NULL ],
...
col_n datatype [ NULL | NOT NULL ]
)  tablespace <tablepace name>;

CREATE TABLE dept
( dept_id number(10) NOT NULL,
dept_name varchar2(50) NOT NULL,
CONSTRAINT dept_pk PRIMARY KEY (dept_id)
);

CREATE TABLE emp
( emp_no number(10) NOT NULL,
emp_name varchar2(50) NOT NULL,
dept_id number(10),
salary number(6),
CONSTRAINT emp_pk PRIMARY KEY (emp_no),
CONSTRAINT dept_fk
FOREIGN KEY (dept_id)
REFERENCES dept(dept_id) );

Dans cette syntaxe :

  • Colonne 1 est étiqueté emp_no , et il est formaté comme un nombre, ce qui signifie qu'il ne peut pas inclure de valeurs nulles.
  • Colonne 2 est intitulé emp_name , qui est construit en tant que varchar2(50) et ne peut pas inclure de valeurs nulles.
  • Colonne 3 est nommé dept_id et a un type de données numérique.
  • Colonne 4 s'appelle salary et est également formaté comme une colonne numérique.
  • Contrainte de clé primaire au niveau de la table emp_pk est défini sur la clé (emp_no ).
  • Contraintes de clé étrangère au niveau de la table dept_fk qui fait référence à la table dept dept_id .

CREATE TABLE avec une colonne NOT NULL

Si vous souhaitez spécifier que la colonne ne peut pas être vide et doit contenir une valeur, vous pouvez la définir comme NOT NULL. Trouver la syntaxe pour le CREATE TABLE commande avec la colonne NOT NULL dans Oracle ci-dessous :

CREATE TABLE employees_bdays
(
emp_name VARCHAR(30),
bday DATE
emp_id VARCHAR(15) NOT NULL
);

Comme vous pouvez le voir, emp_id implique la saisie d'une valeur pour chaque ligne de données car elle n'est PAS NULL.

CREATE TABLE avec une colonne de date

Si vous devez créer une table avec la colonne de date dans Oracle, la syntaxe suivante peut s'avérer utile :

CREATE TABLE employees_bdays (
bday DATE
);

Pour insérer efficacement une date dans la colonne, vous avez besoin du to_date fonction qui accepte une chaîne de caractères contenant la date ainsi qu'une autre chaîne de caractères lui indiquant comment interpréter la date reçue.

to_date('01 December 2021','DD Month YYYY')
to_date('01/12/2021','DD/MM/YYYY')

Alternative Oracle à SQL CREATE TABLE IF NOT EXISTS

Ces utilisateurs, qui sont habitués à un SQL CREATE TABLE IF NOT EXISTS très utile commande, pourrait être déçu car il n'y a pas une telle déclaration dans Oracle. Mais si vous devez encore déterminer si une table existe déjà avant de la créer dans Oracle, vous trouverez ci-dessous des solutions alternatives à ce problème.

Si vous recevez une erreur (ORA-00955 :le nom est déjà utilisé par un objet existant) en essayant de créer une table, cela peut servir d'indicateur qu'une telle table est déjà là.

Créer une nouvelle table à partir d'une autre table en utilisant CREATE TABLE AS SELECT

Parfois, vous devez copier des données d'une table et les insérer dans une autre. Il est assez facile de créer une table comme une autre table dans Oracle, et c'est très utile. Vous économisez votre temps et vos efforts si vous souhaitez créer une table avec la même structure. Cela simplifie également le processus de test.

Pour voir comment créer une table à partir d'une autre table dans Oracle, regardez le script ci-dessous :

CREATE TABLE table_name AS (
SELECT select_query
);

Il est également appelé CREATE TABLE AS SELECT (CTAS).

Vous pouvez soit entrer le table_name pour votre nouvelle table ou utilisez le SELECT requête pour le copier. Vous pouvez également saisir SELECT * FROM ancienne_table si vous devez copier toutes les données dans la nouvelle table. Si vous avez besoin de restreindre les valeurs à copier, le WHERE clause vous sera utile.

CRÉER UNE TABLE à partir de SELECT en PL/SQL

Dans Oracle, vous pouvez également créer une table à partir d'une autre en entrant le SELECT instruction à la fin de CREATE TABLE déclaration. Dans ce cas, tous les enregistrements de l'ancienne table seront copiés dans la nouvelle. La syntaxe de l'Oracle CREATE TABLE depuis le SELECT est le suivant :

CREATE TABLE new_table
  AS (SELECT * FROM old_table);

Comme vous pouvez le voir, la création de table PL/SQL à partir du SELECT la commande est très utile. Notez que vous pouvez également créer une table temporaire à partir de SELECT .

Comment créer et insérer des données dans une table temporaire

Les tables temporaires sont utilisées dans Oracle pour stocker les données appartenant à une session ou à une transaction.

La table temporaire ORACLE est un objet DDL avec toutes les restrictions.

Alors comment créer une table temporaire dans Oracle ? Vous pouvez utiliser l'instruction CREATE GLOBAL TEMPORARY TABLE pour créer une table temporaire. Pour définir si les données de la table sont spécifiques à la transaction (valeur par défaut) ou spécifiques à la session, utilisez la clause ON COMMIT.

La syntaxe des données spécifiques à la transaction est la suivante :

CREATE GLOBAL TEMPORARY TABLE admin_work_area
        (startdate DATE,
         enddate DATE,
         operation CHAR(20))
      ON COMMIT DELETE ROWS;

CRÉER UNE TABLE en un clin d'œil en utilisant dbForge pour Oracle

Le temps a toujours été l'une des ressources les plus précieuses. Par conséquent, vous pourriez trouver utile d'utiliser un IDE approprié pour gagner du temps. L'une des meilleures solutions est dbForge Studio pour Oracle. C'est un outil universel qui peut être utile pour développer, administrer et gérer des bases de données Oracle. Ce client GUI efficace est idéal pour les DBA, les développeurs de bases de données, les ingénieurs logiciels et les analystes. dbForge Studio for Oracle permet la synchronisation des données entre plusieurs serveurs Oracle et facilite l'automatisation des processus de développement de bases de données.

Lors de la première ouverture de l'IDE, vous verrez les Propriétés de connexion à la base de données la fenêtre. Pour l'ouvrir manuellement, choisissez Base de données et cliquez sur Nouvelle connexion .

Après cela, remplissez les champs correspondants et cliquez sur Tester la connexion .

Si tout est correctement configuré, vous verrez le message Connecté avec succès qui ressemblera en quelque sorte à ceci :

Une fois connecté à votre serveur Oracle, choisissez l'utilisateur pour lequel vous souhaitez créer une nouvelle table. Notre récent article de blog sur la création d'un nouvel utilisateur dans Oracle pourrait s'avérer utile à cette étape.

La première étape vers la création d'une nouvelle table consiste à faire un clic droit sur le schéma requis. Pointez sur Nouvel objet et cliquez sur la première option :Tableau .

1. Dans le Nom zone de texte de l'éditeur de tableau , entrez un nom de table. Dans l'exemple ci-dessous, nous créons une table intitulée employés .

2. Dans la grille ci-dessous, saisissez les noms des futures colonnes, choisissez le type de données et indiquez si elles doivent être NOT NULL.

3. Les propriétés de colonne sera affiché sur le côté droit de l'éditeur de tableau .

4. Vous verrez que toutes les actions que vous effectuez dans Table Editor , sont reflétés dans la requête SQL au bas de la fenêtre.

Une fois les propriétés du tableau configurées, cliquez sur Appliquer les modifications et c'est tout !

Conclusion

La création de tables est l'une des tâches les plus courantes lorsque vous travaillez avec des bases de données Oracle, car elle aide à organiser les données. Dans notre guide, nous avons proposé une présentation détaillée de la création d'une table dans Oracle en utilisant 10 méthodes différentes. Vous pouvez utiliser l'instruction Oracle SQL CREATE TABLE et exécuter la requête manuellement ou utiliser un IDE approprié pour automatiser le processus. Dans ce cas, dbForge Studio pour Oracle est le meilleur choix.

Liens utiles

  • Créer une base de données dans Oracle
  • Renommer la table dans Oracle
  • Formateur PL/SQL