Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Perintah CREATE TABLE Oracle di PL/SQL dengan 10 Contoh

Pada artikel ini, kita akan membahas tentang CREATE TABLE memerintah. Untuk lebih tepatnya, kami akan fokus pada cara membuat tabel di Oracle dengan kunci utama dan asing, serta bukan kolom nol dan tanggal, lihat dari dekat cara membuat tabel baru berdasarkan yang sudah ada , dan banyak lagi. Selain itu, kami akan meninjau keuntungan dan manfaat menggunakan dbForge Studio untuk Oracle saat bekerja dengan tabel.

Isi

  • Sintaksis pernyataan CREATE TABLE Oracle
    • Contoh BUAT TABEL
  • BUAT TABEL dengan batasan PRIMARY KEY
  • BUAT TABEL dengan KUNCI ASING
  • BUAT TABEL dengan kolom NOT NULL
  • BUAT TABEL dengan kolom tanggal
  • Alternatif Oracle untuk SQL CREATE TABLE JIKA TIDAK ADA
  • Buat tabel baru dari tabel lain menggunakan CREATE TABLE AS SELECT
  • BUAT TABEL dari SELECT di PL/SQL
  • Cara membuat dan menyisipkan data ke tabel sementara
  • BUAT TABEL dalam sekejap menggunakan dbForge untuk Oracle
  • Kesimpulan

Membuat tabel di Oracle adalah salah satu cara untuk mengatur data, jadi penting untuk mempelajari sebanyak mungkin tentang CREATE TABLE memerintah. Ada beberapa cara berbeda untuk membuat tabel di Oracle dan kami akan membahasnya lebih lanjut dalam panduan ini.

Harap dicatat bahwa Anda harus memiliki hak istimewa sistem CREATE TABLE untuk membuat tabel baru. Jika Anda ingin membuat tabel dalam skema pengguna lain, Anda harus memiliki hak istimewa sistem CREATE ANY TABLE. Jika Anda adalah pemilik tabel, Anda harus memiliki hak istimewa sistem TABLESPACE UNLIMITED atau kuota untuk tablespace yang berisi tabel tersebut.

Selain itu, Anda harus memiliki hak istimewa objek EXECUTE atau hak istimewa sistem EXECUTE ANY TYPE untuk membuat tabel objek atau tabel relasional yang berisi kolom tipe objek jika Anda ingin memiliki akses ke semua tipe yang direferensikan oleh tabel.

Contoh dalam artikel ini berhubungan dengan versi Oracle 19c, tetapi metodenya sama untuk semua versi Oracle yang digunakan (termasuk Oracle 10g, 11g, 12c, dll.).

Sintaksis pernyataan Oracle CREATE TABLE

Mari kita mulai dengan dasar-dasarnya. Untuk membuat tabel baru di database Oracle, CREATE TABLE pernyataan dapat digunakan. CREATE TABLE sintaks di Oracle adalah sebagai berikut:

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

Mari kita lihat lebih dekat sintaks yang disediakan:

  1. schema_name.table_name :nama tabel dan skema milik tabel baru.
  2. column_1 dan column_2 data_type column_constraints :placeholder untuk nama kolom.
  3. data_type :NUMBER, VARCHAR, dll.
  4. column_constraint :NOT NULL, kunci utama, cek, dll.
  5. table_constraint :batasan tabel (kunci utama, kunci asing, centang).

Anda akan menemukan Oracle CREATE TABLE contoh sintaks lebih lanjut dalam artikel ini.

Catatan :
Selain mempelajari cara membuat tabel di Oracle, Anda mungkin juga ingin memperdalam pengetahuan Anda tentang Pernyataan Oracle ALTER TABLE .

contoh BUAT TABEL

Itu selalu lebih baik untuk belajar dari latihan. Oleh karena itu, mari kita lihat Oracle CREATE TABLE contoh:

Contoh berikut menunjukkan cara membuat tabel tiga kolom bernama karyawan :

CREATE TABLE employees
( employee_id number(10) NOT NULL,
  employee_name varchar2(50) NOT NULL,
  city varchar2(50)
);
  • Kolom 1 bernama employee_id dan memiliki tipe data angka (panjang maksimal 10 digit). Itu tidak boleh berisi nilai nol.
  • Kolom 2 bernama nama_pelanggan dan memiliki tipe data varchar2 (panjang maksimum 50 karakter) dan tidak boleh berisi nilai nol juga.
  • Kolom 3 bernama kota dan memiliki tipe data varchar2. Tidak seperti dua kolom sebelumnya, kolom ini dapat berisi nilai nol.

BUAT TABEL dengan batasan PRIMARY KEY

Sekarang, mari kita lihat cara membuat tabel di Oracle dengan kunci utama. Untuk menentukan kunci utama untuk tabel, Anda dapat menggunakan tabel yang dibuat sebelumnya Karyawan , edit CREATE TABLE Oracle SQL pernyataan, dan tentukan employee_id sebagai kunci utama:

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 klausa memungkinkan menentukan kolom sebagai kunci utama. Anda dapat menggunakan sintaks kunci utama untuk mengidentifikasi setiap baris unik dalam tabel. Berbeda dengan database lain, Oracle memungkinkan tabel untuk memasukkan hanya satu kunci utama, dan setiap bidang kunci utama harus berisi nilai selain NULL agar tabel dianggap valid. Pada contoh di atas, kita mendefinisikan employee_id kolom sebagai Kolom Kunci Utama .

BUAT TABEL dengan KUNCI ASING

Mari kita lihat sintaks untuk Oracle CREATE TABLE pernyataan FOREIGN kunci. Itu dapat didefinisikan pada level kolom atau level tabel:

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

Dalam sintaks ini:

  • Kolom 1 diberi label emp_no , dan diformat sebagai angka, yang berarti tidak dapat menyertakan nilai nol apa pun.
  • Kolom 2 berjudul emp_name , yang dibuat sebagai varchar2(50) dan tidak dapat menyertakan nilai nol apa pun.
  • Kolom 3 diberi nama dept_id dan memiliki tipe data angka.
  • Kolom 4 disebut salary dan juga diformat sebagai kolom angka.
  • Kendala kunci utama tingkat tabel emp_pk didefinisikan pada kunci (emp_no ).
  • Keterbatasan kunci asing tingkat tabel dept_fk yang mereferensikan tabel dept dept_id .

BUAT TABEL dengan kolom NOT NULL

Jika Anda ingin menentukan bahwa kolom tidak boleh kosong dan harus berisi beberapa nilai, Anda dapat mendefinisikannya sebagai NOT NULL. Temukan sintaks untuk CREATE TABLE perintah dengan kolom NOT NULL di Oracle di bawah ini:

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

Seperti yang Anda lihat, emp_id menyiratkan memasukkan nilai untuk setiap baris data karena BUKAN NULL.

BUAT TABEL dengan kolom tanggal

Jika Anda perlu membuat tabel dengan kolom tanggal di Oracle, sintaks berikut mungkin berguna:

CREATE TABLE employees_bdays (
bday DATE
);

Untuk memasukkan tanggal ke dalam kolom secara efisien, Anda memerlukan tanggal_tanggal fungsi yang menerima string karakter yang berisi tanggal serta string karakter lain yang menginstruksikannya tentang cara menafsirkan tanggal yang diterima.

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

Alternatif Oracle untuk SQL CREATE TABLE JIKA TIDAK ADA

Pengguna tersebut, yang terbiasa dengan SQL CREATE TABLE IF NOT EXISTS yang sangat membantu perintah, mungkin kecewa karena tidak ada pernyataan seperti itu di Oracle. Tetapi jika Anda masih perlu menentukan apakah tabel sudah ada sebelum membuatnya di Oracle, Anda akan menemukan solusi alternatif untuk masalah ini di bawah.

Jika Anda menerima kesalahan (ORA-00955:nama sudah digunakan oleh objek yang sudah ada) saat mencoba membuat tabel, ini dapat berfungsi sebagai indikator bahwa tabel tersebut sudah ada.

Buat tabel baru dari tabel lain menggunakan CREATE TABLE AS SELECT

Terkadang, Anda perlu menyalin data dari satu tabel dan memasukkannya ke tabel lain. Cukup mudah untuk membuat tabel seperti tabel lain di Oracle, ditambah lagi sangat membantu. Anda menghemat waktu dan tenaga jika ingin membuat tabel dengan struktur yang sama. Ini juga menyederhanakan proses pengujian.

Untuk melihat cara membuat tabel dari tabel lain di Oracle, lihat skrip di bawah ini:

CREATE TABLE table_name AS (
SELECT select_query
);

Ini juga disebut sebagai CREATE TABLE AS SELECT (CTAS).

Anda dapat memasukkan nama_tabel untuk tabel baru Anda atau gunakan SELECT permintaan untuk menyalinnya. Anda juga dapat memasukkan SELECT * FROM meja_lama jika Anda perlu menyalin semua data ke tabel baru. Jika Anda perlu membatasi nilai yang akan disalin, kode WHERE klausa akan membantu Anda.

BUAT TABEL dari SELECT di PL/SQL

Di Oracle, Anda juga dapat membuat satu tabel dari tabel lainnya dengan memasukkan SELECT pernyataan di akhir CREATE TABLE penyataan. Dalam hal ini, semua catatan dari tabel lama akan disalin ke yang baru. Sintaks dari Oracle CREATE TABLE dari SELECT adalah sebagai berikut:

CREATE TABLE new_table
  AS (SELECT * FROM old_table);

Seperti yang Anda lihat, pembuatan tabel PL/SQL dari SELECT perintah sangat membantu. Perhatikan bahwa Anda juga dapat membuat tabel sementara dari SELECT .

Cara membuat dan menyisipkan data ke tabel sementara

Tabel sementara digunakan di Oracle untuk menyimpan data milik satu sesi atau satu transaksi.

Tabel sementara ORACLE adalah objek DDL dengan semua batasan.

Jadi bagaimana cara membuat tabel sementara di Oracle? Anda dapat menggunakan pernyataan CREATE GLOBAL TEMPORARY TABLE untuk membuat tabel sementara. Untuk menentukan apakah data dalam tabel adalah khusus transaksi (default) atau khusus sesi, gunakan klausa ON COMMIT.

Sintaks untuk data khusus transaksi adalah sebagai berikut:

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

BUAT TABEL dalam sekejap menggunakan dbForge untuk Oracle

Waktu selalu menjadi salah satu sumber daya paling berharga di luar sana. Oleh karena itu, Anda mungkin menemukan menggunakan IDE yang sesuai membantu dalam hal menghemat waktu Anda. Salah satu solusi terbaik adalah dbForge Studio untuk Oracle. Ini adalah alat universal yang dapat digunakan untuk mengembangkan, mengadministrasikan, dan mengelola database Oracle. Klien GUI yang efisien ini sangat bagus untuk DBA, pengembang basis data, insinyur perangkat lunak, dan analis. dbForge Studio untuk Oracle memungkinkan sinkronisasi data antara beberapa server Oracle dan memfasilitasi otomatisasi proses pengembangan database.

Saat membuka IDE untuk pertama kalinya, Anda akan melihat Properti Koneksi Database jendela. Untuk membukanya secara manual, pilih Database dan klik Koneksi Baru .

Setelah itu, isi bidang yang sesuai dan tekan Uji Sambungan .

Jika semuanya dikonfigurasi dengan benar, Anda akan melihat Pesan Berhasil tersambung yang akan terlihat seperti ini:

Setelah terhubung ke server Oracle Anda, pilih pengguna yang ingin Anda buatkan tabel baru. Posting blog terbaru kami tentang cara membuat pengguna baru di Oracle mungkin berguna pada langkah ini.

Langkah pertama untuk membuat tabel baru adalah melakukan klik kanan pada skema yang diperlukan. Arahkan ke Objek Baru dan klik opsi pertama:Tabel .

1. Di Nama kotak teks Editor Tabel , masukkan nama tabel. Pada contoh di bawah ini, kami membuat tabel berjudul karyawan .

2. Pada kotak di bawah ini, ketik nama untuk kolom yang akan datang, pilih tipe datanya, dan apakah harus NOT NULL.

3. Properti kolom akan ditampilkan di sisi kanan Editor Tabel .

4. Anda akan melihat bahwa semua tindakan yang Anda lakukan di Editor Tabel , tercermin dalam kueri SQL di bagian bawah jendela.

Setelah properti tabel dikonfigurasi, klik Terapkan Perubahan dan hanya itu!

Kesimpulan

Membuat tabel adalah salah satu tugas paling umum saat bekerja dengan database Oracle karena membantu mengatur data. Dalam panduan kami, kami telah menawarkan panduan terperinci tentang cara membuat tabel di Oracle menggunakan 10 cara berbeda. Anda dapat menggunakan pernyataan Oracle SQL CREATE TABLE dan mengeksekusi kueri secara manual atau menggunakan IDE yang sesuai untuk mengotomatisasi proses. Dalam hal ini, dbForge Studio untuk Oracle adalah pilihan terbaik.

Tautan yang berguna

  • Membuat Database di Oracle
  • Ganti nama tabel di Oracle
  • Pemformat 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. Bagaimana Cara Menggunakan Tabel Sementara Global dalam Prosedur Oracle?

  2. Java - Bagaimana cara memanggil prosedur Oracle dengan tipe khusus?

  3. Fungsi GREATEST() di Oracle

  4. Mengaktifkan TLS di R12.1

  5. Permintaan EF ke Oracle melempar ORA-12704:ketidakcocokan set karakter