sql >> Databáze >  >> RDS >> Oracle

Příkaz Oracle CREATE TABLE v PL/SQL s 10 příklady

V tomto článku budeme hovořit o CREATE TABLE příkaz. Abychom byli přesnější, zaměříme se na to, jak vytvořit tabulku v Oracle s primárním a cizím klíčem, stejně jako nenulové a datumové sloupce, blíže se podíváme na to, jak vytvořit novou tabulku na základě stávající , a více. Také si probereme výhody a výhody používání dbForge Studio pro Oracle při práci s tabulkami.

Obsah

  • Syntaxe příkazu Oracle CREATE TABLE
    • Příklad CREATE TABLE
  • VYTVOŘIT TABULKU s omezením PRIMÁRNÍ KLÍČ
  • VYTVOŘTE TABULKU S CIZÍM KLÍČEM
  • VYTVOŘTE TABULKU se sloupcem NOT NULL
  • VYTVOŘTE TABULKU se sloupcem data
  • Alternativa Oracle k SQL CREATE TABLE, POKUD NEEXISTUJE
  • Vytvořte novou tabulku z jiné tabulky pomocí CREATE TABLE AS SELECT
  • CREATE TABLE z SELECT v PL/SQL
  • Jak vytvořit a vložit data do dočasné tabulky
  • VYTVOŘTE TABULKU mrknutím pomocí dbForge for Oracle
  • Závěr

Vytváření tabulek v Oracle je jedním ze způsobů, jak uspořádat data, takže je důležité naučit se co nejvíce o CREATE TABLE příkaz. Existuje několik různých způsobů, jak vytvořit tabulku v Oracle a my se jimi budeme dále zabývat v této příručce.

Upozorňujeme, že k vytvoření nové tabulky musíte mít systémové oprávnění CREATE TABLE. Pokud chcete vytvořit tabulku ve schématu jiného uživatele, musíte mít systémové oprávnění CREATE ANY TABLE. V případě, že jste vlastníkem tabulky, musíte mít systémové oprávnění UNLIMITED TABLESPACE nebo kvótu pro tabulkový prostor, který tabulka obsahuje.

Kromě toho musíte mít oprávnění EXECUTE object nebo systémové oprávnění EXECUTE ANY TYPE k vytvoření tabulky objektů nebo relační tabulky obsahující sloupec typu objektu, pokud chcete mít přístup ke všem typům, na které tabulka odkazuje.

Příklady v tomto článku se týkají verze Oracle 19c, ale metody jsou stejné pro všechny používané verze Oracle (včetně Oracle 10g, 11g, 12c atd.).

Syntaxe příkazu Oracle CREATE TABLE

Začněme se základy. Chcete-li vytvořit novou tabulku v databázi Oracle, použijte CREATE TABLE lze použít výpis. CREATE TABLE syntaxe v Oracle je následující:

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

Podívejme se blíže na poskytnutou syntaxi:

  1. schema_name.table_name :názvy tabulky a schématu, ke kterému nová tabulka patří.
  2. column_1 a column_2 data_type column_constraints :zástupné symboly pro názvy sloupců.
  3. data_type :NUMBER, VARCHAR atd.
  4. column_constraint :NOT NULL, primární klíč, kontrola atd.
  5. table_constraint :omezení tabulky (primární klíč, cizí klíč, kontrola).

Najdete Oracle CREATE TABLE příklad syntaxe dále v tomto článku.

Poznámka :
Kromě toho, že se naučíte vytvořit tabulku v Oracle, možná budete chtít prohloubit své znalosti o Příkaz Oracle ALTER TABLE .

Příklad CREATE TABLE

Vždy je lepší učit se z praxe. Proto se podívejme na Oracle CREATE TABLE příklad:

Následující příklad ukazuje, jak vytvořit třísloupcovou tabulku s názvem zaměstnanci :

CREATE TABLE employees
( employee_id number(10) NOT NULL,
  employee_name varchar2(50) NOT NULL,
  city varchar2(50)
);
  • Sloupec 1 se jmenuje id_zaměstnance a má datový typ čísla (délka maximálně 10 číslic). Nemůže obsahovat hodnoty null.
  • Sloupec 2 se jmenuje jméno_zákazníka a má datový typ varchar2 (maximální délka 50 znaků) a nemůže obsahovat také hodnoty null.
  • Sloupec 3 se jmenuje město a má datový typ varchar2. Na rozdíl od předchozích dvou může tento sloupec obsahovat hodnoty null.

VYTVOŘIT TABULKU s omezením PRIMÁRNÍ KLÍČ

Nyní se podívejme, jak vytvořit tabulku v Oracle s primárním klíčem. Chcete-li definovat primární klíč pro tabulku, můžete použít naši dříve vytvořenou tabulku Zaměstnanci , upravte Oracle SQL CREATE TABLE a definujte id_employee jako primární klíč:

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)
);

PRIMARY KEY klauzule umožňuje specifikovat sloupec jako primární klíč. K identifikaci každého jedinečného řádku v tabulce můžete použít syntaxi primárního klíče. Na rozdíl od jiných databází Oracle umožňuje, aby tabulka obsahovala pouze jeden primární klíč a každé pole primárního klíče musí obsahovat hodnoty jiné než NULL, aby byla tabulka považována za platnou. Ve výše uvedeném příkladu definujeme id_zaměstnance jako sloupec primárního klíče .

VYTVOŘIT TABULKU S CIZÍM KLÍČEM

Podívejme se na syntaxi Oracle CREATE TABLE příkaz FOREIGN klíč. Může být definován jak na úrovni sloupce, tak na úrovni tabulky:

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) );

V této syntaxi:

  • Sloupec 1 je označeno emp_no a je formátován jako číslo, což znamená, že nemůže obsahovat žádné hodnoty null.
  • Sloupec 2 se jmenuje emp_name , který je vytvořen jako varchar2(50) a nemůže obsahovat žádné hodnoty null.
  • Sloupec 3 se jmenuje dept_id a má datový typ čísla.
  • Sloupec 4 se nazývá salary a je také formátován jako číselný sloupec.
  • Omezení primárního klíče na úrovni tabulky emp_pk je definováno na klíči (emp_no ).
  • Omezení cizího klíče na úrovni tabulky dept_fk která odkazuje na tabulku oddělení dept_id .

VYTVOŘTE TABULKU se sloupcem NOT NULL

Pokud chcete určit, že sloupec nemůže být prázdný a musí obsahovat nějakou hodnotu, můžete jej definovat jako NOT NULL. Najděte syntaxi CREATE TABLE příkaz se sloupcem NOT NULL v Oracle níže:

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

Jak vidíte, emp_id znamená zadání hodnoty pro každý řádek dat, protože NENÍ NULL.

VYTVOŘTE TABULKU se sloupcem data

Pokud potřebujete vytvořit tabulku se sloupcem data v Oracle, může se vám hodit následující syntaxe:

CREATE TABLE employees_bdays (
bday DATE
);

Chcete-li do sloupce efektivně vložit datum, potřebujete to_date funkce, která přijímá znakový řetězec obsahující datum a také jiný znakový řetězec, který jí dává instrukce, jak interpretovat přijaté datum.

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

Oracle alternativa k SQL CREATE TABLE, POKUD NEEXISTUJE

Uživatelé, kteří jsou zvyklí na velmi užitečné SQL CREATE TABLE IF NOT EXISTS příkaz, může být zklamán, protože v Oracle žádné takové prohlášení neexistuje. Pokud však stále potřebujete před vytvořením tabulky v Oracle zjistit, zda tabulka již existuje, níže naleznete alternativní řešení tohoto problému.

Pokud se při pokusu o vytvoření tabulky zobrazí chyba (ORA-00955:název již používá existující objekt), může to sloužit jako indikátor toho, že taková tabulka již existuje.

Vytvořte novou tabulku z jiné tabulky pomocí CREATE TABLE AS SELECT

Někdy je potřeba zkopírovat data z jedné tabulky a vložit je do jiné. Je docela snadné vytvořit tabulku jako jinou tabulku v Oracle a navíc je to velmi užitečné. Pokud chcete vytvořit tabulku se stejnou strukturou, ušetříte svůj čas a úsilí. Také to zjednodušuje proces testování.

Chcete-li zjistit, jak vytvořit tabulku z jiné tabulky v Oracle, podívejte se na níže uvedený skript:

CREATE TABLE table_name AS (
SELECT select_query
);

Označuje se také jako CREATE TABLE AS SELECT (CTAS).

Můžete buď zadat název_tabulky pro vaši novou tabulku nebo použijte SELECT dotaz na kopírování. Můžete také zadat SELECT * FROM stará_tabulka pokud potřebujete zkopírovat všechna data do nové tabulky. Pokud potřebujete omezit hodnoty, které se mají kopírovat, WHERE klauzule vám pomůže.

CREATE TABLE z SELECT v PL/SQL

V Oracle můžete také vytvořit jednu tabulku z druhé zadáním SELECT příkaz na konci CREATE TABLE prohlášení. V tomto případě budou všechny záznamy ze staré tabulky zkopírovány do nové. Syntaxe Oracle CREATE TABLE z SELECT je následující:

CREATE TABLE new_table
  AS (SELECT * FROM old_table);

Jak můžete vidět, vytvoření tabulky PL/SQL z SELECT příkaz je velmi užitečný. Všimněte si, že můžete také vytvořit dočasnou tabulku z SELECT .

Jak vytvořit a vložit data do dočasné tabulky

Dočasné tabulky se v Oracle používají k ukládání dat, která patří k jedné relaci nebo jedné transakci.

Dočasná tabulka ORACLE je objekt DDL se všemi omezeními.

Jak tedy vytvořit dočasnou tabulku v Oracle? K vytvoření dočasné tabulky můžete použít příkaz CREATE GLOBAL TEMPORARY TABLE. Chcete-li definovat, zda jsou data v tabulce specifická pro transakci (výchozí nastavení) nebo specifická pro relaci, použijte klauzuli ON COMMIT.

Syntaxe pro data specifická pro transakci je následující:

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

VYTVOŘENÍ TABULKY mrknutím pomocí dbForge pro Oracle

Čas byl vždy jedním z nejcennějších zdrojů. Proto může být použití vhodného IDE užitečné, pokud jde o úsporu času. Jedním z nejlepších řešení je dbForge Studio pro Oracle. Jedná se o univerzální nástroj, který lze použít pro vývoj, správu a správu databází Oracle. Tento efektivní klient GUI je skvělý pro správce databází, vývojáře databází, softwarové inženýry a analytiky. dbForge Studio for Oracle umožňuje synchronizaci dat mezi několika servery Oracle a usnadňuje automatizaci procesů vývoje databáze.

Při prvním otevření IDE uvidíte Vlastnosti připojení k databázi okno. Chcete-li ji otevřít ručně, zvolte Databáze a klikněte na Nové připojení .

Poté vyplňte odpovídající pole a klikněte na Test připojení .

Pokud je vše správně nakonfigurováno, zobrazí se zpráva o úspěšném připojení to bude vypadat nějak takto:

Po připojení k vašemu serveru Oracle vyberte uživatele, pro kterého chcete vytvořit novou tabulku. V tomto kroku se může hodit náš nedávný příspěvek na blogu o tom, jak vytvořit nového uživatele v Oracle.

Prvním krokem k vytvoření nové tabulky je kliknutí pravým tlačítkem myši na požadované schéma. Ukažte na Nový objekt a klikněte na první možnost:Tabulka .

1. V části Název textové pole Editoru tabulek , zadejte název tabulky. V níže uvedeném příkladu vytváříme tabulku s názvem zaměstnanci .

2. Do níže uvedené mřížky zadejte názvy budoucích sloupců, vyberte typ dat a zda nemají být NULL.

3. Vlastnosti sloupce se zobrazí na pravé straně Editoru tabulek .

4. Uvidíte, že všechny akce, které provedete v Editoru tabulek , se projeví v SQL dotazu ve spodní části okna.

Po nakonfigurování vlastností tabulky klikněte na Použít změny a je to!

Závěr

Vytváření tabulek je jedním z nejběžnějších úkolů při práci s databázemi Oracle, protože pomáhá organizovat data. V našem průvodci jsme nabídli podrobný návod, jak vytvořit tabulku v Oracle pomocí 10 různých způsobů. Můžete použít příkaz Oracle SQL CREATE TABLE a provést dotaz ručně nebo použít vhodné IDE k automatizaci procesu. V tomto případě je nejlepší volbou dbForge Studio for Oracle.

Užitečné odkazy

  • Vytvořte databázi v Oracle
  • Přejmenujte tabulku v Oracle
  • Formátovač PL/SQL

  1. Jak EXP() funguje v MariaDB

  2. Jak vytvořit uložené procedury v SQL?

  3. Vložit výsledky uložené procedury do dočasné tabulky

  4. je možné vybrat přímo EXISTS jako bit?