Navicat Blog

Memperluas Tipe Data PostgreSQL dengan Navicat 17 - Bagian 2 Jan 3, 2025 by Robert Gravelle

Tipe Gabungan

Selamat datang di bagian kedua dari seri ini tentang membuat tipe data kustom di PostgreSQL menggunakan Navicat Premium 17. Di bagian 1, kita mempelajari cara membuat Domain kustom untuk database Persewaan DVD gratis. Domain adalah tipe data yang ditentukan pengguna dengan batasan seperti NOT NULL dan CHECK. Di blog hari ini, kita akan membuat Tipe Komposit untuk mengembalikan data kompleks dari fungsi yang ditentukan pengguna.

Mendefinisikan Tipe PostgreSQL

Tipe dibuat menggunakan perintah CREATE TYPE. Perintah ini membuat Tipe Komposit yang dapat digunakan dalam prosedur tersimpan dan berfungsi sebagai tipe data parameter input serta value yang dikembalikan.

CREATE TYPE PostgreSQL mendukung empat variasi utama:

  • Tipe Komposit: Menetapkan data komposit yang menggabungkan dua atau lebih tipe data, yang memungkinkan pembuatan tipe data multibidang yang kompleks yang dapat merepresentasikan struktur data yang rumit.
  • Tipe Enumerasi: Ditetapkan sebagai sekumpulan tetap value yang telah ditetapkan sebelumnya dan diberi nama, yang membatasi input hanya pada opsi tertentu.
  • Tipe Rentang: Mewakili interval berkelanjutan antara value, yang memungkinkan operasi canggih pada rentang data yang berdekatan seperti tanggal atau angka.
  • Tipe Dasar: Tipe yang ditentukan pengguna dapat dibuat berdasarkan tipe dasar yang ada seperti int, varchar, atau numerik. Meskipun tidak ada "Tipe Dasar" khusus untuk tipe yang ditentukan pengguna, tipe baru pada dasarnya adalah ekstensi atau batasan yang diterapkan pada tipe dasar PostgreSQL yang mendasarinya.

Pada beberapa bagian berikutnya kita akan menjelajahi Tipe Komposit secara lebih rinci dengan membuat Tipe dan menggunakannya dalam suatu fungsi.

Pernyataan CREATE TYPE

Semua Tipe dibuat menggunakan pernyataan CREATE TYPE. Katakanlah kita ingin memiliki fungsi yang mengembalikan beberapa value tentang sebuah film seperti ID film, judul, dan tahun_rilis. Berikut ini adalah pernyataan yang membuat tipe bernama "film_summary":

CREATE TYPE film_summary AS (
    film_id INT4,
    title VARCHAR(255),
    release_year CHAR(4)
);

Membuat Tipe di Navicat 17

Navicat Premium 17 dan Navicat for PostgreSQL 17 keduanya menawarkan alat berbasis GUI untuk menghasilkan tipe tanpa harus mengetahui semua syntax secara pasti. Anda akan menemukannya dibawah “Lainnya” di toolbar utama:

type_menu_command (33K)

Selanjutnya, kita akan mengklik tanda panah di samping item "Tipe Baru" di toolbar "Objek". Itu akan memunculkan empat opsi berbeda untuk membuat tipe. Pilih item "Komposit" dari isi menu:

composite_menu_item (16K)

Itu akan memunculkan kotak tempat kita dapat memasukkan detail field. Karena tiga field yang membentuk Jenis "film_summary" sudah ada, kita dapat memunculkan tabel "film" di Perancang Tabel dan menyalin data Jenis dan Panjang dari sana. Berikut adalah tiga bidang yang disorot dengan warna merah:

fields_in_table_designer (85K)

Grid tersebut sudah memiliki baris kosong untuk kolom pertama. Setelah memasukkan detailnya, kita dapat menambahkan baris baru dengan mengklik "Add Member". Berikut grid yang sudah lengkap:

composite_type_fields (30K)

Sebelum mengklik tombol "Simpan", kita dapat melihat pernyataan yang akan dihasilkan Navicat dengan mengklik tab "Preview SQL":

sql_preview_tab (22K)

Perhatikan bahwa nama Jenis adalah "Tanpa Judul" karena kita belum menyimpan definisinya. Itu yang diharapkan.

Sekarang mari kita tetapkan namanya. Mengklik tombol "Simpan" akan menampilkan dialog "Simpan Sebagai" tempat kita dapat memberi Jenis kita nama "film_summary":

save_as_dialog (31K)

Menggunakan Tipe film_summary Dalam Fungsi

Sekarang saatnya menggunakan "film_summary" sebagai tipe pengembalian fungsi. Seperti pembuatan Tipe, kita akan menggunakan alat GUI Navicat untuk melakukannya. Untuk mengakses Function Designer, klik tombol "Fungsi" pada bilah alat utama diikuti oleh "Fungsi Baru" pada toolbar "Objek":

function_buttons (23K)

Editor akan mengisi sebagian besar sintaks untuk CREATE FUNCTION bagi kita; kita hanya perlu menyediakan beberapa detail seperti nama fungsi, parameter input, tipe pengembalian, dan isi fungsi. Berikut ini adalah pernyataan CREATE FUNCTION yang telah lengkap:

CREATE FUNCTION get_film_summary (f_id INT4)
  RETURNS film_summary
AS $BODY$
  SELECT 
    film_id,
    title,
    release_year
  FROM
    film
  WHERE
    film_id = f_id;
$BODY$
  LANGUAGE SQL VOLATILE;
get_film_summary_function_definition (40K)

Pastikan juga untuk menyetel bahasa ke "SQL".

Setelah kita mengeklik tombol "Simpan", fungsi kita siap digunakan. Cara tercepat dan termudah untuk mencoba suatu fungsi adalah dengan mengeklik tombol "Jalankan". Itu akan memunculkan perintah untuk menggunakan guna menyediakan value untuk parameter "f_id":

input_parameter_prompt (35K)

Hasilnya kemudian akan muncul di tab Hasil baru:

function_results (28K)

Kesimpulan

Dalam blog hari ini, kita membuat Tipe Komposit menggunakan alat Tipe Navicat Premium 17 dan merancang fungsi yang mengembalikan Tipe kita. Bagian 3 akan dilanjutkan dengan Tipe Enumerasi.

Navicat Blog
Feed Entri
Arsip Blog
Bagikan