5.1 RDBMS : DB2 dan ORACLE
RDBMS adalah singkatan dari "Relational Database Management System". Data RDBMS disimpan dalam objek database yang disebut tabel. Tabel adalah tempat penyimpanan utama pada setiap RDBMS dan pada dasarnya mereka adalah koleksi entri data terkait. Sebagai contoh tabel yang disebut Users mungkin menyimpan informasi tentang banyak orang, dan setiap entri dalam tabel ini akan mewakili satu pengguna yang unik. Meskipun semua entri pengguna dalam tabel Pengguna yang unik, mereka terkait dalam arti bahwa mereka menggambarkan objek serupa.
Table Users
FirstName | LastName | DateOfBirth |
John | Smith | 12/12/1969 |
David | Stonewall | 01/03/1954 |
Susan | Grant | 03/03/1970 |
Setiap tabel database terdiri dari kolom dan baris. Setiap kolom tabel mendefinisikan tipe data yang
disimpan di dalamnya, dan tipe data ini berlaku untuk semua baris dalam tabel ini. Sebuah baris tabel adalah kumpulan data memiliki 1 entri untuk setiap kolom dalam tabel ini (setiap baris ini disebut dengan satu record).
RDBMS menyimpan data ke dalam kelompok tabel , yang mungkin ya atau mungkin tidak setip tabel terkait pada bagian fieldnya (field adalah satu kolom dalam tabel). RDBMS juga menyediakan operator relasional untuk memasukkan atau meng-update maupun menghapus informasi yang disimpan ke dalam tabel database.
MS SQL Server, DB2, Oracle dan MySQL semua itu adalah Relational Database Management System (RDBMS).
Pada semua tutorial mengenai SQL saya akan menggunakan kata-kata RDBMS dan database secara bergantian jadi setiap kali saya menggunakan kata database berarti maksud saya adalah RDBMS dan sebaliknya.
5.2 Pengenalan DB2
5.2.1Pengertian DB2
DB2 adalah keluarga sistem manajemen database relasional (RDBMS) produk dari IBM yang melayani sejumlah sistem operasi yang berbeda platform. Menurut IBM, DB2 memimpin dalam hal pangsa pasar database dan kinerja. Meskipun produk DB2 yang ditawarkan untuk sistem berbasis UNIX dan sistem operasi komputer pribadi, DB2 jejak produk database Oracle dalam sistem berbasis UNIX dan Microsoft Access.
5.2.2 Perkembangan DB2 :
Akhir th. 70-an : Riset penyusunan teknologi relasional
Th. 80-an : Produk DB2 untuk VM, VSE, MVS, AS/400, OS/2
Th. 90-an : Produk DB2 untukAIX, HP-UX, SOLARIS, NT, SINIX
5.2.3 Keunggulan DB2 :
– Dapat dijalankan pada bermacam-macam platform
– Menunjang client/server platform, aplikasi multimedia, object oriented
– Dirancang untuk memperoleh informasi dalam bisnis berskala kecil maupun besar
– Memiliki alat yang mengizinkan user membuat macam- macam aplikasi untuk mengakses dan bekerja dengan data.
5.2.4 DB 2 Product Family
DB2
Product Family.
IBM
DB2 Family dari database management systems menangani ruang
lingkup hardware platform yang besar mulai dari mainframe sampai
dengan mesin-mesin yang berbasiskan Intel, server IBM dan non IBM RISC serta workstation,
massively parallel processors, Sistem mid range AS/400, dan
sistem mainframe yang dijalankan dengan sistem operasi VM, VSE dan MVS.
Dengan tambahan database engines yang dijalankan pada setiap platform
tersebut. DB2 family termasuk solusi “middleware” untuk pengaksesan
basis data yang heterogen, replikasi data dan database systems management yang
berjalan di seluruh platform.
Produk-produk
DB2 yang dijalankan pada OS/2 dan platform yang berhubungan dengan
produk tersebut dikenal sebagai versi DB2 Common Server. Hal ini untuk
membedakan bahwa produk-produk tersebut dapat dijalankan pada platform yang
sejenis, yang berisikan fungsi produk yang serupa dan menggunakan bersama source
code yang sama.
Produk-produk DB2 Common Server merupakan
client/server RDBMS untuk server IBM dan server non IBM,
dan workstation yang berisikan fungsi-fungsi dimana aplikasi dapat
dijalankan pada lingkungan client yang luas, fungsi-fungsi untuk
menyimpan dan mengelola data, dan gateway yang mengizinkan pengaksesan
data dengan SQL pada lingkungan yang heterogen.
5.2.5 SQL Data Language
SQL (Structured Query Language) adalah sebuah bahasa yang dipergunakan untuk mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya.
Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data (SMBD)[1], namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI. Artikel ini akan menggunakan bentuk paling umum yang dapat digunakan pada kebanyakan SMBD.
5.2.6 DB 2 Utility
Gambar
Ada beberapa utility yang dapat digunakan sebagai alat pemelihara di DB2, diantaranya adalah REORG, RUNSTAT dan REBIND.
1. REORG
Utiliti ini berfungsi sebagai table reorganization. Sama seperti sistem operasi, seiring berjalannya waktu maka table dan index pun dapat terdefragementasi. Oleh karena itu perlu di reorganize kembali.
Syntaxnya
REORG TABLE
Contoh
REORG TABLE staff
2. RUNSTAT
Utiliti ini berfungsi untuk menunjukkan statistik dari sebuah database.
Syntaxnya
RUNSTAT ON TABLE
Contoh
RUNSTAT ON TABLE schema.staff>
3. REBIND
Utiliti ini memungkinkan user untuk membuat kembali package yang ada di database tanpa membutuhkan bind file.
Syntax
db2rbind database_alias –l
Contoh
db2rbind sample –l mylog.txt
5.2.7 DB2 Object
Data Objects :
1. Schema : kumpulan dari database object (table, view, index, application object).
Fungsi dari schema :
- Menyatakan indikasi kepemilikan objek dan relasi dengan aplikasi
- Secara logikal kelompok berkaitan dengan objek secara bersama
- Penggunaan schema : {schema_name}.{object_name}
2. Tables
Tipe data :
CLOB (Charcter Large Object) : biasa digunakan untuk menyimpan tulisan korea, jepang, mandarin
BLOB (Binary Large Object) : biasa digunakan untuk menyimpan gambar, video
DBCLOB (Double Byte Character Large Object)
3. User Defined Types
Digunakan untuk membuat tipe data sesuai dengan keinginan atau dibuat alias.
Contoh :
CREATE DISTINCT TYPE POUND AS INTEGER WITH COMPARISONS
CREATE DISTINCT TYPE KILOGRAM AS INTEGER
WITH COMPARISONS
CREATE TABLE person
(f_name varchar(30),
weight_p POUND NOT NULL,
weight_k KILOGRAM NOT NULL )
SELECT F_NAME FROM PERSON
WHERE weight_p > POUND(30)
Contoh diatas ialah membuat weight_p menjadi alias POUND dan weight_k menjadi alias KILOGRAM.
4. Null Values
Menunjukkan bahwa sebuah atribut tidak memiliki data apapun.
Contoh penggunaan :
CREATE TABLE Staff (
ID SMALLINT NOT NULL, NAME VARCHAR(9) ,
DEPT SMALLINT not null with default 10,
JOB CHAR(5) ,
YEARS SMALLINT ,
SALARY DECIMAL(7,2) ,
COMM DECIMAL(7,2) with default 15
5. System Catalog Tables
- Setiap database memiliki system catalog table masing-masing
- Meta data ini menyimpang objek database
- Dapat meng-query table ini sama dengan table lainnya
- Berada dalam tiga schema :
* SYSIBM : base table, dioptimalkan untuk DB2
* SYSCAT : dilihat berdasar table SYSIBM, dioptimalkan untuk kemudahan penggunaan
* SYSSTAT : database statistik
- Contoh :
SYSCAT.TABLES
SYSCAT.INDEXES
SYSCAT.COLUMNS
6. Sequence Objects
Digunakan untuk automatic values, increment dan decrement.
Syntax :
CREATE SEQUENCE {nama sequence}
START WITH {value}
MAX VALUE {value} //unlimit, klo ngga disetting juga ok
[ INCREMENT/DECREMENT ] BY {value}
[ NO CYCLE/CYCLE ]
Contoh :
CREATE SEQUENCE myseq
START WITH 1
MAX VALUE 100
INCREMENT BY 2
NO CYCLE
Cara penggunaan :
- Currval (nilai sekarang) : 1
- Nextval (nilai selanjutnya) : 3
- Preval (nilai sebelumnya) : 1
INSERT INTO TABLE VALUES(nextval from myseq)
DROP sequence myseq
7. Views
Fungsi untuk efisiensi
Data untuk View tidak disimpan terpisah
Mendukung query bersarang
Contoh :
Connect to sample
CREATE VIEW myview1
AS SELECT name,phone,email
FROM employee
SELECT * FROM myview1
8. Indexes
Fungsinya untuk clustering (pengelompokan), jadi akan lebih cepat dalam proses searching.
Karakteristik indexes :
- Ascending dan descending
- Unik dan non unik
- Compound
- Berkelompok
5.3 Pengenalan Oracle
Pengenalan Database Relational
ORACLE adalah database relational. Sebuah database relational merupakan kumpulan dari tabel-tabel. Tabel sendiri sering kita jumpai dalam kehidupan sehari-hari, misalnya laporan keuangan bulanan, daftar harga menu, grafik-grafik dan lain-lain. Masing-masing tabel mempunyai hubungan antara satu dengan yang lain, misalnya antara tabel ruas jalan tol dengan tabel kantor cabang, sehingga dia disebut relational.
Kumpulan kertas-kertas laporan yang menumpuk di atas meja atau yang ada di laci sebetulnya dapat disebut sebagai database juga. Namun dengan pengelolaan seperti ini, akan muncul masalah jika data yang dikelola volumenya besar, sehingga menyulitkan kita dalam mengelola data-data tersebut. Kemudian mungkin kita akan menggunakan fasilitas komputer, seperti menggunakan LOTUS atau EXCEL, tapi pada prinsipnya kesulitan pekerjaan pengelolaan kita tetap sama.
Sebuah Sistem Basis Data Relational (Relational Database Management System, disingkat RDBMS) seperti ORACLE pada prinsipnya merupakan sistem yang memungkinkan kita untuk:
1. Memasukkan data.
2. Mengelola data.
3.Mengambil data
5.3.1 Computing Model
Oracle
Corporation mengeluarkan produk Oracle 10g berbasis grid computing.
Grid computing adalah arsitektur TI baru yang menghasilkan sistem
informasi perusahaan yang berbiaya rendah dan lebih adaptif terhadap
dinamika bisnis. Dengan grid computing, sejumlah komponen hardware dan
software yang modular dan independen akan dapat dikoneksikan dan
disatukan untuk memenuhi tuntutan kebutuhan bisnis. Lebih jauh, dari
sisi ekonomi, implementasi grid computing berarti membangun pusat
komputasi data yang tangguh dengan struktur biaya variatif yang bisa
disesuaikan dengan kebutuhan. Grid computing adalah solusi dari
masalah-masalah umum yang dihadapi perusahaan IT, permasalahan pada
aplikasi yang menyebabkan hardware tidak berfungsi maksimal contohnya
kasus monolitik, yaitu sistem sulit digunakan karena mahalnya ongkos
pengelolaan dan sulitnya dilakukan perubahan terhadap system juga
masalah informasi yang terpisah pisah dan tidak bisa dimanfaatkan secara
maksimal. Dalam mengadopsi grid computing, perusahaan tidak perlu
mengambil langkah secara revolusioner, karena aplikasi yang sebelumnya
telah dijalankan akan tetap bekerja seperti sebelumnya. Dan dimungkinkan
pula untuk mengadopsi teknologi grid computing pada aplikasi yang telah
dijalankan, bahkan tanpa memerlukan banyak penulisan ulang konfigurasi
sistem.
5.3.2 Overview Perintah-Perintah SQL
Perintah Select
Perintah Select digunakan untuk :
Selection : memilih baris/record
Projection : memilih kolom/field
Join : mengambil data dari beberapa tabel yang berbeda
Syntax Select
SELECT [DISTINCT] {*,column[alias],..}
FROM table;
Contoh:
SELECT loc,deptno
FROM emp
OPERATOR ARITMATIKA
Derajat Operator :
- Perkalian dan Pembagian
- Penjumlahan dan Pengurangan
- Bila ada ( ) maka ekspresi didalamnya dilaksanakan terlebih dahulu
Contoh :
SELECT ename,sal,12*sal+100 FROM emp;
NILAI NULL
Adalah nilai yang tidak ada, tidak didefinisikan, tidak diterapkan dan tidak
diketahui.
Nilai null ¹ 0 { zero}, null ¹ spasi {blank}
Contoh:
SELECT ename,job,sal,comm. FROM emp;
KOLOM ALIAS
Digunakan untuk merubah tampilan judul kolom.
Menggunakan AS atau “ “ {Double Qoute}
Contoh:
SELECT ename AS name, sal “salary” FROM emp;
OPERATOR GABUNGAN
Digunakan untuk menghubungkan kolom satu dengan kolom yang lain.
Menggunakan opertor gabungan { || }
Contoh:
SELECT ename || job AS employees
FROM emp;
KOLOM ALIAS DAN GABUNGAN
Digunakan untuk merubah tampilan judul kolom.
Menggunakan AS atau “ “ {Double Qoute}
Contoh:
1. SELECT ename AS name, sal salary FROM emp;
2. SELECT ename ||”is a”|| job AS “employee details”
FROM emp;
BARIS DUPLIKAT / GANDA
Syntax Select
SELECT [DISTINCT] {*,column[alias],..}
FROM table;
Contoh:
SELECT loc,deptno
FROM emp
SQL dan SQL*PLUS
Keistimewaan SQL :
Dapat digunakan oleh user baik yang berpengalaman atau tidak dalam pembuatan
program
Merupakan bahasa non prosedural
Mengurangi sejumlah waktu untuk membuat dan memelihara sistem
Sintaksnya dalam bahasa Inggris
5.3.3 Interaksi Antara SQL Plus Dengan SQL
Interaksi antara SQL*Plus dengan SQL
Contoh
Cursor Variable: Master Table dan Details Table
Mari kita
perhatikan stored procedure di bawah ini, yang mencari database dari
perpustakaan utama untuk buku, majalah, dan tape. Tabel master menyimpan judul
dan kode kategori (dimana 1=buku, 2=majalah, 3=tape) untuk setiap item. Tiga
tabel detail menyimpan informasi spesifik dari setiap kategori. Ketika
tipanggil, procedure tesrebut mencari tabel master berdasarkan judul,
menggunakan kode kategori terkait untuk membuka perintah OPEN-FOR, lalu membuka
cursor variable untuk query dari tabel detail yang tepat.
========================================================================
CREATE PACKAGE cv_types AS
TYPE LibCurTyp IS REF CURSOR;
...
END cv_types;
CREATE PROCEDURE find_item (
title VARCHAR2(100),
lib_cv IN OUT
cv_types.LibCurTyp)
AS
code BINARY_INTEGER;
BEGIN
SELECT item_code
FROM titles INTO code
WHERE item_title = title;
IF code = 1 THEN
OPEN lib_cv FOR SELECT * FROM books
WHERE book_title = title;
ELSIF code = 2 THEN
OPEN lib_cv FOR SELECT * FROM periodicals
WHERE periodical_title = title;
ELSIF code = 3 THEN
OPEN lib_cv FOR SELECT * FROM tapes
WHERE tape_title = title;
END IF;
END find_item;
5.3.4 SQL Statement VS SQL Plus Statement
SQL adalah bahasa yang digunakan untuk berkomunikasi dengandatabase Oracle server dari sebuah tool atau aplikasi. Oracle SQL
Perintah PAUSE memungkinkan Anda untuk menampilkan baris kosong atau teks dengan penghentian sementara aksi dan menunggu RETURN untuk pengguna;
Perintah PROMPT mengirimkan sebuah baris kosong atau pesan pada layar;
ACCEPT variabel [NUMBER | CHAR | DATA]
[FORMAT format] [PROMPT text | NOPROMPT] [HIDE]
Peninjauan:
- Jenis variabel default adalah CHAR;
- Teks PROMPT dicetak sebelum pengguna memberikan nilai yang sebenarnya;
- HIDE adalah pilihan yang membuat nilai yang diberikan oleh pengguna untuk disembunyikan;
- Pilihan menunjukkan FORMAT format string;
- Pergantian variabel, jika ada, tidak boleh digunakan dengan simbol "&".
Contoh:
ACCEPT Alpha PROMPT ' number of copies: '
ACCEPT beta PROMPT ' author name ':
SELECT *
FROM the book
WHERE nrex = & alpha
AND author = ' & ' beta;
Variabel Substitusi
Pergantian variabel (& nama) digunakan untuk menyimpan nilai sementara.
Interface mengharuskan user untuk memberikan nilai setiap kali bertemu dengan sebuah variabel tidak terdefinisi.
Jika variabel didahului oleh simbol "& &", hanya panggilan pertama yang akan meminta variabel substitusi (& nama) fimana digunakan untuk menyimpan nilai sementara. Variabel ini dapat terjadi di SQL perintah atau SQL * Plus.
Interface mengharuskan user untuk memberikan nilai setiap kali bertemu dengan sebuah variabel tidak terdefinisi. Jika variabel didahului oleh simbol "& &", hanya panggilan pertama yang akan membutuhkan nilai.
Untuk variabel tipe karakter. Variabel substitusi dapat terjadi dalam kondisi WHERE, dalam klausa ORDER BY dalam ekspresi kolom, dalam nama tabel, bukan perintah SELECT keseluruhan.
Contoh:
SELECT & kolom
FROM & tabel
WHERE & kondisi
ORDER BY & order;
Variabel tetap mengatur sampai salah satu meninggalkan SQL * Plus atau perintah UNDEFINE diberikan untuk variabel yang bersangkutan. Mencetak semua variabel, nilai-nilai dan jenis variabel tersebut harus diperoleh oleh bentuk DEFINE.
Contoh:
SQL > DEFINE autor1 = Brad
SQL > DEFINE autor2 = Stuart
SQL > SELECT title, nrex
FROM the book
WHERE author = ' & autor1 '
OR author = ' & autor2 ';
PLSQL
PL/SQL (Procedural Language/Structured Query Language) merupakan
pengembagan SQL oleh Oracle. Prasyarat mempelajari PL/SQL adalah paling tidak
mengetahui dasar-dasar SQL. Sebagai awalan belajar PLSQL, mari kita lihat contoh
kasus dan contoh blok PL/SQL berikut ini.
PL / SQL adalah salah satu dari tiga bahasa pemrograman kunci tertanam dalam Database Oracle, MOD_PLSQL Oracle HTTP Server (Apache) modul extension, bersama dengan SQL itu sendiri dan Jawa.
PL / SQL program unit (dasarnya kontainer code) dapat dikompilasi ke database Oracle. Pemrogram sehingga dapat menanamkan PL / SQL unit fungsionalitas ke dalam database secara langsung. Mereka juga dapat menulis skrip yang berisi PL / SQL program unit yang dapat membaca ke database menggunakan Oracle .Setelah unit program telah disimpan ke dalam database, mereka menjadi tersedia untuk eksekusi di lain waktu.
Keuntungan Penggunaan PL/SQL
– Memungkinkan Aplikasi dan Oracle Server menggunakan Library yang dapat digunakan bersama-sama dalam bentuk stored procedure
– Peningkatan Kinerja
– Penggunaan PL/SQL, memungkinkan pengiriman perintah secara blok dalam satu perintah yang secara drastis dapat menurunkan trafik jaringan
– Modular. Bentuk modular memungkinkan banyak kemudahan yang dapat diperoleh
– Portable. PL/SQL adalah sarana yang asli dimiliki oleh Oracle Server, artinya, program PL/SQL dapat dengan mudah dipindahkan dari satu Oracle Server ke Oracle Server lainnya, meskipun dengan OS atau platform yang berbeda.
– Dapat mendeklarasikan Variable
– Dapat berupa Variable, Constant, Cursor dan Exception
– Penggunaan variable/identifier sangat memudahkan dalam membuat suatu perintah. Misalkan untuk membaca hasil suatu perintah SELECT untuk diproses dan hasilnya digunakan untuk melakukan proses lainnya
– Dapat menggunakan Struktur Kontrol :LOOP, FOR, WHILE
– Dapat menangani Error
– Error bisa dihasilkan/dibangkitkan oleh Oracle
– Server atau bisa dibangkitkan sendiri dengan sengaja
– Untuk mengantisipasi berbagai hal yang barangkali sulit untuk ditangani secara langsung menggunakan kontrol program
SQL PLUS dan PLSQL
• PL/SQL (Procedural Language/Structure Query Language)
– Adalah suatu blok yang berisi skrip-skrip bahasa prosedural.
• PL/SQL merupakan bahasa pemrograman prosedural
• PL/SQL dapat meningkatkan kinerja database
Tipe Data dasar :
• Numerik
– NUMBER, BINARY_INTEGER, DEC, DOUBLE PRECISION, INTEGER, INT, NUMERIC, REAL, SMALLINT
• Karakter
– VARCHAR2, CHAR, LONG
• DATE
• BOOLEAN
• ROWID
Tipe Data tambahan :
• RECORD
• ARRAY
VARIABLE
• Adalah sebuah peubah yang digunakan untuk menampung sebuah nilai di memori komputer.
CONTOH VARIABLE
DECLARE
X integer;
Alamat varchar2(40);
No_induk char(8);
.....
BEGIN
X := 12;
Alamat := ‘Gelatik Dalam 391, Bandung’;
No_induk := ‘DOG29549’;
END;
KONSTANTA
• Digunakan untuk menyimpan sebuah nilai di memori komputer.
• Nilai yang disimpan bersifat tetap (konstan)
Contoh :
DECLARE
pi CONSTANT real := 3.14;
lebar CONSTANT integer := 100;
KOMENTAR
• Digunakan untuk memudahkan proses maintenance
• Jenis komentar :
– /* ... */ : untuk beberapa baris komentar
– -- ... : untuk satu bari komentar
Contoh :
/* Ini adalah komentar Oracle */
-- Ini juga komentar Oracle
STRUKTUR BLOK
• Terdapat tiga bagian :
• Bagian pendeklarasian tipe data (opsional)
– Bagian penulisan perintah
– Bagian eksepsi (opsional)
BENTUK UMUM
DECLARE
variabel tipe_data;
konstanta CONSTANT tipe_data := nilai;
...
BEGIN
statement_1;
statement_2;
...
EXCEPTION
WHEN nama_eksepsi THEN statement_untuk_mengatasi_error;
...
END;
CONTOH PALING SEDERHANA
BEGIN
DBMS_OUTPUT.PUT_LINE(‘Belajar Oracle’);
END;
Catatan:
Untuk melihat hasil, setting terlebih dahulu variabel sistem SERVEROUTPUT dengan menuliskan :
SET SERVEROUTPUT ON
CONTOH DENGAN EKSPESI
SET SERVEROUTPUT ON
DECLARE
X Integer;
BEGIN
X := ‘Belajar Oracle’;
DBMS_OUTPUT.PUT_LINE( TO_CHAR(X) );
EXCEPTION
WHEN VALUE_ERROR THEN
DBMS_OUTPUT.PUT_LINE (‘Kesalahan pada pengisisan
nilai’);
END;
terdiri dari beberapa bagian, ketika kita menjalankan perintah SQL,sql akan disimpan dalam suatu memory yang disebut SQL Buffer danakan tetap berada dalam memory sampai ada statemen baru.SQL *Plus adalah tool oracle yang mengenali dan menjalankanperintah SQL ke Oracle Server.
5.3.5 Contoh Perintah SQL Plus
Perintah PAUSE memungkinkan Anda untuk menampilkan baris kosong atau teks dengan penghentian sementara aksi dan menunggu RETURN untuk pengguna;
Perintah PROMPT mengirimkan sebuah baris kosong atau pesan pada layar;
ACCEPT variabel [NUMBER | CHAR | DATA]
[FORMAT format] [PROMPT text | NOPROMPT] [HIDE]
Peninjauan:
- Jenis variabel default adalah CHAR;
- Teks PROMPT dicetak sebelum pengguna memberikan nilai yang sebenarnya;
- HIDE adalah pilihan yang membuat nilai yang diberikan oleh pengguna untuk disembunyikan;
- Pilihan menunjukkan FORMAT format string;
- Pergantian variabel, jika ada, tidak boleh digunakan dengan simbol "&".
Contoh:
ACCEPT Alpha PROMPT ' number of copies: '
ACCEPT beta PROMPT ' author name ':
SELECT *
FROM the book
WHERE nrex = & alpha
AND author = ' & ' beta;
Variabel Substitusi
Pergantian variabel (& nama) digunakan untuk menyimpan nilai sementara.
Interface mengharuskan user untuk memberikan nilai setiap kali bertemu dengan sebuah variabel tidak terdefinisi.
Jika variabel didahului oleh simbol "& &", hanya panggilan pertama yang akan meminta variabel substitusi (& nama) fimana digunakan untuk menyimpan nilai sementara. Variabel ini dapat terjadi di SQL perintah atau SQL * Plus.
Interface mengharuskan user untuk memberikan nilai setiap kali bertemu dengan sebuah variabel tidak terdefinisi. Jika variabel didahului oleh simbol "& &", hanya panggilan pertama yang akan membutuhkan nilai.
Untuk variabel tipe karakter. Variabel substitusi dapat terjadi dalam kondisi WHERE, dalam klausa ORDER BY dalam ekspresi kolom, dalam nama tabel, bukan perintah SELECT keseluruhan.
Contoh:
SELECT & kolom
FROM & tabel
WHERE & kondisi
ORDER BY & order;
Variabel tetap mengatur sampai salah satu meninggalkan SQL * Plus atau perintah UNDEFINE diberikan untuk variabel yang bersangkutan. Mencetak semua variabel, nilai-nilai dan jenis variabel tersebut harus diperoleh oleh bentuk DEFINE.
Contoh:
SQL > DEFINE autor1 = Brad
SQL > DEFINE autor2 = Stuart
SQL > SELECT title, nrex
FROM the book
WHERE author = ' & autor1 '
OR author = ' & autor2 ';
5.3.6 PL/SQL
PLSQL
PL/SQL (Procedural Language/Structured Query Language) merupakan
pengembagan SQL oleh Oracle. Prasyarat mempelajari PL/SQL adalah paling tidak
mengetahui dasar-dasar SQL. Sebagai awalan belajar PLSQL, mari kita lihat contoh
kasus dan contoh blok PL/SQL berikut ini.
PL / SQL adalah salah satu dari tiga bahasa pemrograman kunci tertanam dalam Database Oracle, MOD_PLSQL Oracle HTTP Server (Apache) modul extension, bersama dengan SQL itu sendiri dan Jawa.
PL / SQL program unit (dasarnya kontainer code) dapat dikompilasi ke database Oracle. Pemrogram sehingga dapat menanamkan PL / SQL unit fungsionalitas ke dalam database secara langsung. Mereka juga dapat menulis skrip yang berisi PL / SQL program unit yang dapat membaca ke database menggunakan Oracle .Setelah unit program telah disimpan ke dalam database, mereka menjadi tersedia untuk eksekusi di lain waktu.
Keuntungan Penggunaan PL/SQL
– Memungkinkan Aplikasi dan Oracle Server menggunakan Library yang dapat digunakan bersama-sama dalam bentuk stored procedure
– Peningkatan Kinerja
– Penggunaan PL/SQL, memungkinkan pengiriman perintah secara blok dalam satu perintah yang secara drastis dapat menurunkan trafik jaringan
– Modular. Bentuk modular memungkinkan banyak kemudahan yang dapat diperoleh
– Portable. PL/SQL adalah sarana yang asli dimiliki oleh Oracle Server, artinya, program PL/SQL dapat dengan mudah dipindahkan dari satu Oracle Server ke Oracle Server lainnya, meskipun dengan OS atau platform yang berbeda.
– Dapat mendeklarasikan Variable
– Dapat berupa Variable, Constant, Cursor dan Exception
– Penggunaan variable/identifier sangat memudahkan dalam membuat suatu perintah. Misalkan untuk membaca hasil suatu perintah SELECT untuk diproses dan hasilnya digunakan untuk melakukan proses lainnya
– Dapat menggunakan Struktur Kontrol :LOOP, FOR, WHILE
– Dapat menangani Error
– Error bisa dihasilkan/dibangkitkan oleh Oracle
– Server atau bisa dibangkitkan sendiri dengan sengaja
– Untuk mengantisipasi berbagai hal yang barangkali sulit untuk ditangani secara langsung menggunakan kontrol program
SQL PLUS dan PLSQL
• PL/SQL (Procedural Language/Structure Query Language)
– Adalah suatu blok yang berisi skrip-skrip bahasa prosedural.
• PL/SQL merupakan bahasa pemrograman prosedural
• PL/SQL dapat meningkatkan kinerja database
Tipe Data dasar :
• Numerik
– NUMBER, BINARY_INTEGER, DEC, DOUBLE PRECISION, INTEGER, INT, NUMERIC, REAL, SMALLINT
• Karakter
– VARCHAR2, CHAR, LONG
• DATE
• BOOLEAN
• ROWID
Tipe Data tambahan :
• RECORD
• ARRAY
VARIABLE
• Adalah sebuah peubah yang digunakan untuk menampung sebuah nilai di memori komputer.
CONTOH VARIABLE
DECLARE
X integer;
Alamat varchar2(40);
No_induk char(8);
.....
BEGIN
X := 12;
Alamat := ‘Gelatik Dalam 391, Bandung’;
No_induk := ‘DOG29549’;
END;
KONSTANTA
• Digunakan untuk menyimpan sebuah nilai di memori komputer.
• Nilai yang disimpan bersifat tetap (konstan)
Contoh :
DECLARE
pi CONSTANT real := 3.14;
lebar CONSTANT integer := 100;
KOMENTAR
• Digunakan untuk memudahkan proses maintenance
• Jenis komentar :
– /* ... */ : untuk beberapa baris komentar
– -- ... : untuk satu bari komentar
Contoh :
/* Ini adalah komentar Oracle */
-- Ini juga komentar Oracle
STRUKTUR BLOK
• Terdapat tiga bagian :
• Bagian pendeklarasian tipe data (opsional)
– Bagian penulisan perintah
– Bagian eksepsi (opsional)
BENTUK UMUM
DECLARE
variabel tipe_data;
konstanta CONSTANT tipe_data := nilai;
...
BEGIN
statement_1;
statement_2;
...
EXCEPTION
WHEN nama_eksepsi THEN statement_untuk_mengatasi_error;
...
END;
CONTOH PALING SEDERHANA
BEGIN
DBMS_OUTPUT.PUT_LINE(‘Belajar Oracle’);
END;
Catatan:
Untuk melihat hasil, setting terlebih dahulu variabel sistem SERVEROUTPUT dengan menuliskan :
SET SERVEROUTPUT ON
CONTOH DENGAN EKSPESI
SET SERVEROUTPUT ON
DECLARE
X Integer;
BEGIN
X := ‘Belajar Oracle’;
DBMS_OUTPUT.PUT_LINE( TO_CHAR(X) );
EXCEPTION
WHEN VALUE_ERROR THEN
DBMS_OUTPUT.PUT_LINE (‘Kesalahan pada pengisisan
nilai’);
END;
mantaabbb
BalasHapus