SQL 1

Resume 9-12

Obyek-obyek Database

Tabel : Menyimpan data ; terdiri dari baris-baris •
View : Mewakili secara logika sub-sub kelompok data dari satu atau lebih tabel •
Sequence : Pembangkit nilai-nilai numerik •
Index : Meningkatkan performa dari beberapa query •
Synonym : Memberikan nama-nama alternatif untuk obyek-obyek •

Pernyataan CREATE TABLE

schema adalah sama dengan nama pemilik table adalah nama tabel
DEFAULT expr adalah menentukan suatu nilai default jika suatu nilai dihilangkan dalam pernyataan INSERT column adalah nama kolom.
datatype adalah tipe data dan panjang kolom
Membuat suatu Tabel dengan Menggunakan suatu Subquery

 

Membuat tabel

CREATE TABLE dept
{deptno NUMBER (2),
Dname VARCHAR2 (14)
Loc VARCHAR2 (13)
Create_date DATE DEFAULT SYSTDATE );

Tipe Data

VARCHAR2(size) = Panjang variable data karakter (Suatu size / ukuran maksimum harus ditentukan : size min adalah 1; size maks adalah 4,000)
CHAR [(size)] = Panjang tetap data karakter dari panjang bytes size (size default dan minimum adalah = 1; Maksimum = 2,000)
NUMBER [(p,s) ] = Angka dengan presisi p dan skala s (Presisi adalah total jumlah dari digit desimal, dan skala adalah jumlah digit di kanan koma dari poin desimal; rentang presisi antara 1 – 38, dan rentang skala antara 84 – 127)
DATE = Nilai-nilai tanggal dan waktu ke detik terdekat antara 1 Januari 4712 sebelum masehi (B.C.) sampai 31 Desember 9999 masehi (A.D.).
LONG = Panjang variabel data karakter (sampai 2 GB)
CLOB = Data karakter (sampai 4 GB)
RAW (size) = Data biner raw (kasar) dari panjang size (maksimum size harus ditentukan : maks size = 2,000)
LONG RAW = Data biner raw dari panjang variabel (sampai 2 GB)
BLOB = Data biner (sampai 4 GB)
BFILE = Data biner disimpan dalam file eksternal (sampai 4 GB)
ROWID = Sistem bilangan berbasis 64 mewakili alamat unik dari suatu baris dalam tabel tersebut

Petunjuk
Kolom LONG tidak disalin ketika tabel dibuat menggunakan suatu subquery. •
Kolom LONG tidak dapat dimasukkan dalam suatu klausa GROUP BY atau ORDER BY. •
Hanya satu kolom LONG yang dapat digunakan pada setiap tabel. •
Tidak ada constraintconstraint yang dapat didefinisikan pada kolom LONG. •
Anda sebaiknya menggunakan kolom CLOB daripada kolom LONG. •

Tipe Data Datetime

TIMESTAMP = Memungkinkan waktu disimpan sebagai tanggal dengan sebagian detik. Adabeberapa variasi pada tipe data ini.
INTERVAL YEAR TO MONTH = Memungkinkan waktu disimpan sebagai interval tahun dan bulan.
Digunakan untuk menunjukkan perbedaan antara dua nilai datetime yang mana hanya bagianbagian
penting tahun dan bulan.
INTERVAL DAY TO SECOND = Memungkinkan waktu yang disimpan sebagai suatu interval hari, jam,
menit dan detik. Digunakan untuk menunjukkan perbedaan yang tepat antara dua nilainilai datetime.

Tipe Data TIMESTAMP
Tipe data TIMESTAMP adalah suatu perluasan dari tipe data DATE

Contoh
CREATE TABLE new_employees
(employee_id NUMBER,
first_name VARCHAR2(15),
last_name VARCHAR2(15),
. . .
start_date TIMESTAMP(7),
. . . );

Anggap bahwa dua baris disisipkan dalam tabel NEW_EMPLOYEES. Keluaran yang ditampilkan
menunjukkan perbedaan. ( Suatu default tipe data DATE untuk tampilan menggunakan format DDMONRR):
SELECT start_date
FROM new_employees;
17JUN03 12.00.00.000000 AM
21SEP03 12.00.00.000000 AM

Constraint-Constraint

Anda dapat menggunakan constraint-constraint untuk melakukan berikut ini:
Melaksanakan aturan pada data dalam suatu tabel kapan pun suatu baris disisipkan, diupdate, atau dihapus dari tabel. Constraint harus dipenuhi pada operasi agar berhasil. •
Mencegah penghapusan suatu tabel jika ada ketergantungan dari tabel lain. •
Menyediakan aturanaturan untuk tooltool Oracle, seperti Oracle Developer. •

Data Integrity Constraints Constraint Keterangan
NOT NULL = Menentukan bahwa kolom tidak boleh berisi suatu nilai null
UNIQUE= Menentukan suatu kolom atau kombinasi kolom-kolom yang nilainilainya harus unik untuk semua bari di dalam tabel
PRIMARY KEY = Identifikasi secara unik setiap baris pada tabel
FOREIGN KEY = Menentukan dan melaksanakan suatu hubungan kunci tamu (foreign key) antara suatu kolom dan kolom yang direferensikan
CHECK = Menentukan suatu kondisi yang harus benar
Mendefiniskan Constraint-Constraint
Constraint-constraint

1. Contoh pertama menggunakan sintak columnlevel untuk mendefiniskan constraint.
2. Contoh kedua menggunakan sintak tablelevel untuk mendefinisikan constraint.

Constraint NOT NULL
Constraint NOT NULL memastikan bahwa kolom tidak berisi nilai-nilai
null. Kolom-kolom tanpa constraint NOT NULL secara default dapat berisi nilainilai null. Constraint NOT NULL harus didefinisikan pada tingkat kolom (columnlevel).

Constraint UNIQUE
Suatu kunci integrity constraint UNIQUE meminta bahwa nilai dalam suatu kolom atau kelompok
kolom (kunci) adalah unik, dimana tidak ada dua baris dari suatu tabel bisa memiliki nilainilai
yang sama dalam suatu kolom tertentu atau sekelompok kolom.

Constraint PRIMARY KEY
Suatu constraint PRIMARY KEY membuat suatu primary key untuk suatu tabel. Setiap tabel hanya
bisa dibuat satu primary key. Constraint PRIMARY KEY adalah suatu kolom atau sekelompok
kolom yang teridentifikasi secara unik pada setiap baris dalam suatu tabel.

Constraint FOREIGN KEY
Suatu constraint FOREIGN KEY (atau referential integrity) mendesain suatu kolom atau kombinasi
dari kolom-kolom sebagai suatu foreign key (kunci tamu) dan menjalankan sebuah hubungan antara
primary key atau suatu unique key dalam tabel yang sama atau pada tabel yang berbeda.

Constraint CHECK
Constraint CHECK mendefinisikan suatu kondisi bahwa setiap baris harus sesuai. Kondisi dapat
menggunakan konstruksi yang sama sebagai kondisikondisi
query, dengan pengecualian sebagai
berikut :
Merujuk pada pseudocolumns (kolom maya) CURRVAL, NEXTVAL, LEVEL dan ROWNUM •
Memanggil fungsifungsi •
SYSDATE, UID, USER dan USERRENV
Queryquery •
yang merujuk pada nilainilai
lainnya pada baris yang lain

Constraintconstraint
CHECK dapat didefinsisikan pada tingkat kolom ataupun tingkat tabel .
CREATE TABLE employees
(. . .
salary NUMBER(8,2) CONSTRAINT emp_salary_min
CHECK (salary > 0),
Contoh CREATE TABLE
Pada contoh ditunjukkan penggunaan pernyataan untuk membuat tabel EMPLOYEES dalam skema
HR.
Pernyataan ALTER TABLE
Setelah Anda membuat suatu tabel, mungkin Anda ingin untuk merubah struktur tabel untuk beberapa alasan berikut :
Anda menghilangkan suatu kolom. •
Definisi kolom Anda perlu untuk dirubah. •
Anda ingin untuk menghapus kolomkolom. •

Menhapus Suatu Tabel
Pernyataan DROP TABLE menghapus pendefinisan suatu tabel Oracle. Saat Anda menghapus
(drop) suatu tabel, database kehilangan semua data di dalam tabel dan semua indeksindeks yang terhubung dengannya.

Sintak
DROP TABLE table
Dalam sintak, table adalah nama suatu tabel.

Pedoman-pedoman
Semua data terhapus dari tabel. •
Beberapa viewview dan synonym tetap ada tapi tidak valid. •
Beberapa transaksitransaksi yang tertunda dicommit. •
Hanya pembuat tabel atau seorang user dengan hak DROP ANY TABLE bisa menghapus suatu tabel. •

Membuat Suatu View
• Buat view EMPVU80, yang berisi rician para pegawai pada departemen 80

 

• Buat suatu view dengan menggunakan alias alias dalam subquery

CREATE OR REPLACE VIEW salvu50 (ID_NUMBER, NAME, ANN_SALARY)
AS SELECT employee_id, last_name, salary*12
FROM employees
WHERE department_id = 50;

Meretrieve Data dari suatu View
Anda dapat meretrieve (mendapatkan kembali) data dari suatu view seperti yang Anda inginkan dari
beberapa tabel
SELECT *
FROM salvu50;
Melakukan Operasi-Operasi DML pada suatu View

Anda dapat menghapus suatu baris dari suatu view kecuali view tersebut berisi hal-hal berikut ini :
Group functions •
Klausa GROUP BY •
Keyword DISTINCT •
Keyword pseudocolomn (kolom maya) ROWNUM •
Sequences
Suatu sequence adalah sebuah obyek database yang menghasilkan nilai integer. Anda dapat
membuat sequences dan menggunakannya untuk menghasilkan angka-angka.
Sintak :

INCREMENT BY = menentukan interval antara angkaangka
sequence, dimana n adalah sebuah integer (Jika klausa ini dihilangkan maka sequence akan ditambah 1)
START WITH = menentukan angka sequence pertama yang dihasilkan (Jika klausa ini dihilangkan, maka sequence dimulai dari 1)
MAXVALUE = menentukan nilai maksimum dari sequence yang dihasilkan
Nomaxvalue = menentukan sebuah nilai maksimum dari 10^27 untuk sequence secara ascending dan 1 untuk sequence secara descending (Ini adalah pilihan default)
MINVALUE = menentukan nilai minimum dari sequence
NOMINVALUE = menentukan sebuah nilai minimum dari 1 secara ascending dan –(10^27) untuk sequence yang descending (Ini adalah pilihan default)
CYCLE | NOCYCLE = menentukan apakah sequence berlanjut untuk menghasilkan nilainilai
setelah mencapai nilai maksimum atau minimum (NOCYCLE adalah pilihan default)
CACHE n | NOCACHE = menentukan berapa banyak nilai yang akan dialokasikan oleh server
Oracle dan disimpan di memory (Secara default, server Oracle menyimpan nilai 20.)

Pseudocolumns NEXTVAL dan CURRVAL
NEXTVAL mengembalikan urutan nilai selanjutnya yang ada. •
NEXTVAL mengembalikan suatu nilai unik setiap saat dia direferensikan, meskipun pada user yang berbeda.
CURRVAL menghasilkan urutan nilai saat ini. •
NEXTVAL harus dikeluarkan untuk urutan tersebut sebelum isi suatu nilai CURRVAL. •

Menggunakan Suatu Sequence
•Sisipkan suatu departemen baru dengan nama “Support” pada ID lokasi 2500 :

INSERT INTO depatrments (department_id, department_name, located_id)
VALUES (dept_deptid_neq.NEXTVAL, ‘support;.2500);

•Tampilkan nilai saat ini untuk urutan DEPT_DEPTID_SEQ :
SELECT dept_deptid_neq.CURRVAL
FROM dual;

Indexs
Index-index adalah obyek-obyek
database yang dapat Anda buat untuk meningkatkan performa dari beberapa query. Index-index
juga dapat dibuat secara otomotis oleh server ketika Anda membuat suatu primary key atau unique constraint.
Tipe- Tipe dari Index
Dua tipe dari index yang dapat dibuat.
Unique Index : Server Oracle secara otomatis membuat index ini saat Anda mendefiniskan suatu
kolom pada suatu tabel yang memiliki suatu constraint PRIMARY KEY atau UNIQUE. Nama dari
index adalah seperti yang diberikan untuk nama constraint.
NonUnique Index : Adalah suatu index yang dapat dibuat oleh seorang user. Sebagai contoh, Anda
dapat membuat index kolom FOREIGN KEY untuk join dalam suatu query untuk mempercepat
proses retrieval (pengambilan data).
Note : Anda dapat secara manual membuat suatu index unik, tetapi Anda direkomendasikan untuk
membuat constraint unik, yang secara implisit membuat suatu index unik.
Membuat Suatu Index
•Membuat suatu index pada satu atau beberapa kolom :

CREATE INDEX index
ON table (column[, column);

•Meningkatkan kecepatan dari akses query ke kolom LAST_NAME dalam tabel EMPLOYEES :

CREATE INDEX emp_last_name_idx
ON table employees(last_name)

Menghapus suatu Index
•Menghapus suatu index dari data dictionary dengan
menggunakan perintah DROP INDEX :
DROP INDEX index;
•Menghapus index UPPER_LAST_NAME_IDX dari data
dictionary :
DROP INDEX emp_last_name_idx;
•Untuk menghapus suatu index, Anda harus menjadi pemilik
dari index atau memiliki hak DROP ANY INDEX

Synonyms
Synonym-synonym adalah obyek-obyek database yang memungkinkan Anda untuk memanggil suatu
tabel dengan nama lain. Anda dapat membuat synonymsynonym untuk memberikan suatu nama
alternatif pada suatu tabel.
Dalam sintak :

PUBLIC membuat suatu synonym yang dapat diakses oleh semua user
synonym nama synonym yang akan dibuat
object mengidentifikasi obyek yang synonym tersebut dibuat
Membuat suatu Synonym

CREATE PUBLIC SYNONYM dept
FOR alice.departments;
Synonym Created.

Menghapus suatu Synonym

DROP PUBLIC synonym dept;
Synonym dropped.
Untuk informasi lebih lanjut, lihat ”DROP SYNONYM” pada Oracel SQL Reference.

Sumber :copyright@2004, oracle.

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s