Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Polecenie Oracle CREATE TABLE w PL/SQL z 10 przykładami

W tym artykule omówimy CREATE TABLE Komenda. Dokładniej skupimy się na tym, jak stworzyć tabelę w Oracle z kluczem podstawowym i obcym, a nie kolumnami null i date, przyjrzyjmy się bliżej jak stworzyć nową tabelę na podstawie istniejącej , i więcej. Przyjrzymy się również zaletom i zaletom korzystania z dbForge Studio for Oracle podczas pracy z tabelami.

Zawartość

  • Składnia instrukcji Oracle CREATE TABLE
    • Przykład CREATE TABLE
  • CREATE TABLE z ograniczeniem PRIMARY KEY
  • UTWÓRZ TABELĘ Z KLUCZA OBCEGO
  • CREATE TABLE z kolumną NOT NULL
  • UTWÓRZ TABELĘ z kolumną daty
  • Oracle alternatywa dla SQL CREATE TABLE IF NOT EXISTS
  • Utwórz nową tabelę z innej tabeli za pomocą CREATE TABLE AS SELECT
  • CREATE TABLE z SELECT w PL/SQL
  • Jak tworzyć i wstawiać dane do tabeli tymczasowej
  • UTWÓRZ TABELĘ w mgnieniu oka za pomocą dbForge dla Oracle
  • Wniosek

Tworzenie tabel w Oracle to jeden ze sposobów porządkowania danych, dlatego ważne jest, aby dowiedzieć się jak najwięcej o CREATE TABLE Komenda. Istnieje kilka różnych sposobów tworzenia tabeli w Oracle i omówimy je dalej w tym przewodniku.

Pamiętaj, że aby utworzyć nową tabelę, musisz mieć uprawnienia systemowe CREATE TABLE. Jeśli chcesz utworzyć tabelę w schemacie innego użytkownika, musisz mieć uprawnienie systemowe CREATE ANY TABLE. Jeśli jesteś właścicielem tabeli, musisz mieć uprawnienie systemowe UNLIMITED TABLESPACE lub przydział obszaru tabel zawartego w tabeli.

Ponadto musisz mieć uprawnienie do obiektu EXECUTE lub uprawnienie systemowe EXECUTE ANY TYPE, aby utworzyć tabelę obiektów lub relacyjną tabelę zawierającą kolumnę typu obiektu, jeśli chcesz mieć dostęp do wszystkich typów, do których odwołuje się tabela.

Przykłady w tym artykule dotyczą wersji Oracle 19c, ale metody są takie same dla wszystkich używanych wersji Oracle (w tym Oracle 10g, 11g, 12c itp.).

Składnia instrukcji Oracle CREATE TABLE

Zacznijmy od podstaw. Aby utworzyć nową tabelę w bazie danych Oracle, CREATE TABLE można użyć oświadczenia. CREATE TABLE składnia w Oracle jest następująca:

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

Przyjrzyjmy się bliżej podanej składni:

  1. schema_name.table_name :nazwy tabeli i schematu, do którego należy nowa tabela.
  2. column_1 i column_2 data_type column_constraints :symbole zastępcze nazw kolumn.
  3. data_type :NUMBER, VARCHAR itp.
  4. column_constraint :NOT NULL, klucz podstawowy, czek itp.
  5. table_constraint :ograniczenia tabeli (klucz podstawowy, klucz obcy, sprawdzenie).

Znajdziesz Oracle CREATE TABLE przykład składni w dalszej części tego artykułu.

Uwaga :
Oprócz nauki tworzenia tabeli w Oracle, możesz również chcieć pogłębić swoją wiedzę na temat Oświadczenie Oracle ALTER TABLE .

Przykład CREATE TABLE

Zawsze lepiej uczyć się na praktyce. Dlatego spójrzmy na Oracle CREATE TABLE przykład:

Poniższy przykład pokazuje, jak utworzyć trzykolumnową tabelę o nazwie pracownicy :

CREATE TABLE employees
( employee_id number(10) NOT NULL,
  employee_name varchar2(50) NOT NULL,
  city varchar2(50)
);
  • Kolumna 1 nazywa się employee_id i ma typ danych numer (maksymalnie 10 cyfr długości). Nie może zawierać wartości null.
  • Kolumna 2 ma na imię nazwa_klienta i ma typ danych varchar2 (maksymalna długość 50 znaków) i nie może również zawierać wartości null.
  • Kolumna 3 ma nazwę miasto i ma typ danych varchar2. W przeciwieństwie do poprzednich dwóch, ta kolumna może zawierać wartości null.

CREATE TABLE z ograniczeniem PRIMARY KEY

Zobaczmy teraz, jak utworzyć tabelę w Oracle z kluczem podstawowym. Aby zdefiniować klucz podstawowy dla tabeli, możesz użyć naszej wcześniej utworzonej tabeli Pracownicy , edytuj Oracle SQL CREATE TABLE oświadczenie i zdefiniuj employee_id jako klucz podstawowy:

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 klauzula pozwala określić kolumnę jako klucz podstawowy. Możesz użyć składni klucza podstawowego, aby zidentyfikować każdy unikalny wiersz w tabeli. W przeciwieństwie do innych baz danych Oracle umożliwia, aby tabela zawierała tylko jeden klucz podstawowy, a każde pole klucza podstawowego musi zawierać wartości inne niż NULL, aby tabela została uznana za prawidłową. W powyższym przykładzie definiujemy employee_id kolumna jako kolumna klucza podstawowego .

UTWÓRZ TABELĘ za pomocą KLUCZA OBCEGO

Przyjrzyjmy się składni Oracle CREATE TABLE oświadczenie FOREIGN klucz. Można go zdefiniować zarówno na poziomie kolumny, jak i na poziomie tabeli:

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

W tej składni:

  • Kolumna 1 jest oznaczony jako emp_no i jest sformatowany jako liczba, co oznacza, że ​​nie może zawierać żadnych wartości null.
  • Kolumna 2 ma tytuł emp_name , który jest zbudowany jako varchar2(50) i nie może zawierać żadnych wartości null.
  • Kolumna 3 ma nazwę dept_id i ma typ danych liczbowych.
  • Kolumna 4 nazywa się salary i jest również sformatowany jako kolumna liczbowa.
  • Ograniczenie klucza podstawowego na poziomie tabeli emp_pk jest zdefiniowany na kluczu (emp_no ).
  • Ograniczenia klucza obcego na poziomie tabeli dept_fk które odwołuje się do tabeli działu dept_id .

CREATE TABLE z kolumną NOT NULL

Jeśli chcesz określić, że kolumna nie może być pusta i musi zawierać jakąś wartość, możesz zdefiniować ją jako NOT NULL. Znajdź składnię CREATE TABLE polecenie z kolumną NOT NULL w Oracle poniżej:

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

Jak widać, emp_id oznacza wprowadzenie wartości dla każdego wiersza danych, ponieważ NIE JEST NULL.

CREATE TABLE z kolumną daty

Jeśli musisz utworzyć tabelę z kolumną daty w Oracle, przydatna może być następująca składnia:

CREATE TABLE employees_bdays (
bday DATE
);

Aby skutecznie wstawić datę do kolumny, potrzebujesz do_date funkcja, która akceptuje ciąg znaków zawierający datę oraz inny ciąg znaków instruujący go, jak interpretować otrzymaną datę.

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

alternatywa Oracle dla SQL CREATE TABLE IF NOT EXISTS

Ci użytkownicy, którzy są przyzwyczajeni do bardzo przydatnego języka SQL CREATE TABLE IF NOT EXISTS polecenie, może być rozczarowany, ponieważ w Oracle nie ma takiego oświadczenia. Ale jeśli nadal musisz ustalić, czy tabela już istnieje przed utworzeniem jej w Oracle, poniżej znajdziesz alternatywne rozwiązania tego problemu.

Jeśli pojawi się błąd (ORA-00955:nazwa jest już używana przez istniejący obiekt) podczas próby utworzenia tabeli, może to służyć jako wskaźnik, że taka tabela już istnieje.

Utwórz nową tabelę z innej tabeli za pomocą CREATE TABLE AS SELECT

Czasami trzeba skopiować dane z jednej tabeli i wstawić je do innej. Utworzenie tabeli jak innej tabeli w Oracle jest dość łatwe, a ponadto jest to bardzo pomocne. Oszczędzasz czas i wysiłek, jeśli chcesz stworzyć stół o tej samej strukturze. Upraszcza również proces testowania.

Aby zobaczyć, jak utworzyć tabelę z innej tabeli w Oracle, spójrz na poniższy skrypt:

CREATE TABLE table_name AS (
SELECT select_query
);

Jest również określany jako CREATE TABLE AS SELECT (CTAS).

Możesz wpisać nazwa_tabeli dla nowej tabeli lub użyj SELECT zapytanie, aby go skopiować. Możesz też wpisać SELECT * FROM stara_tabela jeśli musisz skopiować wszystkie dane do nowej tabeli. Jeśli chcesz ograniczyć kopiowane wartości, WHERE klauzula będzie dla Ciebie pomocna.

CREATE TABLE z SELECT w PL/SQL

W Oracle możesz również utworzyć jedną tabelę od drugiej, wpisując SELECT instrukcja na końcu CREATE TABLE oświadczenie. W takim przypadku wszystkie rekordy ze starej tabeli zostaną skopiowane do nowej. Składnia Oracle CREATE TABLE z SELECT wygląda następująco:

CREATE TABLE new_table
  AS (SELECT * FROM old_table);

Jak widać, tworzenie tabeli PL/SQL z SELECT polecenie jest bardzo pomocne. Zauważ, że możesz również utworzyć tymczasową tabelę z SELECT .

Jak tworzyć i wstawiać dane do tabeli tymczasowej

Tabele tymczasowe są używane w Oracle do przechowywania danych należących do jednej sesji lub jednej transakcji.

Tabela tymczasowa ORACLE jest obiektem DDL ze wszystkimi ograniczeniami.

Jak więc stworzyć tymczasową tabelę w Oracle? Do utworzenia tabeli tymczasowej można użyć instrukcji CREATE GLOBAL TEMPORARY TABLE. Aby określić, czy dane w tabeli są specyficzne dla transakcji (domyślnie) czy specyficzne dla sesji, użyj klauzuli ON COMMIT.

Składnia danych specyficznych dla transakcji jest następująca:

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

CREATE TABLE w mgnieniu oka przy użyciu dbForge dla Oracle

Czas zawsze był jednym z najcenniejszych zasobów. Dlatego użycie odpowiedniego IDE może okazać się pomocne w oszczędzaniu czasu. Jednym z najlepszych rozwiązań jest dbForge Studio dla Oracle. Jest to uniwersalne narzędzie, które można wykorzystać do tworzenia, administrowania i zarządzania bazami danych Oracle. Ten wydajny klient z graficznym interfejsem użytkownika jest doskonały dla administratorów baz danych, programistów baz danych, inżynierów oprogramowania i analityków. dbForge Studio dla Oracle umożliwia synchronizację danych między kilkoma serwerami Oracle i ułatwia automatyzację procesów tworzenia bazy danych.

Po otwarciu IDE po raz pierwszy zobaczysz Właściwości połączenia z bazą danych okno. Aby otworzyć go ręcznie, wybierz Baza danych i kliknij Nowe połączenie .

Następnie wypełnij odpowiednie pola i kliknij Testuj połączenie .

Jeśli wszystko jest poprawnie skonfigurowane, zobaczysz komunikat Pomyślnie nawiązano połączenie to będzie wyglądać tak:

Po połączeniu się z serwerem Oracle wybierz użytkownika, dla którego chcesz utworzyć nową tabelę. Nasz ostatni wpis na blogu na temat tworzenia nowego użytkownika w Oracle może się przydać na tym etapie.

Pierwszym krokiem do utworzenia nowej tabeli jest kliknięcie prawym przyciskiem myszy wymaganego schematu. Wskaż Nowy obiekt i kliknij pierwszą opcję:Stół .

1. W Nazwie pole tekstowe Edytora tabel , wprowadź nazwę tabeli. W poniższym przykładzie tworzymy tabelę zatytułowaną pracownicy .

2. W poniższej siatce wpisz nazwy przyszłych kolumn, wybierz typ danych i czy nie powinny być NULL.

3. Właściwości kolumny zostanie wyświetlony po prawej stronie Edytora tabel .

4. Zobaczysz, że wszystkie czynności, które wykonujesz w Edytorze tabel , są odzwierciedlone w zapytaniu SQL u dołu okna.

Po skonfigurowaniu właściwości tabeli kliknij Zastosuj zmiany i to wszystko!

Wniosek

Tworzenie tabel jest jednym z najczęstszych zadań podczas pracy z bazami danych Oracle, ponieważ pomaga organizować dane. W naszym poradniku przedstawiliśmy szczegółowy opis tworzenia tabeli w Oracle na 10 różnych sposobów. Możesz użyć instrukcji Oracle SQL CREATE TABLE i wykonać zapytanie ręcznie lub użyć odpowiedniego IDE, aby zautomatyzować proces. W takim przypadku najlepszym wyborem jest dbForge Studio dla Oracle.

Przydatne linki

  • Utwórz bazę danych w Oracle
  • Zmień nazwę tabeli w Oracle
  • Formater PL/SQL

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Aktualizacja sterowania siecią po ręcznej aktualizacji bazy danych

  2. Błąd wyjścia SQL Fiddle

  3. Identyfikator ORA-00972 jest za długi alias nazwa kolumny

  4. MySQL odpowiednik ORACLES rank()

  5. Optymalizacja zapytania SELECT, które działa wolno w Oracle, które działa szybko w SQL Server