Lapres BDL Diah 055

142
BAB I PENDAHULUAN 1.1 Latar Belakang Dahulu sebelum ada database, ketika manusia belum tahu sama sekali tentang database, manusia melakukan penyimpanan data masih dalam bentuk manual yakni data-data dimasukkan dalam buku besar, dan cara ini sangat kurang efektif dan efisien . Oleh karena itu untuk saat ini database mempermudah manusia dalam mengelola data baik dibidang pendidikan, pemerintahan, bisnis dan hal-hal lain yang membutuhkan wadah untuk mengelola suatu data . Dari situlah kita mengambil pembahasan tentang database dengan spesifikasi pembahasan tentang oracle dalam mata kuliah “Basis data lanjut” selama 8 kali pertemuan. Dari praktikum ini dijelaskan tentang spesifikasi oracle beserta dengan bagian dan fungsinya . Oleh karena itu, kita menyusun “laporan resmi” sebagai bahan untuk memperoleh sumber-sumber yang lebih banyak lagi guna memberikan sedikit tambahan informasi mengenai oracle. 1.2 Tujuan Praktikum 1

Transcript of Lapres BDL Diah 055

BAB I

PENDAHULUAN

1.1 Latar Belakang

Dahulu sebelum ada database, ketika manusia belum

tahu sama sekali tentang database, manusia melakukan

penyimpanan data masih dalam bentuk manual yakni

data-data dimasukkan dalam buku besar, dan cara ini

sangat kurang efektif dan efisien . Oleh karena itu

untuk saat ini database mempermudah manusia dalam

mengelola data baik dibidang pendidikan,

pemerintahan, bisnis dan hal-hal lain yang

membutuhkan wadah untuk mengelola suatu data . Dari

situlah kita mengambil pembahasan tentang database

dengan spesifikasi pembahasan tentang oracle dalam

mata kuliah “Basis data lanjut” selama 8 kali

pertemuan.

Dari praktikum ini dijelaskan tentang spesifikasi

oracle beserta dengan bagian dan fungsinya . Oleh

karena itu, kita menyusun “laporan resmi” sebagai

bahan untuk memperoleh sumber-sumber yang lebih

banyak lagi guna memberikan sedikit tambahan

informasi mengenai oracle.

1.2 Tujuan Praktikum

1

Tujuan dari praktikum mata kuliah "Basis Data

Lanjut" dengan spesifikasi pembahasan pada oracle

ini adalah sebagai berikut :

1. Memahami pengertian, kegunaan dari oracle.

2. Memberikan Penjabaran tentang oracle.

3. Memahami tentang kegunaan oracle.

4. Memahami Penjabaran tentang fungsi-fungsi oracle.

5. Memberikan Penjabaran tentang bagian-bagian

oracle.

1.3 Manfaat Praktikum

Manfaat yang dapat diperoleh dari praktikum

tersebut adalah dapat bertambahnya pengetahuan

tentang oracle, serta mampu mengembangkan sendiri

dengan bekal yang telah diberikan dan juga dapat

memberikan wawasan yang lebih luas dari praktikum

tersebut.

2

BAB II

TINJAUAN PUSTAKA

2.1 Pembuatan Tabel, Pendefinisian Constraint,

Export Dan Import.

2.1.1 Definisi oracle

3

Database Oracle adalah Database relasional yang

terdiri dari kumpulan data dalam suatu sistem

manajemen Database RDBMS. Perusahaan Software Oracle

memasarkan jenis Database ini untuk bermacam-macam

aplikasi yang bisa berjalan pada banyak jenis dan

merk perangkat keras komputer (platform).

Database Oracle ini pertama kali dikembangkan

oleh Larry Ellison, Bob Miner dan Ed Oates lewat

perusahaan konsultasinya bernama Software

Development Laboratories (SDL) pada tahun 1977. Pada

tahun 1983, perusahaan ini berubah nama menjadi

Oracle Corporation sampai sekarang. (wikipedia

indonesia)

Database Oracle terdiri dari beberapa komponen

berikut ini :

1. Software Oracle

2. Database, yang tersimpan dalam bentuk file pada

satu disk atau lebih.

Instance Oracle, terdiri dari background process

dan shared memory area Server process, yang meng-

handle user dan aplikasi yang telah terhubung

dengan Database, dan juga mengatur memori dan

temporary storage yang digunakan process

tersebut.

3. Oracle Net, yang memungkinkan komunikasi antara

client application dengan Database oracle pada

sebuah jaringan.

4

 

2.1.2 Objek-objek database

Jenis-jenis objek dalam database ORACLE yang biasa

dipakai dalam pembangunan aplikasi adalah :

1. Tabel

2. Index

3. View

4. Snapshot

5. Sequence

6. Package

7. Stored Procedure

8. Trigger

9. Database links

5

Sedangkan objek-objek yang berhubungan dengan fisik

database antara lain:

1. Instance

2. Database

3. Tablespace

4. Segment

5. Data file

2.1.3 Definisi constraint

Constraint merupakan suatu aturan atau bahasan

yang mendefinisikan nilai atau data yang dapat disimpan

di dalam database, baik melalui operasi INSERT, UPDATE,

maupun DELETE. Dalam SQL standar ANSI, constraint

dibedakan menjadi empat, yaitu:

1. Primary Key

Primary Key merupakan suatu aturan yang berguna

untuk memastikan bahwa setiap baris data di dalam suatu

tabel bersifat unik (berbeda antara baris yang satu

dengan yang lainnya. Aturan dalam pendefinisian primary

key:

a. Suatu tabel tidak dapat memiliki lebih dari satu

primary key

b. Kolom yang dijadikan primary key tidak boleh bertipe

BLOB

c. Nilai pada kolom yang didefinisikan sebagai primary

key harus bersifat unik dan tidak boleh NULL

4

2. Foreign Key

Foreign Key berguna untuk mendefinisikan kolom-kolom

pada suatu tabel yang nilainya mengacu ke tabel lain.

Aturan dalam pendefinisian foreign key:

a. Satu tabel dapat memiliki lebih dari satu foreign

key

b. Kolom yang diacu harus didefinisikan sebagai primary

key atau unik

c. Foreign tidak bersifat unik

3. Unique

Fungsi unik pada dasarnya sama seperti primary key,

yaitu untuk memastikan bahwa setiap baris data yang

terdapat dalam suatu tabel bersifat unik (tidak sama).

Perbedaanya, pada unique key diizinkan untuk memasukkan

nilai NULL.

4. Check

Berfungsi untuk membatasi nilai-nilai yang dapat

dimasukkan ke dalam suatu kolom di dalam tabel. Sebagai

contoh, kolom jenis_kelamin. MySQL tidak mendukung tipe

constraint check, sebagai gantinya dapat menggunakan

kolom yang bertipe enumerasi.

2.2 Sequence, Index Dan Synonim

2.2.1 Definisi sequence

Sequence adalah sebuah object dalam database yang

digunakan untuk mengenerate bilangan .

5

Fungsi Sequence :

1. Dapat secara otomatis mengenerate bilangan yang unik

2. Sharable object

3. Dapat digunakan untuk menentukan value atau nilai

dari primary key

4. Replace application code

5. Dapat meningkatkan kecepatan dalam mengkakses nilai

sequence secara signifikan ketika sequence tersebut

telah ada di memory (cached in memory)

SQL : CREATE SEQUENCE sequence [INCREMENT BY n] [START WITHn] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n |

NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}];

CYCLE atau NOCYCLE : digunakan untuk menentukan

apakah SEQUENCE akan tetap dilanjutkan ketika sequence

tersebut telah mencapai nilai maksimum atau minimum.

CACHE atau NOCACHE : digunakan untuk menentukan

seberapa banyak nilai yang akan dletakkan dan disimpan

oleh ORACLE SERVER di memory

2.2.2 Definisi index

Indeks di sql dibuat pada tabel yang ada untuk

mengambil baris cepat. Ketika ada ribuan catatan dalam

sebuah tabel, mengambil informasi akan memakan waktu

yang lama. Oleh karena itu indeks dibuat pada kolom

yang sering diakses, sehingga informasi dapat diambil

dengan cepat. Indeks dapat dibuat pada satu kolom atau

6

sekelompok kolom. Ketika indeks dibuat, terlebih dahulu

jenis data dan kemudian memberikan sebuah ROWID untuk

setiap baris.

Sintaks untuk membuat Indeks:

SQL : CREATE INDEX index_name ON table_name(column_name1, column_name2...);

Sintaks untuk membuat Indeks SQL yang unik:

SQL : CREATE UNIQUE INDEX index_name ON table_name

(column_name1,column_name2...);

INDEX_NAME adalah nama INDEX.

Table_name adalah nama dari tabel yang kolom diindeks

milik. column_name1, column_name2 .. adalah daftar kolom

yang membentuk INDEX.

Di Oracle ada dua jenis indeks SQL yaitu, implisit dan

eksplisit.

1. Implisit Indeks

Mereka tercipta ketika kolom adalah explicity

didefinisikan dengan PRIMARY KEY, UNIQUE Kendala

KUNCI.

2. Eksplisit Indeks:

Mereka dibuat dengan menggunakan "membuat indeks .."

sintaks.

CATATAN:

a. Meskipun indeks sql diciptakan untuk mengakses baris

dalam tabel dengan cepat, mereka memperlambat

7

operasi DML seperti INSERT, UPDATE, DELETE di atas

meja, karena indeks dan tabel keduanya diperbarui

bersama ketika operasi DML dilakukan. Jadi

menggunakan indeks hanya pada kolom yang digunakan

untuk mencari meja sering.

b. Yang tidak diperlukan untuk membuat indeks di atas

meja yang memiliki sedikit data.

c. Dalam database oracle Anda dapat membuat hingga enam

belas (16) kolom dalam sebuah INDEKS.

2.2.3 Definisi synonym

Synonym digunakan untuk mempermudah kita dalam

mengakses sebuah object dengan cara memanggil sebuah

tabel dengan nama yang berbeda. dan dengan Synonim kita

dapat :

1. Membuat referensi tabel dengan mudah yang dimana

referensi tersebut dimiliki oleh user lain

2. Memperpendek nama dari sebuah Object

2.2.3.1 Membuat synonym

Syntak : CREATE [PUBLIC] SYNONYM synonym FOR object;

contoh :

SQL : CREATE SYNONYM F_dept FOR FERN.DEPARTMENTS;

Query diatas digunakan untuk membuat sebuah synonym

dengan nama F_Dept yang merupakan alias atau kependekan

8

nama dari tabel DEPARTMENTS yang dimiliki oleh

FERN(user). Sehingga jika kita ingin mengakses tabel

departments kepemilikan FERN, kita hanya tinggal

memanggil sinonimnya saja

contoh :

SQL : SELECT * FROM F_dept

selain itu kita juga dapat membuat sinonim yang

dapat diakses oleh semua user dengan menambahkan PUBLIC

contoh:

SQL : CREATE PUBLIC SYNONYM F_dept FOR FERN.DEPARTMENTS;

2.2.3.2 Menghapus synonym

Syntak : DROP SYNONYM nama_synonym

2.3 View

View merupakan hasil perintah SELECT yang berupa

tabel virtual yang dapat membungkus query tertentu.

View berfungsi untuk mempermudah dalam pengambilan

query tertentu. Dengan view kita dapat menerapkan

pembatasan pada pengaksesan guna pengamanan keamanan

data seperti di bawah ini:

9

1. Kolom/Field pada tabel tertentu.

2. Baris/Record pada tabel tertentu.

3. Field dan Record pada tabel tertentu.

4. Turunan dari view lain.

5. Record menggunakan operasi join.

6. Data statistik dari tabel.

2.3.1 Cara membuat view

Untuk membuat view kita dapat menggunakan perintah

view dengan format seperti dibawah ini :Syntak : CREATE VIEW view_name[(column_list)] [WITH

ENCRYPTION] AS select_statement [WITH CHECK

OPTION]

Keterangan : 

View_name adalah nama view yang akan dibuat.

Column_list mendefinisikan field yang akan digunakan

dalam view. Column_list harus memiliki jumlah field yang

sama dengan yang didefinisikan pada select_statement.

Jika column_list tidak ada maka view dibuat berdasarkan

field yang didefinisikan pada select_statement. With

Encryption adalah opsi untuk menambahkan enkripsi pada

view. AS berisi perintah yang digunakan untuk membuat

view.

Contoh : CREATE VIEW V_ SISWA AS SELECT * FROM SISWA

2.3.2 Cara menampikan view

Untuk menampilkan atau memanggil view yang sudah

kita buat sebelumnya, kita dapat menggunakan perintah

10

select dengan format seperti ini : SELECT * FROM

V_PELANGGAN

2.3.3 Cara memrubah view

Untuk merubah view kita dapat menggunakan perintah

alter view dengan format seperti dibawah ini :ALTER VIEW view_name[(column_list)] [WITH ENCRYPTION] AS

select_statement [WITH CHECK OPTION]

Contoh :

SQL : ALTER VIEW V_SISWA AS SELECT * FROM SISWA WHERE ALAMAT ='JAKARTA'

2.3.4 Cara mengahapus view

Untuk menghapus view kita dapat menggunakan

perintah drop view dengan format seperti dibawah ini :

Syntak : DROP VIEW view_name

Contoh :

SQL : DROP VIEW V_PELANGGAN

2.4 Query Select Dan Dml (Insert, Update, Delete)

2.4.1 Pengenalan isql*plus

iSQL*PLUS adalah SQL*PLUS berbasis web yang

disediakan oleh Oracle, didalamnya kita bisa menampilkan

struktur tabel, mengedit SQL Statement, menjalankan

perintah SQL, menyimpan SQL Statement ke dalam file

script, dan memanggil file script yang sudah disimpan.

11

2.4.2 Logging in isql*plus

Memanggil iSQL*PLUS pada ORACLE 10g, ketahui alamat

pemanggilan ISQL*PLUS dengan cara membuka file : “ C:\oracle\product\10.2.0\db_1\install\readme.txt

Kemudian perhatikan alamat yang berada di bawah : “

The iSQL*Plus URL is : “. Ketik ulang alamat tersebut pada

WEB BROWSER sehingga muncul halama awal iSQL*Plus.

Apabila ORACLE 10g diinstall lengkap dengan SAMPLE

SCHEMA, isikan dengan . Username : scott, Password :

password_yang_ditentukan_ oleh_praktikum, Connect

Identifier : orcl

2.4.3 Menampilkan struktur tabel

Untuk menampilkan struktur table digunakan perintah

DESCRIBE.

Syntaknya : DESC namatabel atau DESCRIBE namatabel

2.4.4 Berinteraksi dengan file script

Apa yang ditulis dalam editing window pada iSQL*PLUS

dapat disimpan sebagai file script. Tombol untuk

melakukan penyimpanan suatu query kedalam file .sql

pada iSQL*PLUS adalah Tombol “Save Script” – Ditunjukkan

dengan angka 1 pada gambar halaman Workspace iSQL*PLUS.

Sedangkan tombol untuk melakukan pemanggilan isi

file .sql adalah tombol “Load Script” – Ditunjukkan dengan

angka 2 pada gambar halaman workspace iSQL*PLUS.

2.4.5 Dasar statement select

12

Syntak (cara penulisan) dari statement SELECT : SELECT [DISTINCT]{*, column [alias], … } FROM table;

SELECT digunakan untuk memilih kolom yang ingin

ditampilkan.

FROM digunakan untuk memilih table asal.

Aturan Penulisan Statement SQL

1. SQL Statement tidak case sensitive artinya tidak

dibedakan antara penulisan huruf kecil dan huruf

besar.

2. SQL Statement dapat terdiri dari lebih dari satu

baris.

3. Keyword tidak bisa disingkat atau dipisah di baris

yang berbeda.

4. Klausa biasanya ditempatkan pada baris yang berbeda.

5. Inden digunakan untuk memudahkan pembacaan

2.4.6 Memilih semua kolom

Akan terdapat beberapa baris data yang kolom

“COMM” tidak berisi data apapun. Hal tersebut

dikatakan NULL. Nilai NULL (kosong) pada suatu kolom

bisa berarti ada data yang tidak diisi, atau tidak

diketahui nilainya. Nilai NULL tidak sama dengan NOL

(zero). Nilai NULL juga tidak sama dengan spasi kosong.

2.4.7 Ekspresi aritmatik 

Suatu ekspresi yang melibatkan tipe data bilangan

(NUMBER) dan tanggal (DATE) menggunakan ekspresi

13

artimatika.

Contoh :

SQL : SELECT last_name, salary, salary+300 FROM employee

2.4.8 Operator presedence

Perkalian dan pembagian memiliki prioritas

(precedence) lebih tinggi dari pada penambahan dan

pengurangan.

Contoh :

SQL : SELECT last_name, salary, 12*salary+300 FROM employee

2.4.9 Penggunaan tanda kurung

Penggunaan tanda kurung memiliki prioritas paling

tinggi dibanding presedensi operator yang lain.

Contoh :

SQL : SELECT last_name, salary, 12*(salary+300) FROMemployee

2.4.10 Menggunakan kolom alias

Judul (secara default) pada tiap kolom yang

ditampilkan (heading) selalu sama dengan nama kolomnya

dan ditulis dengan hutuf besar. Penggantian judul

kolom, sehingga tidak sama dengan judul default disebut

kolom alias.

Contoh :

SQL : SELECT last_name AS “Name” FROM employee; Atau

SQL : SELECT last name “Name” FROM employee;

14

2.4.11 Operator penyambungan

Nilai dari dua kolom atau lebih dapat digabungkan

dengan menggunakan operator penyambungan ( || ).

Contoh :

SQL : SELECT last_name || job_id AS “Employees” FROMemploye

2.4.12 Literal character strings

Literal dapat berupa karakter, ekspresi atau

bilangan yang terdapat pada klausa SELECT. Literal berupa

tanggal (DATE) dan karakter harus diapit dengan tanda

petik tunggal.

Contoh :

SQL : SELECT last_name || ‘working as’ || job_id AS“Employee Details” FROM employee;

2.4.13 Baris yang Duplikat dan cara menghindari

munculnya baris duplikat

Perintah query akan memberikan hasil termasuk

suatu nilai yang bisa muncul lebih dari satu kali.

Untuk menghindari hal tersebut maka gunakan DISTINC

setelah kata SELECT.

Contoh :

SQL : SELECT DISTINCT department_id FROM employee;

2.5 Advanced Query Pemilihan Dan Pengurutan Data

Fungsi pemilihan dan pengurutan data digunakan

untuk menampilkan data dengan perintah select dan

15

pengurutan data yang digunakan dengan perintah sort.

2.5.1 Sintaks dasar

Perintah SELECT pada Oracle SQL minimal harus

terdiri dari SELECT dan FROM.

Syntak : SELECT [DISTINCT] {*, column [alias], …} FROM table;

Keterangan

SELECT : Menampilkan paling tidak satu kolom,

DISTINCT : Menghilangkan nilai duplikat, * :

Menampilkan semua kolom, column: Menampilkan kolom

tertentu, alias: Memberikan judul lain kolom

FROM table: Menunjukkan nama tabel asal

Penulisan Perintah SQL

1. Perintah-perintah SQL dapat ditulis dalam satu baris

atau lebih, namun untuk kemudahan sebaiknya setiap

klausa ditulis dalam baris yang berbeda

2. Perintah-perintah SQL tidak case-sensitive

3. Gunakan perintah ED untuk mengedit perintah-perintah

SQL (SQL> ED;)

2.5.2 Menampilkan seluruh kolom dan baris

Menampilkan seluruh kolom dari suatu tabel dapat

dilakukan dengan dua cara, yaitu:

1. Menyebutkan seluruh nama kolom

SQL : SELECT id, name, region_id FROM department;

16

2. Menggunakan tanda bintang (*)

SQL : SELECT * FROM department;

2.5.3 Menampilkan kolom tertentu

Menampilkan kolom tertentu dapat dilakukan dengan

cara menyebutkan nama kolom yang ingin ditampilkan

datanya. Contoh berikut ini menunjukkan bagaimana cara

menampilkan kolom tertentu dari tabel Department.

SQL : SELECT name FROM department;

2.5.4 Operasi aritmatika

Perhitungan dapat dilakukan pada perintah SQL

dengan menggunakan ekspresi aritmatika, yang dapat

mengandung nama-nama kolom, nilai-nilai numerik yang

teta, dan operator-operator aritmatika.

Tabel 2.1 Arti tanda aritmatika

Tanda Aritmatika Arti Tanda Aritmatika

+ Penjumlahan

- Pengurangan

* Perkalian

/ Pembagian

1. Operator perkalian dan pembagian memiliki prioritas

di atas penjumlahan dan pengurangan

2. Operator dengan prioritas yang sama di evaluasi dari

kiri ke kanan

17

3. Tanda kurung dapat digunakan untuk memaksa prioritas

evaluasi dan memperjelas perintah

Contoh:

a. Menampilkan nama belakang dan menghitung gaji

tahunan karyawan

SQL : SELECT last_name, salary*12 FROM employee;

b. Menampilkan nama belakang, gaji bulanan, dan gaji

tahunan karyawan. Gaji tahunan merupakan gaji

bulanan di kali dengan 12, ditambah dengan bonus

1.000.000

SQL : SELECT last_name, salary, salary*12+1000000 FROM salary;

c. Menampilkan nama belakang, gaji bulanan, dan gaji

tahunan karyawan. Gaji tahunan merupakan gaji

bulanan ditambah dengan bonus 1.000.000, di kali

dengan 12

SQL : SELECT last_name, salary, 12*(salary+1000000)FROM employee;

2.5.5 Alias kolom

SQL*Plus menggunakan nama kolom sebagai judul

dalam menampilkan hasil query. Padahal terkadang nama

kolom sulit di mengerti atau bahkan tidak memiliki

arti. Kita dapat mengubah tampilan judul kolom

menggunakan alias (nama lain).

Contoh

18

Menampilkan nama belakang, gaji bulanan, dan gaji

tahunan karyawan. Gaji tahunan merupakan gaji bulanan

di tambah dengan bonus 1.000.000, di kali dengan 12 dan

di tampilkan dengan judul GAJI_TAHUNAN.

SQL : SELECT last_name, salary, 12*(salary+1000000) AS GAJI_TAHUNAN FROM employee;

Kita boleh menggunakan AS sebelum alias kolom

untuk memenuhi standar ANSI SQL 92.

2.5.5.1 Alias kolom dengan tanda petik dua

Jika alias kolom mengandung spasi, karakter khusus

seperti # atau $, atau case-sensitive (membedakan huruf

besar dan kecil), gunakan tanda petik dua pada alias

kolom tersebut.

Contoh : Memodifikasi query sebelumnya, gaji tahunan

ditampilkan dengan judul Gaji Tahunan.

SQL : SELECT last_name, salary, 12*(salary+1000000) AS“Gaji Tahunan” FROM employee;

2.5.6 Operator penggabungan

Kita dapat menggabungkan satu kolom dengan

lainnya, ekspresi aritmatika, atau nilai tetap untuk

menciptakan ekspresi karakter menggunakan operator

penggabungan (||). Kolom-kolom pada setiap sisi dari

operator di kombinasikan untuk menghasilkan satu output

kolom tunggal.

19

Contoh: Menampilkan nama lengkap karyawan dengan judul

Karyawan.

SQL : SELECT first_name||last_name AS “Karyawan” FROMemployee;

Menampilkan nama lengkap dan jabatan karyawan dengan

judul Karyawan. Dalam contoh ini antara nama depan dan

nama belakang di pisahkan spasi, dan antara nama

lengkap dan jabatan di pisahkan koma.

SQL : SELECT first_name||’ ‘||last_name||’, ‘||title AS“Karyawan” FROM employee;

2.5.7 Manajemen nilai null

Null adalah nilai yang tidak tersedia, tidak

diberikan, tidak diketahui, atau tidak dapat digunakan.

Null tidak sama dengan nol atau spasi. Nol adalah angka,

dan spasi adalah karakter. Kolom dapat mengandung nilai

null, kecuali kolom yang telah didefinisikan sebagai NOT

NULL atau PRIMARY KEY ketika tabel diciptakan.

2.5.7.1 Nilai null dalam ekspresi aritmatika

Jika nilai kolom dalam sebuah ekspresi adalah

null, maka hasilnya juga null. Sebagai contoh, jika kita

berusaha melakukan pembagian terhadap nol, maka akan

terjadi kesalahan. Namun jika kita membagi terhadap

null, maka hasilnya adalah null.

Contoh : Menampilkan nama belakang, gaji, jabatan, dan

hasil perhitungan komisi.

20

SQL : SELECT last_name, title, salary, salary*commission_ pct/100 KOMISI FROM employee;

2.5.8 Membatasi hasil query

Kita dapat membatasi hasil query dengan

menggunakan klausa WHERE, yang mengandung kondisi yang

kita inginkan, dan secara langsung mengikuti klausa

FROM.

Syntak : SELECT [DISTINCT] {*, column [alias], . . .} FROM

table[WHERE condition(s)];

WHERE: menentukan kondisi yang akan digunakan untuk

membatasi hasil query condition(s): terdiri dari nama-nama

kolom, ekspresi, konstanta, dan operator-operator

pembanding.

2.5.9 Operator-operator pembanding

Operator-operator pembanding terbagi ke dalam dua

kategori: logical dan SQL, dan digunakan dalam klausa

WHERE untuk membandingkan suatu ekspresi dengan

lainnya menggunakan format berikut:. . . WHERE expr operator value

Contoh: Menampilkan data karyawan yang bekerja pada

departemen berkode 42.

SQL : SELECT last_name FROM employee WHERE dept_id = 42;

21

2.5.9.1 Operator-operator pembanding logical

Tabel 2.2 Operator pembanding logical

Operator

PembandingKeterangan

= Sama dengan> Lebih besar dari>= Lebih besar atau sama dengan< Lebih kecil dari<= Lebih kecil atau sama dengan

2.5.9.2 Operator-operator SQL

Tabel 2.3 Operator sql

Operator SQL Keterangan

BETWEEN . . .

AND . . .diantara dua nilai

IN (list)sesuai dengan salah satu dari

kumpulan nilaiLIKE sesuai dengan susunan karakter

IS NULL adalah bernilai null

2.5.9.3 Operator-operator logical

Tabel 2.4 Operator logical

22

Operator

LogicalKeterangan

AND . . .jika kedua komponen bernilai TRUE,

hasilnya TRUE

ORjika salah satu komponen bernilai TRUE,

hasilnya TRUENOT mengembalikan nilai sebaliknya

2.5.9.4 Negasi operator-operator logical

Tabel 2.5 Negasi operator logical

Negasi

Operator

Logical

Keterangan

!= tidak sama dengan (VAX, UNIX, PC)^= tidak sama dengan (IBM)

<>tidak sama dengan (seluruh sistem

operasi)NOT colname = tidak sama denganNOT colname > tidak lebih besar dari

2.5.9.5 Negasi Operator-operator sql

Tabel 2.6 Negasi operator sql

23

Negasi Operator

SQLKeterangan

NOT BETWEEN . .

. AND . . .tidak diantara dua nilai

NOT IN (list)tidak dalam kumpulan nilai yang

ditentukan

NOT LIKEtidak sesuai dengan string

pembandingNOT IS NULL bukan merupakan nilai null

Jika kita ingin membandingkan nilai yang diketahui

dengan nilai null, dapat menggunakan operator

pembanding IS NULL atau IS NOT NULL. Jika kita

membandingkan nilai null menggunakan operator-operator

lain, hasilkan akan selalu FALSE.

Sebagai contoh, kondisi commission_pct <> NULL akan

selalu FALSE karena nilai null tidak boleh sama atau

tidak sama dengan nilai lain, bahkan dengan nilai null

lainnya.

2.5.9.6 Kumpulan karakter dan tanggal

Kumpulan karakter dan tanggal dalam klausa WHERE

harus ditutup dengan tanda petik tunggal (’ ‘).

Contoh : Menampilkan data karyawan yang memiliki nama

belakang “Ngao”.

SQL : SELECT last_name, title FROM employee WHERE last_name = ‘NGAO’;

24

Seluruh kumpulan karakter adalah case sensitive,

sehingga query diatas tidak menemukan hasil. Oleh

karena itu, query diatas harus diubah sedemikian

sehingga sesuai dengan data yang terdapat dalam tabel

Karyawan.

SQL : SELECT last_name, title FROM employee WHERE last_name = ‘Ngao’;

2.5.9.7 Operator between

Kita dapat menampilkan data berdasarkan jangkauan

nilai tertentu menggunakan operator BETWEEN. Jangkauan

yang kita tentukan adalah jangkauan rendah dan tinggi.

Contoh : Menampilkan data karyawan yang mulai bekerja

antara tanggal 9 Mei 1991 dan 17 Juni 1991.

SQL : SELECT last_name, hire_date FROM employee WHERE

hire_date BETWEEN ‘09-MAY-91′ AND ‘17-JUN-91′;

2.5.9.8 Operator in

Operator IN dapat digunakan untuk mengecek suatu

nilai dalam daftar tertentu.

Contoh : Menampilkan data departemen yang memiliki kode

1 dan 3.

SQL : SELECT id, name FROM department WHERE id IN(1,3);

Penggunaan karakter atau tanggal dalam daftar harus

ditutup dengan tanda petik tunggal (’ ‘).

2.5.9.9 Operator like

25

Kita mungkin tidak selalu mengetahui nilai

tertentu secara pasti dalam proses pencarian. Kita

dapat menampilkan baris data yang sesuai dengan susunan

karakter tertentu menggunakan operator LIKE. Dua jenis

simbol dapat digunakan untuk membangun string

pencarian.

Tabel 2.7 Operator logika

Negasi Operator

SQLKeterangan

%Menunjukkan beberapa urutan nilai

karakter 0 atau lebih

-Menunjukkan beberapa karakter

tunggal

Contoh: Menampilkan data karyawan yang memiliki nama

berawalan huruf “M”.

SQL : SELECT last_name FROM employee WHERE last_name LIKE‘M%’;Menampilkan data karyawan yang memiliki nama

tidak mengandung huruf “a”.SELECT last_name FROM

employee WHERE last_name NOT LIKE ‘%a%’;

Operator LIKE dapat digunakan sebagai jalan pintas bagi

beberapa perbandingan menggunakan BETWEEN.

Contoh : Menampilkan data karyawan yang mulai bekerja

pada tahun 1991.

SQL : SELECT last_name, hire_date FROM employee WHERE hire_date LIKE ‘%91′;

26

2.5.10 Menggabungkan karakter wildcard

Simbol % dan _ dapat digunakan dalam beberapa

kombinasi dengan karakter biasa.

Contoh : Menampilkan data karyawan yang memiliki nama

berawalan ‘_a’.

SQL : SELECT last_name FROM employee WHERE last_name LIKE ‘_a%’;

2.5.11 Opsi escape

Ketika kita memerlukan hasil yang benar-benar

tepat bagi karakter-karakter aktual “%” dan “_” , kita

dapat menggunakan opsi ESCAPE. Opsi ini menentukan apa

karakter ESCAPE-nya.

Contoh: Menampilkan data departemen dengan nama

mengandung ‘X_Y’.

SQL : SELECT name FROM department WHERE name LIKE ‘%X\_Y%’ESCAPE ‘\’;

2.5.12 Operator is null

Operator IS NULL mengetes nilai yang null. Nilai

null berarti nilai tersebut tidak tersedia, tidak

diberikan, tidak diketahui, atau tidak dapat digunakan.

Oleh karena itu, kita tidak dapat menggunakan “=”

karena nilai null tidak dapat sama atau tidak sama

dengan suatu nilai.

Contoh : Menampilkan data karyawan yang tidak memiliki

atasan.

27

SQL : SELECT id, last_name, manager_id FROM employee WHEREmanager_id = NULL;

SQL : SELECT id, last_name, manager_id FROM employee WHEREmanager_id = ‘ ‘;

Menampilkan data karyawan yang memiliki prosentase

komisi.

SQL : SELECT last_name, title, commission_pct FROM employeeWHERE commission_pct IS NOT NULL

2.5.13 Menampilkan data berdasarkan beberapa kondisi

Kita mungkin perlu menentukan kriteria kompleks

dengan mengkombinasikan beberapa kondisi pencarian.

Operator AND dan OR dapat digunakan. Operator AND

menghasilkan nilai TRUE jika kedua kondisi bernilai

TRUE, sedangkan operator OR menghasilkan nilai TRUE

jika salah satu kondisi bernilai TRUE. Dalam dua contoh

berikut , kondisinya sama, namun operator yang

digunakan berbeda. Perhatikan bagaimana hasilnya

berubah.

Contoh: Menampilkan data karyawan yang memiliki jabatan

‘Stock Clerk’ dan bekerja pada departemen 41.

SQL : SELECT last_name, salary, dept_id, title FROM

employee WHERE dept_id = 41 AND title = ‘Stock

Clerk’;

Contoh: Menampilkan data karyawan yang memiliki jabatan

‘Stock Clerk’ atau yang bekerja pada departemen

41.

28

SQL : SELECT last_name, salary, dept_id, title FROM employee WHERE dept_id = 41 OR title = ‘Stock Clerk’;

2.5.14 Aturan evaluasi operator

Kita mungkin mengkombinasikan operator-operator

AND dan OR pada ekspresi logika yang sama. Hasil dari

seluruh kondisi dikombinasikan dalam urutan yang

ditentukan oleh evaluasi dari operator-operator yang

terhubung. Operator yang memiliki urutan evaluasi yang

sama digunakan selanjutnya satu sama lain, dicek dari

kiri ke kanan.

a. Seluruh operator pembanding (=,<>,>,>=,<,<=,IN,

LIKE, IS NULL, BETWEEN)

b. AND

c. OR

Catatan:

Ketika menggunakan ekspresi negasi, operator-

operator pembanding tetap dievaluasi pertama.Anda dapat

mengabaikan evaluasi operator dengan menggunakan tanda

kurung, Oracle akan mengevaluasi terlebih dahulu

ekspresi-ekspresi dalam kurung.

Jika Anda ragu operasi mana diantara dua operasi

yang dicek terlebih dahulu saat ekspresi dievaluasi,

gunakan tanda kurung untuk memperjelas.

2.6 Advanced Query : Fungsi Baris Tunggal dan Fungsi

29

Multi Baris

Secara garis besar Oracle database built-in function

dibagi dalam dua bagian, yaitu: Single-row function dan

Group Function.

2.6.1 Single-row function

Memproses satu baris data pada satu saat dan

memberikan satu output untuk setiap satu baris data

masukan. Contoh: single-row functions adalah UPPER yang

berfungsi mengubah data input menjadi huruf capital

Berdasarkan tipe data yang diproses, single-row

function dibagi menjadi lima jenis, yaitu:

1. Character Function digunakan untuk memproses data

karakter.

Character function menerima input berupa karakter

yang diambil dari kolom pada tabel atau berupa

ekspresi. Berikut ini beberapa contoh character

function:

a. ASCII ( ) dan CHR ( )

Digunakan untuk menampilkan nilai ASCII dari

karakter X dan CHR(x) berfungsi sebaliknya untuk

mengembalikan karakter dari suatu nilai ASCII.

CONTOH :

SQL : select ascii('a'), ascii('A'), ascii ('z'), ascii('t'),ascii('i') from dual;

Hasilnya seperti ini :

30

ASCII('A') ASCII('A') ASCII('Z') ASCII('T')

ASCII('I')

---------- ---------- ---------- ----------

----------

97 65 122 116

105

Dan seperti ini :

SQL : select chr(100), chr(92), chr(97), chr(65),

chr(122) from dual;

Hasilnya adalah :

C C C C C

- - - - -

d \ a A z

b. INITCAP( ), LOWER ( ) dan UPPER( )

Ketiga fungsi ini biasa disebut dengan case-

manipulation. INITCAP(x) untuk mengubah karakter awal

suatu kata dari string x menjadi huruf kapital.

LOWER(x) untuk mengubah string (x) menjadi huruf

kecil sedangkan UPPER(x) digunakan untuk mengubah

string (x) menjadi huruf kapital.

Contoh :

SQL : select 'belajar oracle' as "string", INITCAP

('belajar oracle') as "initcap", LOWER ('belajar

oracle') as "lower", UPPER ('belajar oracle') as

"UPPER" from dual;

31

Lalu hasilnya seperti ini:

string initcap lower UPPER

-------------- -------------- --------------

--------------

belajar oracle Belajar Oracle belajar oracle BELAJAR

ORACLE

c. SUBSTR( )

SUBSTR(x, y [,z] ) digunakan untuk menampilkan

substring mulai dari posisi y sebanyak z karakter

dari string x. Jika nilai z tidak ditentukan maka

akan ditampilkan mulai dari posisi y sampai karakter

terakhir. Jika nilai y negatif (-) maka posisi

karakter diambil dari sisi kanan atau belakang

string.

Contoh :

SQL : select 'ABCDEFGHIJKLMN' string, substr

('ABCDEFGHIJKLMN',3,4), substr ('ABCDEFGHIJK

LMN',-6,3) from dual;

Hasilnya:

STRING SUBS SUB

-------------- ---- ---

ABCDEFGHIJKLMN CDEF IJK

2. Numeric Function digunakan untuk memproses data

numerik.

a. FLOOR ( )

32

Floor (x) digunakan untuk pembulatan ke bawah dari

nilai desimal x

Misal:

SQL: select floor(5.1), floor(5.9), floor(-5.9) from

dual;

Hasilnya:

FLOOR(5.1) FLOOR(5.9) FLOOR(-5.9)

---------- ---------- -----------

5 5 -6

b. MOD ( )

SQL : select mod(7,2) from dual;

Hasilnya:

MOD(7,2)

----------

1

3. Date Function digunakan untuk memproses data

tanggal.

a. ADD_MONTHS

ADD_MONTHS (x,y) mengembalikan hasil penjumlahan

tanggal x dengan y bulan. Jika y bernilai negatif

maka terjadi pengurangan tanggal x dengan y bulan.

Sebagai contoh, tanggal ’02-Nov-09’ ditambah 6 bulan

maka hasilnya adalah tanggal ’02- May-10’. Seperti

di bawah ini:

SQL : select add_months('10-Nov-2012',6) from dual;

33

Hasilnya muncul seperti di bawah ini :

ADD_MONTH

---------

10-MAY-13

4. Convension Function digunakan untuk melakukan

konversi data.

Konversi tipe data bisa dilakukan secara implisit

maupun eksplisit. Konversi implisit dilakukan secara

otomatis oleh Oracle untuk data-data dengan format

default. Sedangkan konveri secara eksplisit dilakukan

menggunakan fungsi konversi yang sudah disediakan oleh

Oracle.

a. Konversi Tanggal ke Karakter dengan TO_CHAR

Contoh:

SQL : select to_char(sysdate,'day DD, month yyyy') from dual;

Hasilnya adalah :

TO_CHAR(SYSDATE,'DAYDD,MONTH

----------------------------

friday 07, december 2012

5. General Function merupakan function yang bisa

digunakan untuk memproses semua tipe data.

General functional merupakan function yang bisa

dioperasikan pada semua tipe data. Ada empat jenis

general function yaitu NVL, NVL2, NULLIF, dan COALESCE.

34

Walaupun bisa dioperasikan pada semua tipe data tetapi

argumen-argumen dalam satu function harus mempunyai

tipe data yang sama.

a. NULLIF

NULLIF(x,y) digunakan untuk membandingkan nilai x

dan y. Jika nilai x sama dengan nilai y maka akan

menghasilkan nilai null, tetapi jika x dan y tidak

sama akan ditampilkan x.

contoh :

SQL : select nullif(7,8), nullif(7,7), nullif('budi','BUDI'), nullif('TATI', 'TATI') from dual;

Dan hasilnya adalah:

NULLIF(7,8) NULLIF(7,7) NULL NULL

----------- ----------- ---- ----

7 budi 

2.6.2 Fungsi multi Row SQL ;

Mereka beroperasi pada satu set baris dan

mengembalikan satu hasil atau satu hasil per

kelompok. Kami akan mencakup kelompok dalam Bab 3. Ini

adalah fitur kuat karena memungkinkan Anda untuk

menghasilkan subtotal, jumlah dan rata-rata dalam SQL

yang mengambil data. Untuk saat ini, kita akan

menerapkan fungsi untuk semua baris kita kembali. Dalam

bab berikutnya, kita akan memecah baris kembali kami ke

dalam kelompok dan menerapkan fungsi untuk masing-

masing kelompok secara mandiri.’

35

1. Menghitung

Fungsi count menghitung jumlah baris itu proses dan

kembali nomor itu. Anda dapat menggunakan klausa yang

berbeda untuk menghitung hanya baris yang berbeda.

SQL : SELECT COUNT (*), COUNT (1), COUNT (store_key), COUNT (DISTINCT store_key) DARI Penjualan;

SQL : COUNT (*) COUNT (1) COUNT (STORE_KEY) COUNT

Dan Hasilnya : (DISTINCTSTORE_KEY)

--------------------------------------------

------ ----------

 100 100 100 10

Pertama, kita menghitung jumlah baris menggunakan

count (*). Pada contoh kedua, kami melakukan hal yang

sama. Beberapa DBAs percaya bahwa count (1) lebih

efisien daripada count (*), tapi ini adalah sebuah

mitos. Dalam contoh ketiga, kita menghitung jumlah

store_keys. Jika berturut-turut diproses dengan store_key

NULL, maka akan dihitung dalam contoh pertama dan kedua

tapi tidak dalam tiga atau empat. Dalam contoh empat,

kita menghitung store_keys berbeda. Jadi ada 100 baris

dalam tabel penjualan, setiap baris memiliki store_key

(tidak ada store_keys NULL) dan ada sepuluh store_keys

berbeda dalam tabel (tercantum di bawah).

SQL : SELECT DISTINCT store_key FROM penjualan;

Maka hasilnya ;

Store

----

36

S101

S102

S103

S104

S105

S106

S107

S108

S109

S110

sum (c1)

Fungsi sum menambah nilai c1 kolom untuk semua baris

diproses dan mengembalikan total. NULLs dilewati. Sum

juga dapat menggunakan format yang berbeda.

SQL : SELECT SUM (kuantitas) DARI penjualan;

Maka Hasilnya

SUM (JUMLAH)

-------------

110.550 

2.6.3 Group Function :

Memproses multi-row data pada saat bersamaan dan

memberikan satu output.

2.7 Advanced Query : Menampilkan Data Dari Banyak

Tabel

Ketika kita memerlukan data dari beberapa tabel

dalam database, dapat menggunakan kondisi join. Data

37

dari satu tabel dapat digabungkan dengan data dari

tabel lain berdasarkan nilai-nilai yang terdapat pada

kolom-kolom yang berhubungan, yang disebut kolom-kolom

primary key dan foreign key.

2.7.1 Pengertian join

Untuk mendapatkan data dari dua atau lebih

table, maka table-tabel tersebut harus dihubungkan

terlebih dahulu, atau dengan kata lain harus dilakukan

JOIN terlebih dahulu. Bentuk umum JOIN ;SELECT table.coulumn, table2.column FROM tabel1, table2

WHERE table1.column = table2.column;

Tipe – tipe Join

1. Equijoin

2. Non-equijoin

3. Outer Join

4. Self Join

2.7.2 Cartesian product

Cartesian Product adalah hasil dari join yang

tidak valid, sehingga menyebabkan ditampilkannya

seluruh kombinasi data dari tabel-tabel yang di-join-

kan. Seluruh baris dari tabel pertama di-join-kan

dengan seluruh baris pada tabel kedua.

Cartesian Product dibentuk pada saat :

1. Kondisi join diabaikan

2. Kondisi join tidak valid

38

3. Semua baris dalam table pertama dijoinkan ke semua

baris dalam table kedua

Contoh :SELECT name, last_name

FROM department, employee;

300 rows selected.

2.7.3 Equijoin

Kita dapat menampilkan data-data dari kedua tabel

dengan men-join-kan foreign key dari satu tabel dengan

primary key dari tabel lainnya.SELECT table.column, table.column…

FROM table1, table2

WHERE table1.column1 = table2.column2;

Contoh : Menampilkan data karyawan dan departemen

tempat karyawan tersebut bekerja.

SQL : SELECT employee.last_name, employee_dept_id,

department. Name FROM employee, department WHERE

employee.dept_id = department.id;

Jika terdapat nama kolom yang sama pada tabel-

tabel yang di-join-kan, kita harus menentukan dari

table mana kolom tersebut berasal dengan menyebutkan

nama tabelnya, namun sebaliknya jika tidak terdapat

nama kolom yang sama pada tabel-tabel yang di-join-kan,

kita tidak harus menentukan dari table mana kolom

39

tersebut berasal.

2.7.4 Menambah kondisi pencarian dengan operator

and

Kita dapat menambahkan kondisi pencarian dalam

join dengan menggunakan operator AND atau OR sesuai

kriteria yang diinginkan.

Contoh : Menampilkan data karyawan yang memiliki nama

akhir Velasquez dan departemen tempat karyawan

tersebut bekerja.

SQL : SELECT employee.last_name, employee.dept_id,

department.name

FROM employee, department WHERE employee. dept_id =

department.id AND INITCAP(employee.last_name) =

‘Velasquez’;

2.7.5 Penggunaan tabel alias

Menuliskan kolom dengan nama tabel dapat memakan

waktu, terlebih jika nama tabel cukup panjang. Kita

dapat mengatasi hal ini dengan menggunakan alias tabel

(memberikan nama lain kepada tabel dengan nama yang

lebih pendek). Contoh : Menampilkan data karyawan dan departemen

tempat karyawan tersebut bekerja.

SQL : SELECT e.last_name “Employee Name”, d.id “Dept ID”,d.name “Department Name” FROM employee e, department d

40

WHERE e.dept_id = d.id;

Perhatikan query tersebut diatas, yang dimaksud alias

tabel adalah e dan d yang masing-masing mewakili tabel

karyawan dan departemen.

2.7.6 Non-equijoin

Non-equijoin adalah relasi antara dua atau lebih

tabel dimana nilai dari kolom-kolom yang dihubungkan

tidak saling berhubungan secara langsung (tidak ada

hubungan primary key dan foreign key). Dalam non-

equijoin digunakan operator selain equal (=).

Contoh : Menampilkan data karyawan dan tingkatan

gajinya.

SQL : SELECT e.last_name, e.title, e.salary, s.grade FROMemployee e, salgrade s WHERE e.salary BETWEEN s.losal

AND s.hisal;

2.7.7 Outer join

Sebuah query tidak akan menghasilkan data apapun

apabila kondisi join tidak terpenuhi. Sebagai contoh,

Anda dapat mencoba menampilkan nama-nama pelanggan dan

sales representative dengan cara meng-equijoin-kan

table Karyawan dan Pelanggan. Pelanggan yang tidak

memiliki sales representative tidak akan ditampilkan

karena kondisi join tidak terpenuhi.

Kita dapat menangani data yang hilang tersebut

dengan menggunakan operator outer join (+), yang

diletakkan pada sisi kolom dari tabel yang bertindak

41

sebagai parent (induk).

Operator ini akan menampilkan hasil dari equijoin

ditambah dengan hasil query yang tidak memenuhi kondisi

equijoin tersebut. SQL : SELECT table.column, table.column… FROM table1, table2 WHERE

table1.column = table2.column(+);

Contoh : Menampilkan data pelanggan dan nama sales

representative dari pelanggan tersebut baik yang

memiliki sales representative maupun tidak.

SQL : SELECT e.last_name, e.id, c.name FROM employee e,customer c WHERE c.sales_rep_id = e.id (+) ORDER BY

e.id;

2.7.8 Self join

Self join adalah hubungan antara suatu tabel

dengan tabel itu sendiri. Hal ini dimungkinkan dengan

menggunakan alias tabel sehingga seolah-olah terdapat dua

tabel.

Contoh : Menampilkan data karyawan dan manajer dari

karyawan tersebut.

SQL : SELECT e.last_name|| ‘ works for ‘ || m.last_nameFROM employee e, employee m WHERE e.manager_id = m.id;

Perhatikan kasus diatas, karena manajer juga

merupakan karyawan maka semua data yang diperlukan

berasal dari satu tabel yaitu Employee. Dengan

menggunakan alias tabel kita menciptakan seolah-olah

42

terdapat dua tabel yaitu e (employee) dan m (manager),

yang keduanya berasal dari tabel yang sama yaitu

Employee.

2.8 Sub Query Pada Baris Dan Kolom

2.8.1 Subquery

Perintah SELECT yang berada di dalam perintah SQL

lain. Subquery sangat berguna ketika kita ingin

menampilkan data dengan kondisi yang bergantung pada

data di dalam table itu sendiri.

Subquery digunakan untuk menyelesaikan persoalan

dimana terdapat suatu nilai yang tidak diketahui,

artinya dengan  memakai   subquery   kita   dapat   

mempersingkat    perintah   dan    menggunakan   

fungsi   logika  yang  lebih   mudah  dipahami 

daripada  query  biasa. Subquery ini dapat diletakkan

pada WHERE klausa, FROM klausa, dan SELECT klausa.

Adapun syntak penulisan subquery yaitu sebagai berikut:SELECT select_list

FROM table

WHERE expr operator

(SELECT select_list FROM table);

Contoh : Misal dalam suatu database terdapat tabel

"mahasiswa", "ambilMK","makul". Perintah untuk

menampilkan nama dan nilai mahasiswa yang

nilainya diatas rata-rata pada salah satu mata

kuliah.

Untuk menyelesaikan persoalan itu kita bisa menggunkan

43

syntak berikut :

SQL : SELECT mahasiswa.nama, ambilMK.nilai FROM mahasiswa,ambilMK WHERE mahasiswa.NIM=ambilMK.NIM AND

ambilMK.nilai > (SELECT avg(nilai) FROM ambilMK where

kodeMK='M01');

Seperti yang sudah di sebutkan tadi, yaitu mengenai

peletakan subquery. subquery bisa diletakan pada WHERE

klausa. WHERE klausa ini paling banyak digunakan,

subquery ini disebut NESTED QUERY. kemudian yang kedua

FROM query, subquery ini dinamakan INLINE VIEWES, dan

yang ketiga SELECT klausa, subquery yang diletakkan

pada SELECT klausa harus yang bersifat singel

value.Oleh karena  itu Aggregate function seperti SUM,

COUNT, MIN, MAX biasanya digunakan pada subquery jenis

ini.

2.8.1.1 Single row subquery

Single Row Subquery merupakan satu baris dari

perintah SELECT yang ada pada database. Tipe subquery

ini biasanya menggunakan single row operator.

Contoh : Menampilkan data mahasiswa yang satu kelas

dengan wahyu

SQL : SELECT name, kelasFROM mahasiswa

WHERE kelas = (SELECT kelas FROM mahasiswa WHERE name

= ‘wahyu’)

Comparison yang digunakan oleh Single row subquery :

44

Tabel 2.8 Comparison yang digunakan oleh single row

subquery

OPERATOR KETERANGAN= Sama dengan> Lebih besar dari>= Lebih besar sama dengan< Kurang dari<= Kurang dari sama dengan<> Not Equal

2.8.1.2 Penggunaan fungsi group dalam subquery

Untuk menampilkan data dari query utama dengan

menggunakan fungsi grup (grup function) untuk

menghasilkan satu baris data yang relevan.

Contoh : Menampilkan data mahasiswa yang memiliki IPK

dibawah rata-rata

SQL : SELECT name, kelas, IPKFROM mahasiswa

WHERE IPK < (SELECT AVG (IPK) FROM mahasiswa);

2.8.1.3 Penggunaan klausa having dalam subquery

Klausa HAVING digunakan untuk menentukan kondisi

bagi GROUP BY. Kelompok yang memenuhi HAVING saja yang

akan dihasilkan.

Contoh : Menampilkan data departemen yang memiliki

rata-rata gaji diatas rata-rata gaji departemen

32

45

Syntak : SELECT dept_id, AVG (salary) FROM employee GROUPBY dept_id HAVING AVG(salary) > ( SELECT AVG(salary)

FROM employee WHERE dept_id = 32 );

2.8.2 Multiple row subquery

Multiple Row Subquery adalah subquery yang

menghasilkan lebih dari satu baris. Untuk multiple row

subquery ini yang digunakan adalah operator

pembandingan : IN, ANY atau ALL.

2.8.2.1 Penggunaan operator in dalam multiple row

subquery

 IN adalah klausa yang menyatakan bahwa query1

akan menghasilkan nilai yang sama dengan subquery.

Contoh :

SQL : select last_name, salary, department_id from

employees where salary in(select min(salary) from

employees group by department_id);

Query diatas akan menampilkan data

last_name,salary,department_id from employees dengan

salary berada pada gaji terkecil dari employees dengan

pengelompokan data berdasar department_id maka yang

akan ditampilkan adalah data yang memiliki salary

terkecil dengan pengelompokan data berdasar

department_id jika tidak dikelompokan maka hanya 1 data

yang ditampilkan namun query tersebut error.dan

46

permintaannya adalah harus memakai pengelompokan data.

2.8.2.2 Penggunaan operator any dalam multiple row

subquery

Operator Any (some) hampir sama penggunaannya

seperti Exists. Tetapi operator relasi yang digunakan

biasanya selain = (sama dengan). hal tersebut

disebabkan apabila operator relasi = yang digunakan,

maka sebetulnya fungsi operator Any (some) sama seperti

operator IN, sehingga kondisi seperti itu tidak

dianjurkan karena lebih mudah pemahamannya apabila

menggunakan operator IN.

Contoh : Akan menampilkan daftar nama pegawai dan gaji

yang gajinya paling tidak sedikit

SQL : select nama, gaji from pegawai where gaji > any(select gaji from pegawai);

2.8.2.3 Penggunaan operator all dalam multiple row

subquery

Operator all digunakan untuk melakukan

pembandingan dengan sub query. Kondisi dengan all

menghasilkan nilai benar jika pembandingan menghasilkan

benar untuk setiap nilai dalam sub query.

Contoh : Akan menampilkan nama dan gaji pegawai yang

gajinya lebih rendah daripada semua pegawai

yang pekerjaannya 'SALESMAN'

47

SQL : select name where gaji < all (select gaji frompegawai where pekerjaan = ‘SALESMAN’)

2.8.3 Subquery dengan banyak kolom

Pada subquery banyak kolom, tiap baris dari main

query dibandingkan dengan nilai dari subquery multiple-

row dan multiple-column. Pembandingan kolom dalam

subquery banyak kolom dapat berupa, Pembandingan

berpasangan dan pembandingan tidak berpasangan.

2.8.3.1 Nilai null dalam subquery

Pernyataan SQL dalam slide mencoba untuk

menampilkan semua pegawai yang tidak memiliki beberapa

subordinate. Secara logika, pernyataan SQL ini akan

dikembalikan 12 baris. Bagaimanapun, pernyataan SQL

tidak mengembalikan beberapa baris pun. Satu dari

nilainilai dikembalikan oleh inner- query adalah nilai

null, dan dan karenanya keseluruhan query tidak

mengembalikan baris-baris. Jadi kapanpun nilai-nilai

null secara kemungkinan menjadi bagian dari sekelompok

hasil-hasil dari suatu subquery, jangan gunakan operator

NOT IN. Operator NOT IN sama dengan operatorm <>ALL.

Sebagai catatan bahwa nilai null sebagai bagian

dari sekelompok hasil-hasil dari suatu subquery adalah

tidak menjadi masalah jika. Menggunakan operator IN.

Operator IN adalah sama dengan operator =ANY. Sebagai

contoh, untuk menampilkan para pegawai yang memiliki

subordinate, gunakan pernyataan SQL berikut :

48

SQL : SELECT emp.last_name FROM employees emp WHERE emp.

employees_id IN (SELECT mgr.manager_id FROM employees

mgr);

Sebagai alternatif, suatu klausa WHERE dapat disertakan

pada subquery untuk menampilkan seluruh pegawai yang

tidak memiliki beberapa subordinate :

SQL : SELECT last_name FROM employees WHERE employee_id NOT

IN (SELECT manager_i FROM employees WHERE manager_id

IS NOT NULL

2.8.3.2 Penggunaan subquery dalam klausa from

Query ini dikenal juga dengan istilah inline

view, karena tidak membentuk object database.

Contoh penggunaan query pada from :

SQL : (SELECT department_id, REDS(salary) salavg FROM

employees GROUP BY department_id)

49

BAB III

PEMBUATAN TABEL, PENDEFINISIAN CONSTRAINT,

EXPORT DAN IMPORT

Tabel adalah sekumpulan data yang telah dibuat

dengan sedemikian mungkin dan digunakan pada sebuah

database dalam pembuatan sebuah program aplikasi .

Constraint adalah batasan atau aturan yang ada pada

table . Constraint mencegah penghapusan data dari suatu

table yang mempunyai keterkaitan dengan table yang lain

. Misal terdapat keterkaitan antara table department

dengan table pegawai . Dimana pada table pegawai

menyimpan informasi kolom nomer department yang juga

terdapat pada table department . Jika baris dengan

50

nomer department ‘10’ akan dihapus dari table

department, sedangkan terdapat data pegawai yang

bekerja pada department tersebut, maka dengan adanya

constraint antara dua table, penghapusan tersebut tidak

bisa dilakukan .

Export dan import disediakan oleh ORACLE untuk

melakukan transfer data secara logis seperti tabel, isi

data, prosedur dan sebagainya Export membentuk file

yang diperlukan untuk mentransfer data File hasil

export berbentuk file binary yang disebut DUMP FILE

(dmp). File ini hanya dapat dibaca oleh fasilitas

import yang berfungsi mengembalikan informasi dari dump

file ke database.

3.1Menjalankan Oracle

3.1.1 Pemanggilan SQLPlus pada command prompt

Dalam pembuatan database perlu adanya sistem yang

dapat melakukan relasi antar data satu dengan data yang

lain. Maka dalam sistem kali ini akan menggunakan

SQLPlus . Adapun cara pemanggilannya melalui langkah-

langkah sebagai berikut :

1. Pastikan Oracle sudah terinstall dengan baik

kemudian start Oracle, setelah itu ketik windows+R

ketik CMD OK .

51

Gambar 3.1 Tampilan run

2. Setelah muncul gambar 3.2 ketik sqlplus

Enter scott ( nama user )

Enter praktikum ( password )

Gambar 3.2 Tampilan pada “ cmd.exe “

3.2 Percobaan Membuat Tabel dept30_1412110055

SQL : create table dept30_1412110055 (Deptno Number(2),Dname Varchar2(14), Loc Varchar2(13));

describe dept30_1412110055

Penjabaran : Buat table dengan nama

dept30_1412110055 dengan

kolom Deptno dengan tipe data

number(2), Dname dengan

52

tipe data varchar2(14), dan Loc dengan

tipe data

varchar2(13);

Tampil struktur table dept30_1412110055

Hasil Percobaan :

Gambar 3.3 Tampilan membuat table dept30_1412110055 dan

menampilkan struktur tabelnya

3.3 Percobaan Menampilkan Tabel Yang Dimiliki Oleh

User

SQL : select * from dept30_1412110055;

Penjabaran : Tampilkan seluruh data dari table

dept30_1412110055 ;

Hasil Percobaan :

Gambar 3.4 Tampilan data dari table dept30_1412110055

53

3.4Percobaan Menampilkan Tipe Object Secara Distinct

Yang Dimiliki Oleh User

SQL : select distinct object_type from user_objects;

Penjabaran : Tampilkan object_type dari table

user_objects secara

distinct (a-z) ;

Hasil Percobaan :

Gambar 3.5 Tampilan object_type secara distinct (a-z)

3.5 Percobaan Menampilkan Table, View, Synonyms Dan

Sequence Yang Dimiliki Oleh User

SQL : select * from user_catalog;

Penjabaran : Tampilkan semua data dari table

user_catalog ;

Hasil Percobaan :

Gambar 3.6 Tampilan data dari table user_cataloq

54

3.6 Percobaan Menambahkan kolom baru ‘Job’ Ke Dalam

Table dept30_1412110055, Kolom Job Mempunyai Tipe

Data Varchar2(9)

SQL : alter table dept30_1412110055 add (job

varchar2(9));

Penjabaran : Tambahkan kolom job dengan tipe data

varchar2(9)

pada table dept30_1412110055 ;

Hasil Percobaan :

Gambar 3.7 Tampilan menambah kolom job pada table

dept30_1412110055

3.7 Percobaan Memodifikasi Tipe Data Kolom, Dan Ukuran

Dari Kolom Ename Pada Table dept30_1412110055

Menjadi Varchar2(15)

SQL : alter table dept30_1412110055 modify (Dnamevarchar2(15));

Penjabaran : Modifikasi kolom Dname dengan tipe

data menjadi

varchar2(15) pada table

dept30_1412110055 ;

Hasil Percobaan :

55

Gambar 3.8 Tampilan memodifikasi kolom dname pada table

dept30_1412110055

3.8Percobaan Hapus Table dept30_1412110055 Dengan

Perintah Drop

SQL : drop table dept30_1412110055 ;

Penjabaran : Hapus table dept30_1412110055 ;

Hasil Percobaan :

Gambar 3.9 Tampilan mengahapus table dept30_1412110055

3.9 Percobaan Mengubah Nama Table

Dept Menjadi Department

SQL : rename dept to departement ;

Penjabaran : Ubah nama table dept menjadi

departement;

Hasil Percobaan :

Gambar 3.10 Tampilan mengubah nama table dept menjadi departement

56

3.10 Percobaan Menambahkan Komentar Ke

Table emp Dengan Keterangan ‘Informasi Pegawai’

SQL : comment on table emp is ‘Informasi Pegawai’ ;

Penjabaran : Tambahkan komentar informasi pegawai

pada table emp;

Hasil Percobaan :

Gambar 3.11 Tampilan menambah komentar

3.11 Percobaan Pembuatan Table Dengan

Constraint Not Null.

SQL : create table employee (Empno Number(4), EnameVarchar2(10) Not Null, Job Varchar2(9), Deptno

Number(7,2) Not Null );

Penjabaran : Buat table employee dengan kolom

Empno tipe datanya number(4), Ename

tipe datanya varchar2(10) dengan

constraint not null, Job tipe datanya

varchar2(9), Deptno tipe datanya

number(7,2) dengan constraint not

Null;

Hasil Percobaan :

57

Gambar 3.12 Tampilan membuat table dengan constraint not null

3.12 Percobaan Pembuatan Table Dengan

Constraint Unique

SQL : create table department_1412110055 Deptno

Number(2), Dname varchar2(14), Loc varchar2(13),

constraint dept_name_ak unique(Dname));

Penjabaran : Buat table departement_1412110055

dengan kolom Deptno tipe datanya

number(2), Dname tipe datanya

varchar2(14), Loc tipe datanya

varchar2(13), dengan constraint

unique ;

Hasil Percobaan :

Gambar 3.13 Tampilan membuat table departement_1412110055 dengan

constraint unique

58

3.13 Percobaan Pembuatan Table Dengan

Constraint Primary Key

SQL : create table department_1412110055 Deptno

Number(2), Dname varchar2(14), Loc

varchar2(13), constraint dept_name_pk primary

key(Dname));

Penjabaran : Buat table departement_1412110055

dengan kolom Deptno tipe datanya

number(2), Dname tipe datanya

varchar2(14), Loc tipe datanya

varchar2(13), dengan constraint

primary key ;

Hasil Percobaan :

Gambar 3.14 Tampilan membuat table departement_1412110055 dengan

constraint primary key

59

BAB IV

SEQUENCE, INDEX DAN SYNONYM

Sequence adalah sebuah object dalam database yang

digunakan untuk mengenerate bilangan .

Index adalah sebuah schema object digunakan oleh

oracle server untuk meningkatkan kecepatan penerimaan

data dengan menggunakan pointer dapat mengurangi

kebutuhan disk input/output dengan menggunakan sebuah

metode rapid path access untuk mengalokasikan data dengan

cepat tabel yang independen digunakan dan dipelihara

secara otomatis oleh oracle server .

Synonym digunakan untuk mempermudah kita dalam

mengakses sebuah object dengan cara memanggil sebuah

tabel dengan nama yang berbeda.

4.1 Percobaan Membuat Tabel dept30_DishNurAfifah

SQL : create table dept30_DishNurAfifah(Deptno

number(2), Dname varchar2(14), Loc varchar2(13));

Penjabaran : Buat table dept30_DishNurAfifah

dengan kolom

Deptno tipe datanya number(2), Dname

tipe datanya

varchar2(14), Loc varchar2(13);

Hasil Percobaan :

60

Gambar 4.1 Tampilan membuat table dept30_DishNurAfifah

4.2 Percobaan Membuat Sequence Dept_Deptno Yang Akan

Digunakan Sebagai Primary Key Dalam Table Dept.

Jangan Gunakan Pilihan Cycle

SQL : CREATE SEQUENCE dept_deptno INCREMENT BY 1 STARTWITH 91 MAXVALUE 100 NOCACHE NOCYCLE;

Penjabaran : Buat sequence dept_deptno yang akan

digunakan

sebagai primary key dalam table dept

Hasil Percobaan :

Gambar 4.2 Tampilan membuat sequence dept_deptno

4.3 Percobaan Menampilkan Informasi Tentang Keberadaan

Sequence

SQL : SELECT sequence_name, min_value, increment_by,last_number FROM user_sequences;

Penjabaran :Tampilkan informasi sequences_name,

min_value, increment_by, dan

last_number

61

Hasil Percobaan :

Gambar 4.3 Tampilan menampilkan informasi sequence

4.4 Percobaan Mengunakan Sequence Dept_Deptno Untuk

Mengisi Baris Baru Untuk Department ‘Marketing’

Yang Berlokasi Di ‘San Diego’

SQL : INSERT INTO dept (Deptno, Dname, Loc) VALUES(dept_Deptno.NEXTVAL,’MARKETING’,’SAN DIEGO’);

Penjabaran : Mengisi baris baru untuk department

‘marketing’ yang berlokasi di ‘san

diego’ dengan mengunakan sequence

dept_deptno ;

Hasil Percobaan :

Gambar 4.4 Tampilan mengisi baris baru dengan sequence

62

4.4.1 Percobaan melihat nilai dari sequence dept_deptno

saat ini

SQL : SELECT dept_Deptno.CURRVAL FROM DUAL;

Penjabaran : Lihat nilai dari sequence dept_deptno

saat ini

Hasil Percobaan :

Gambar 4.5 Tampilan melihat nilai dari sequence dept_deptno saat

ini

4.5 Percobaan Memodifikasi Sequence Dept_Deptno

SQL : ALTER SEQUENCE dept_Deptno INCREMENT BY 1

MAXVALUE 999999 NOCACHE NOCYCLE;

Penjabaran : Modifikasi sequence dept_deptno

Hasil Percobaan :

Gambar 4.6 Tampilan memodifikasi sequence

4.6 Percobaan Menghapus Sequence Dept_Deptno

SQL : DROP SEQUENCE dept_Deptno ;

Penjabaran : Hapus sequence dept_deptno

63

Hasil Percobaan :

Gambar 4.7 Tampilan menghapus sequence

4.7 Percobaan Membuat Index Pada Kolom Ename Yang Ada

Pada Table Emp

SQL : CREATE INDEX emp_ename_idx ON emp(Ename);

Penjabaran : Buat index pada kolom ename yang ada

pada table emp

Hasil Percobaan :

Gambar 4.8 Tampilan membuat index

4.8 Percobaan Memeriksa Keberadaan Index Dari Data

Dictionary

SQL : colomn colomn_name format a15 ( Enter )SELECT ic.index_name, ic_colomn_name,

ic.colomn_position col_pos, ix.uniqueness FROM

user_indexes ix, user_ind_colomn ic WHERE

ic.index_name=ix.index_name AND

ic.table_name=’EMP’;

Penjabaran : Memeriksa keberadaan index dari data

dictionary;

Hasil Percobaan :

64

Gambar 4.9 Tampilan memeriksa keberadaan index

4.9 Percobaan Menghapus Index Emp_Ename_Idx Pada Table

Emp

SQL : DROP INDEX emp_ename_idx;

Penjabaran : Hapus index emp_ename_idx;

Hasil Percobaan :

Gambar 4.10 Tampilan menghapus index

4.10 Percobaan Masuk Ke System

SQL : conn system;

Penjabaran : Masuk ke conn system;

Hasil Percobaan :

Gambar 4.11 Tampilan masuk ke conn system

4.10.1 Percobaan membuat synonim

65

SQL : create view dept_sum_vu as select *from

Scott.dept30_DiahNurAfifah;

Penjabaran : Buat synonim;

Hasil Percobaan :

Gambar 4.12 Tampilan membuat synonym

4.11 Percobaan Memberi Nama View Dept_Sum_Vu

Dengan Nama D_Sum

SQL : CREATE SYNONIM D_sum FOR dept_sum_vu;

Penjabaran :Beri nama view dept_sum_vu dengan nama

d_sum;

Hasil Percobaan :

Gambar 4.13 Tampilan memberi nama synonym

4.12 Percobaan Menghapus Synonim D_Sum

SQL : DROP SYNONIM D_sum;

Penjabaran :Hapus synonim d_sum;

Hasil Percobaan :

66

Gambar 4.14 Tampilan menghapus synonym d_sum

BAB V

VIEW

View adalah salah satu object database, yang secara

logika merepresentasikan sub himpunan dari data yang

berasal dari satu atau lebih table.

View merupakan hasil perintah SELECT yang berupa

tabel virtual yang dapat membungkus query tertentu.

67

View berfungsi untuk mempermudah dalam pengambilan

query tertentu. Dengan view kita dapat menerapkan

pembatasan pada pengaksesan guna pengamanan keamanan

data seperti di bawah ini:

a. Kolom/Field pada tabel tertentu.

b. Baris/Record pada tabel tertentu.

c. Field dan Record pada tabel tertentu.

d. Turunan dari view lain.

e. Record menggunakan operasi join.

f. Data statistik dari tabel.

Kegunaan dari view adalah :

a. Membatasi akses database

b. Membuat query kompleks secara mudah

c. Mengijinkan independensi data

d. Untuk menampilkan view (pandangan) data yang berbeda

dari data yang sama.

5.1 Percobaan Login Ke Dalam View

Seperti sebelumnya jalankan terlebih dahulu “

cmd.exe “ pada awal praktikum. Akan tetapi ada

perbedaan didalam pengisian “ User-name “. Pada “

User-name “ harus diisi dengan “ conn system “.

Sedangkan dengan “ Password “ sama dengan awal

praktikum.

Enter user-name : conn system

68

Enter password : praktikum

Hasil Percobaan :

Gambar 5.1 Tampilan masuk ke system

5.2Percobaan Membuat View Empvu10 Yang Berisi Detail

Dari Pegawai Yang Bekerja Pada Department 10

SQL : CREATE VIEW EMPVU10 AS SELECT empno,ename,jobFROM scott.emp WHERE deptno10;

Penjabaran : Buat view tabel EMPVU10 yang

dialiaskan dengan menampilkan data

kolom “empno, ename, job” dari tabel

“emp” yang ada di user “scott” dimana

kolom “deptno” mempunyai variabel 10 ;

Hasil Percobaan :

Gambar 5.2 Tampilan membuat view empvu10

5.2.1 Percobaan melihat struktur view empvu10

SQL : DESCRIBE EMPVU10;

Penjabaran : Lihat struktur table empvu10;

69

Hasil Percobaan :

Gambar 5.3 Tampilan struktur table empvu10

5.3Percobaan Membuat View Salvu30 Yang Berisi Nomer,

Nama Dan Gaji Pegawai Yang Bekerja Di Department

30. Beri Nama Kolom Baru Yaitu Employee_Number,

Name Dan Salary

SQL : CREATE VIEW SALVU30 AS SELECT empno

EMPLOYEE_NUMBER, ename NAME, sal SALARY FROM

scott.emp WHERE deptno=30;

Penjabaran :Buat view tabel SALVU30 dialiaskan

dengan menampilkan kolom “empno” yang

diberi nama EMPLOYEE_NUMBER, kolom

“ename” yang diberi nama NAME dan kolom

“sal” yang diberi nama SALARY dari

tabel EMP yang ada di “user scott”,

70

dimana kolom “deptno” mempunyai

variabel 30;

Hasil Percobaan :

Gambar 5.4 Tampilan menambah kolom baru pada table empvu10

5.4Percobaan Menampilkan Semua Data Yang Ada Pada View

Salvu30

SQL : SELECT * FROM SALVU30;

Penjabaran : Tampilkan semua isi table salvu30;

Hasil Percobaan :

Gambar 5.5 Tampilan table salvu30

5.5Percobaan Modifikasi Judul Kolom Dari Empvu10

SQL : CREATE OR REPLACE VIEW empvu10(employee_number,employee_name, job_title)AS SELECT empno, ename,

job FROM scott.emp WHERE deptno=10;

71

Penjabaran : Buat atau Modifikasi data pada “view

empvu10” yang diberi nama kolom

“employee_number, employee_name,

job_title” yang dialiaskan dengan

menampilkan data pada kolom “empno,

ename, job” dari tabel EMP yang ada

diuser “scott” dimana kolom “deptno”

mempunyai variabel 10;

Hasil Percobaan :

Gambar 5.6 Tampilan memodifikasi judul kolom dari table empvu10

5.5.1 Percobaan melihat view dari empvu10

SQL : SELECT * FROM empvu10;

Penjabaran : Melihat view empvu10;

Hasil Percobaan :

Gambar 5.7 Tampilan view empvu10

72

5.6Percobaan Membuat Complex View Dept_Sum_Vu Yang

Berisi Nama Department, Minimum Gaji, Maksimum

Gaji, Rata-Rata Gaji Dari Seluruh Pegawai Pada

Tiap-Tiap Department

SQL :CREATE VIEW dept_sum_vu (name,minsal,maxsal,

avgsal) AS SELECT d.dname,min(e.sal),

max(e.sal),avg(sal)FROM scott.EMP e, scott.DEPT d

WHERE e.deptno=d.deptno GROUP BY d.dname;

Penjabaran : Buat view tabel “dept_sum_vu” dengan

nama kolom “name, minsal, maxsal,

avgsal” yang dialiaskan dengan

menampilkan kolom “dname” tabel “DEPT”,

kolom “sal” tabel “EMP” dari tabel

“EMP” yang dialiaskan dengan “e” dan

tabel “DEPT” yang dialiaskan dengan “d”

dari user “scott”, dimana “e.deptno =

d.deptno” dikelompokkan kolom “dname”

pada tabel “d”;

Hasil Percobaan :

Gambar 5.8 Tampilan membuat view table dept_sum_vu

73

5.6.1 Percobaan melihat view dept_sum_vu

SQL :SELECT * FROM dept_sum_vu;

Penjabaran : Melihat view dept_sum_vu;

Hasil Percobaan :

Gambar 5.9 Tampilan table dept_sum_vu

5.7Percobaan Membuat View Empvu20 Yang Berisi Semua

Data Pegawai Pada Table Emp Yang Bekerja Di

Department 20, Beri Klausa With Check Option

SQL : CREATE OR REPLACE VIEW empvu20 AS SELECT * FROMscott.emp WHERE deptno=20 WITH CHECK OPTION

CONTRAINT empvu20_ck;

Penjabaran : Buat atau modifikasi view tabel

empvu20 yang dialiaskan dengan

menampilkan semua data dari tabel “EMP”

yang ada pada user “scott” dimana kolom

“deptno” mempunyai variable 20 serta

dengan klausa “WITH CHECK OPTION”;

Hasil Percobaan :

74

Gambar 5.10 Tampilan membuat vew table empvu20

5.7.1 Percobaan memperbarui table empvu20

SQL : UPDATE empvu20 SET deptno=20 WHERE empno=7788;

Penjabaran : Memperbarui table empvu20;

Hasil Percobaan :

Gambar 5.11 Tampilan mengubah table empvu20

5.8Percobaan Membuat View Empvu10 Yang Berisi Data

Nomer, Nama, Dan Pekerjaan Pegawai Untuk Pegawai

Yang Bekerja Di Department 10. Gunakan Klausa Read

Only Untuk Mengabaikan Operasi DML Pada View

SQL : CREATE OR REPLACE VIEW empvu10 AS SELECT

empno,ename,job FROM scott.emp WHERE deptno=10

WITH READ ONLY;

Penjabaran : Buat view tabel “empvu10” yang

dialiaskan dengan menampilkan kolom

75

“empno, ename, job” dari tabel “EMP”

yang ada pada user “scott” dimana kolom

“deptno” mempunyai variable 10 serta

diberi klausa “WITH READ ONLY” ;

Hasil Percobaan :

Gambar 5.12 Tampilan membuat view table empvu20

5.8.1 Percobaan menghapus table empvu10 dimana

empno=7782

SQL : DELETE FROM EMPVU10 WHERE empno=7782;

Penjabaran : Menghapus table empvu10;

Hasil Percobaan :

Gambar 5.13 Tampilan menghapus table empvu20

5.9Percobaan Menghapus View Empvu10

SQL : DROP VIEW empvu10;

Penjabaran : Hapus view table empvu20;

Hasil Percobaan :

76

Gambar 5.14 Tampilan menghapus view table empvu20

BAB VI

VIEW QUERY SELECT DAN DML (INSERT, UPDATE,

DELETE)

Query SELECT merupakan perintah dasar untuk

menjalankan sebuah perintah dalam sebuah database,

misal pada database oracle sqlplus. Sedangkan DML

( Data Manipulation Language ) adalah salah satu

komponen bahasa basis data yang berfungsi sebagai

berikut :

77

a. Menyisipkan data baru ke dalam basis data

b. Memodifikasi data dalam basis data

c. Menemukan kembali data dalam basis data

d. Menghapus data dari basis data

Jenis-jenis DML :

1. DML Prosedural : Bahasa yang memungkinkan

pengguna user memerintahkan sistem secara cepat

bagaimana memanipulasi data.

2. DML Non-Prosedural : Bahasa yang memungkinkan

pengguna user menyatakan data apa yang dibutuhkan

dan bukan bagaimana data diperoleh.

INSERT merupakan perintah yang digunakan untuk

mengisi suatu baris pada suatu tabel yang terdiri dari

beberapa kolom yang ada.

DELETE merupakan perintah yang digunakan hanya untuk

menghapus pada record saja, bukan pada data kolom

tertentu.

UPDATE merupakan perintah untuk mengubah data yang

sudah ada di dalam tabel.

6.1Pemanggilan SQLPlus

78

Pada percobaan kali ini kita tidak menggunakan

command prompt tetapi kita menggunakan SQLPlus dengan

ketik windows+R ketik SQLPlus OK.

Gambar 6.1 Tampilan SQLPlus

6.2Percobaan Melakukan Query Untuk Menampilkan Seluruh

Data Pada Tabel “Emp”

SQL : select * from emp;

Penjabaran : Tampilkan seluruh data table emp;

Hasil Percobaan :

Gambar 6.2 Tampilan menampilkan table emp

Akan terdapat beberapa baris data yang kolom “COMM”

tidak berisi data apapun. Hal tersebut dikatakan NULL.

Nilai NULL (kosong) pada suatu kolom bisa berarti ada

data yang tidak diisi, atau tidak diketahui nilainya.

79

Nilai NULL tidak sama dengan NOL (zero). Nilai NULL

juga tidak sama dengan spasi kosong.

6.3Percobaan Menampilkan Struktur Tabel “Emp”

SQL : desc emp;

Penjabaran : Tampil struktur table emp;

Hasil Percobaan :

Gambar 6.3 Tampilan struktur table emp

6.4Percobaan Melakukan Query Untuk Menampilkan Data

Kolom “Ename” Dan “Hiredate” Pada Tabel “Emp”

SQL : select ENAME, HIREDATE from emp;

Penjabaran : Tampilkan data kolom ename, hiredate

dari tabel emp;

Hasil Percobaan :

80

Gambar 6.4 Tampilan ename dan hiredate dari table emp

6.5Percobaan Melakukan Query Untuk Menampilkan Data

Kolom “Ename”, “Hiredate” Dan “Sal” Yang Dikalikan

Dengan 250 Pada Tabel “Emp”

SQL : select ENAME, HIREDATE, SAL*250 from emp;

Penjabaran : Tampilkan data kolom ename, hiredate,

sal yang dikalikan 250 dari tabel emp;

Hasil Percobaan :

81

Gambar 6.5 Tampilan ename, hiredate dan sal*250 dari table emp

6.6Percobaan Melakukan Query Untuk Menampilkan Data

Kolom “Ename”, “Hiredate” Dan “Sal” Yang Dikalikan

50 Dan Ditambahkan Dengan 250 Pada Tabel “Emp”

SQL : select ENAME, HIREDATE, 50*SAL+250 from emp;

Penjabaran : Tampilkan data kolom ename, hiredate,

sal dikalikan 50 dan ditambah

250 dari tabel emp;

Hasil Percobaan :

82

Gambar 6.6 Tampilan ename, hiredate dan 50*sal+250 dari table emp

6.7Percobaan Melakukan Query Untuk Menampilkan Data

Kolom “Ename”, “Hiredate” Dan “Sal” Yang Isinya

Ditambahkan Dengan 250 Kemudian Baru Dikalikan 50

Pada Tabel “Emp”

SQL : select ENAME, HIREDATE, 50*(SAL+250) from emp;

Penjabaran : Tampilkan data kolom ename, hiredate,

50 dikalikan sal dan ditambah 250 dari

tabel emp;

Hasil Percobaan :

83

Gambar 6.7 Tampilan ename, hiredate dan 50*(sal+250) dari table

emp

6.8Percobaan Melakukan Query Untuk Menampilkan Data

Kolom “Ename” Dengan Nama Kolom Aliasnya “Nama

Pegawai” Dan “Hiredate” Dengan Nama Kolom Aliasnya

“Tanggal Diterima” Pada Tabel “Emp”

SQL : select ENAME AS “Nama Pegawai“, HIREDATE AS“Tanggal diterima” FROM emp;

Penjabaran : Tampilkan seluruh data kolom ename

dengan nama kolom aliasnya “Nama

Pegawai” dan hiredate dengan nama kolom

aliasnya “Tanggal Diterima” pada table

emp;

Hasil Percobaan :

Gambar 6.8 Tampilan ename, hiredate dari table emp dengan kolom

alias

84

6.9Percobaan Melakukan Query Untuk Menampilkan

Gabungan Data Kolom “Ename” Dan “Job” Dengan Nama

Kolom Aliasnya “Nama Samaran” Pada Tabel “Emp”

SQL : select ENAME || JOB AS “Nama Samaran“, from emp;

Penjabaran : Tampilkan gabungan data kolom ename

dan hiredate dengan nama kolom aliasnya

“Nama Samaran” pada tabel emp;

Hasil Percobaan :

Gambar 6.9 Tampilan gabungan data pada table emp

6.10 Percobaan Melakukan Query Untuk Menampilkan

Gabungan Data Kolom “Ename” Dan “Job” Dengan

Kalimat Penyambung “Bekerja Sebagai” Nama Kolom

Aliasnya “Nama Dan Posisi” Pada Tabel “Emp”

85

SQL : select ENAME || ‘Bekerja Sebagai’|| JOB AS “NamaDan Posisi” from emp;

Penjabaran : Tampilkan gabungan data kolom ename

dan hiredate dengan kalimat penyambung

Bekerja Sebagai, dan nama kolom

aliasnya adalah Nama dan Posisi, pada

tabel emp;

Hasil Percobaan :

Gambar 6.10 Tampilan gabungan kolom ename dan hiredate

6.11 Percobaan Melakukan Query Untuk Menampilkan Data

Kolom “Job” Tanpa Ada Yang Boleh Berulang Pada

Tabel “Emp”

SQL : SELECT DISTINCT JOB FROM emp;

Penjabaran : Tampilkan data pada kolom job tanpa

ada yang boleh berulang dari tabel

emp ;

Hasil Percobaan :

86

Gambar 6.11 Tampilan kolom job dari table emp

6.12 Percobaan Membuat Table Dept30_1412110055

SQL : CREATE table dept30_1412110055 (deptno

number(2), dname varchar2(14), loc varchar2(13));

Penjabaran : Buat table dept30_1412110055 dengan

kolom deptno tipe datanya number(2),

dname tipe datanya varchar2(14), loc

tipe datanya varchar2(13);

Hasil Percobaan :

Gambar 6.12 Tampilan membuat table dept3_1412110055

6.13 Percobaan Menyisipkan Baris Ke Dalam Table Dept30

SQL : INSERT INTO dept (deptno,dname,loc) VALUES

(50,’DEVELOPMENT’,’DETROIT’);

Penjabaran : Sisipkan baris kedalam tabel dept

pada kolom deptno, dname dan loc dengan

nilai 50, DEVELOPMENT, DETROIT;

Hasil Percobaan :

87

Gambar 6.13 Tampilan menyisipkan baris pada table dept

6.14 Percobaan Melakukan Proses Insert Seperti Pada

Contoh Berikut, Sehingga Kolom Loc Akan Berisi

Nilai Null

SQL : INSERT INTO dept (deptno,dname) VALUES

(60,’MIS’);

Penjabaran : Sisipkan baris kedalam tabel dept

pada kolom deptno dan dname dengan

nilai 60, MIS dan pada kolom loc akan

diisi dengan nilai NULL;

Hasil Percobaan :

Gambar 6.14 Tampilan menyisipkan baris baru dengan nilai loc= NULL

6.15 Percobaan Melakukan Proses Insert Insert, Bila

Tidak Disebutkan Kolom Apa Saja Yang Harus Diisi,

Maka Nilai Pada Values Harus Mencantumkan Semua

Kolom Yang Ada Pada Table Sesuai Dengan Urutannya

SQL : INSERT INTO emp (empno, ename, job, mgr,hiredate, sal, comn, deptno) VALUES

88

(7196,’DIAH’,’SALESMAN’ ,7782,sysdate,2000,NULL,10

);

Penjabaran : Sisipkan data pada tabel emp yang isi

kolom empno 7196,ename : green, job :

salesman, mgr : 7782, hiredate :

sysdate/tanggal hari ini, sal : 2000,

comm. : null, deptno : 10;

Hasil Percobaan :

Gambar 6.15 Tampilan menyertakan fungsi sysdate ke dalam tabel emp

6.16 Percobaan Melakukan Proses Insert Dengan

Menggunakan Nilai Data Tanggal Yang Diformat

SQL :INSERT INTO emp VALUES

(2296,’DIAH’,’SALESMAN’ ,7782,TO_DATE(‘PEB 3

97’,’MON DD YY’),1300, NULL,10);

Penjabaran : Sisipkan baris ke dalam tabel emp

pada semua kolom yang menggunakan nilai

data tanggal yang di format dengan

nilai 2296, Aromano, salesman,

to_date(feb 3 97,mon dd yy), 1300,

null,10;

Hasil Percobaan :

89

Gambar 6.16 Tampilan Menambahkan baris baru dengan fungsi tgl yang

di format

6.17 Percobaan Melakukan Proses Insert Yang

Mencantumkan Variable Substitusi Dari Suatu Nilai

Kolom Pada Baris Baru Yang Akan Dimasukkan Ke Dalam

Table

SQL : INSERT INTO dept ( deptno, dname, loc ) VALUES(&department_id, ‘&department_name’, ‘&location’);

80

EDUCATION

ATLANTA

Penjabaran : Sisipkan baris baru pada tabel dept

dengan mencantumkan variabel subtitusi

dari suatu nilai kolom, yaitu deptno

menjadi department_id,dname menjadi

department_name dan loc menjadi

location;

Hasil Percobaan :

90

Gambar 6.17 Tampilan menginputkan nilai department

6.18 Percobaan Menambahan Kustomisasi Prompt. Buat File

.Sql Dengan Nama File Npm Anda Dan Kemudian Save Di

Drive D

SQL : ACCEPT department_id PROMPT 'Silahkan masukkannomer department : '

ACCEPT department_name PROMPT 'Silahkan masukkan

nama department : '

ACCEPT location PROMPT 'Silahkan masukkan lokasi

department : '

INSERT INTO dept(deptno,dname,loc) VALUES

(&department_id,'&department_name','&location');

Penjabaran : Buat file.sql dengan nama

nomor_1412110055 dan kemudian simpan di

drive D. Isi dari file tersebut seperti

diatas untuk mengatur teks yang

ditampilkan saat pengisian variabel

subtitusi, yaitu pada kolom deptno,teks

yang dimasukkan adalah silahkan

masukkan nomer department, pada kolom

dname, teks yang ditampilkan adalah

silahkan masukkan nama department,dan

pada kolom loc,teks yang ditampilkan

adalah silahkan masukkan lokasi

department dari tabel dept;

91

Hasil Percobaan :

Gambar 6.18 Tampilan file nomor_1412110055.sql

6.18.1 Percobaan menampilan file

nomor_1412110055.sql

SQL : @D:\nomor_1412110055.sql

Penjabaran : Menjalankan perintah pemanggilan

file nomor_1412110055.sql

Hasil Percobaan :

Gambar 6.19 Tampilan memanggil file nomor_1412110055.sql

6.19 Percobaan Membuat Tabel Manajer

SQL : CREATE table manajer ( ID number(4), Namevarchar2(10), salary number(7,2), hiredate date);

Penjabaran : Buat table manajer dengan kolom id

tipe datanya number(4), name tipe

datanya varchar2(10), salary tipe

92

datanya number(7,2), hiredate tipe

datanya date;

Hasil Percobaan :

Gambar 6.20 Tampilan membuat table manajer

6.20 Percobaan Menambahkan Baris Baru Ke Dalam Table

Manager Yang Berasal Dari Table Pegawai Yang

Pekerjaannya = ‘Manager’

SQL : INSERT INTO manajer

( ID,Name,Salary,Hiredate )SELECT

empno,ename,sal,hiredate FROM emp WHERE

JOB=’MANAJER’;

Penjabaran : Tambahkan atau copy baris baru ke

dalam tabel managers pada kolom id,

name, salary, hiredate yang berasal

dari tabel emp yang mempunyai job =

manager;

Hasil Percobaan :

Gambar 6.21 Tampilan menambah baris baru pada table emp

93

6.21 Percobaan Mengubah Nomer Department Menjadi = 20,

Untuk Pegawai Yang Memiliki Nomer Department = 7782

SQL : UPDATE emp SET deptno=20 WHERE empno=7782;

Penjabaran : Ubah data pada tabel emp untuk

pegawai yang memiliki nomer departemen

7782 menjadi 20;

Hasil Percobaan :

Gambar 6.22 Tampilan mengubah table emp

6.21.1 Percobaan mengubah nomer department menjadi =

20

SQL : UPDATE emp SET deptno=20;

Penjabaran : Ubah seluruh data pada tabel emp

dari nomer departemen berapapun menjadi

20;

Hasil Percobaan :

Gambar 6.23 Tampilan mengubah seluruh data table emp

94

6.21.2 Percobaan tampilkan kolom ename, deptno dari

table emp

SQL : SELECT ename, deptno FROM emp;

Penjabaran : Tampilkan kolom ename, deptno dari

table emp;

Hasil Percobaan :

Gambar 6.24 Tampilan kolom ename, deptno dari table emp

6.22 Percobaan Mengubah Nilai Dari Kolom Pekerjaan Dan

Nomer Department Dari Pegawai Dengan Nomer Pegawai

‘7698’ Sehingga Nilainya Sama Dengan Jenis

Pekerjaan Dan Nomer Department Yang Dimiliki Oleh

Pegawai Bernomer ‘7499’

95

SQL : UPDATE emp SET (job,deptno)=(SELECT job,deptnoFROM EMP WHERE empno=7499)WHERE empno=7698;

Penjabaran : Ubah nilai dari kolom job dan

deptno dari pegawai dengan deptno 7698

sehingga nilainya sama dengan job dan

deptno yang dimiliki pegawai dengan

empno 7499 dari tabel emp;

Hasil Percobaan :

Gambar 6.25 Tampilan mengubah nilai kolom dari table emp

6.23 Percobaan Mengubah Data Nomer Department Yang

Dimiliki Oleh Pegawai Dengan Pekerjaan Yang Sama

Dengan Pegawai Bernomor ‘7788’ , Data Nomer

Department Tersebut Harus Diubah Menjadi Data Yang

Sama Dengan Nomer Department Yang Dimiliki Oleh

Pegawai Bernomor ‘7788’

SQL : UPDATE emp SET deptno=(SELECT deptno FROM empWHERE empno=7788)WHERE job=(SELECT job FROM emp

WHERE empno=7788);

Penjabaran : Ubah data nomer department yang

dimiliki oleh pegawai dengan pekerjaan

yang sama dengan pegawai bernomor

‘7788’ , data nomer department tersebut

harus diubah menjadi data yang sama

96

dengan nomer department yang dimiliki

oleh pegawai bernomor ‘7788’;

Hasil Percobaan :

Gambar 6.26 Tampilan table department

97

BAB VII

ADVANCED QUERY : PEMILIHAN DAN PENGURUTAN DATA

Baris-baris data yang dihasilkan dari suatu query

dapat dibatasi dengan memberikan klausa WHERE. Bentuk

umumnya sebagai berikut :

SELECT [DISTINCT {*,column[alias], ...} FROM table[WHERE

condition(s)];

Operator LIKE digunakan untuk membentuk pencarian

string yang sesuai dengan nilai yang dicantumkan pada

kondisi. Kondisi pencarian dapat berisi karakter atau

bilangan, dan 2 (dua) symbol khusus berikut :

1. % à menotasikan zero atau banyak karakter

2. _ à menotasikan satu karakter

98

Operator logika mengkombinasikan hasil dari dua

komponen kondisi 3 (tiga) macam operator logika yang

tersedia, yaitu :

1. AND : akan bernilai benar jika semua kondisi

benar

2. OR : akan bernilai benar jika salah satu

dari kondisi bernilai benar

3. NOT : akan bernilai

Klausa ORDER BY digunakan untuk mengurutkan data

hasil query. Terdapat 2 (dua) jenis yaitu :

1. ASC (Ascending – urut naik)

2. DESC (Descending – urut turun)

Secara default jika tidak ditampilkan maka dianggap

urut naik .

7.1Percobaan Menampilkan Nama, Pekerjaan, Dan Nomer

Department Dari Table Pegawai, Untuk Pegawai Yang

Pekerjaannya = “Clerk”

SQL : select ename, job, deptno FROM EMP WHERE

job=’CLERK’;

Penjabaran : Tampilkan kolom ename, job, depno dari

table emp dimana pegawai mempunyai

pekerjaan clerk;

Hasil Percobaan :

99

Gambar 7.1 Tampilan kolom ename,job,deptno dari table emp

7.2Percobaan Menampilkan Data Pegawai Yang Tanggal

Mulai Bekerjanya ’02-Apr-81’

SQL : select * FROM EMP WHERE hiredate=’02-APR-81’;

Penjabaran : Tampilkan seluruh data pegawai dari

table emp yang mulai bekerja mulai

tanggal 02-apr- 81;

Hasil Percobaan :

Gambar 7.2 Tampilan data pegawai dari table emp

7.3Percobaan Menampilkan Nama, Gaji Dan Komisi Dari

Pegawai Yang Nilai Komisinya lebih Besar Daripada

Gajinya

SQL : SELECT ename, sal, comm FROM EMP WHERE comm>sal;

100

Penjabaran : Tampilkan kolom ename, sal, comm dari

table emp dimana table comm Lebih besar

dari table sal;

Hasil Percobaan :

Gambar 7.3 Tampilan kolom ename,sal,comm dari table emp

7.4Percobaan Menampilkan Nama Dan Gaji Dari Pegawai

Yang Gajinya Antara 1000 Dan 1500

SQL : SELECT ename, sal FROM EMP WHERE sal BETWEEN 1000AND 1500;

Penjabaran : Tampilkan kolom ename, sal dari table

emp dimana table sal memiliki nilai

antara 1000 sampai 1500;

Hasil Percobaan :

Gambar 7.4 Tampilan kolom ename, sal dari table emp

101

7.5Percobaan Menampilkan Nomer Karyawan, Nama, Gaji

Dan Manager Dari Pegawai Dengan Nomer Karyawan

‘7902, 7566, Dan 7788’

SQL : SELECT ename, sal, mgr FROM EMP WHERE mgr IN(7902, 7566, 7788);

Penjabaran : Tampilkan kolom ename, sal, mgr dari

table emp dimana table mgr memiliki

nilai no 7902, 7566, 7788;

Hasil Percobaan :

Gambar 7.5 Tampilan kolom ename, sal, mgr dari table emp

7.6Percobaan Menampilkan Nama, Dan Tanggal Mulai

Bekerja Dari Pegawai Yang Tangal Mulai Kerjanya Di

Tahun 1981

SQL : SELECT ename, hiredate FROM EMP WHERE hiredateLIKE ‘%81’;

Penjabaran : Tampilkan kolom ename, hiredate dari

table emp dimana kolom hiredatenya

memiliki angka akhir 81;

Hasil Percobaan :

102

Gambar 7.6 Tampilan kolom ename, hiredate dari table emp

7.7Percobaan Menampilkan Nama Pegawai Yang Mengandung

Karakter ‘A’ Sebagai Huruf Kedua Dari Nama Pegawai

Tersebut

SQL : SELECT ename FROM EMP WHERE ename LIKE ‘_A%;

Penjabaran : Tampilkan kolom ename, hiredate dari

table emp dimana kolom ename memiliki

huruf tengah A;

Hasil Percobaan :

Gambar 7.7 Tampilan kolom ename dari table emp

103

7.8Percobaan Menampilkan Nama Pegawai Yang Merupakan

Manajer Perusahaan ( Ditandai Dengan Kolom Mgr =

Null )

SQL : SELECT ename FROM EMP WHERE mgr IS NULL;

Penjabaran : Tampilkan ename dari tabel emp dimana

kolom mgr adalah NULL;

Hasil Percobaan :

Gambar 7.8 Tampilan kolom ename dari table emp dimana kolom mgr

adalah NULL

7.9Percobaan Menampilkan Nomer, Nama, Pekerjaan Dan

Gaji Dari Pegawai Yang Memiliki Gaji Lebih Dari

1000 Dan Pekerjaannya Adalah ‘Clerk’

SQL : SELECT empno, ename, job, sal FROM EMP WHEREsal>1000 AND job=’CLERK’;

Penjabaran : Tampilkan kolom empno, ename, job, sal

dari tabel emp dimana kolom sal

memiliki gaji lebih dari 1000 dan kolom

job memiliki pekerjaan clerk ;

Hasil Percobaan :

104

Gambar 7.9 Tampilan kolom empno,ename,job,sal dari table emp

7.10 Percobaan Menampilkan Nomer, Nama, Pekerjaan Dan

Gaji Dari Pegawai Yang Memiliki Gaji Lebih Dari

1000 Atau Pekerjaannya Adalah Clerk’

SQL : SELECT empno, ename, job, sal FROM EMP WHEREsal>1000 OR job=’CLERK’;

Penjabaran : Tampilkan kolom empno, ename, job,

sal dari tabel emp dimana kolom sal

memiliki gaji lebih dari 1000 atau

kolom job memiliki pekerjaan clerk ;

Hasil Percobaan :

105

Gambar 7.10 Tampilan kolom empno,ename,job,sal dari table emp

dengan logika or

7.11 Percobaan Menampilkan Nama Dan Pekerjaan Pegawai

Yang Pekerjaannya Bukan ‘Clerk’, ‘Manager’ Dan

‘Analyst’

SQL : SELECT ename, job FROM EMP WHERE job NOT IN(’CLERK’,’MANAGER’,’ANALYST’);

Penjabaran : Tampilkan kolom ename, job dari tabel

emp dimana kolom job memiliki pekerjaan

selain clerk, manager dan analyst ;

Hasil Percobaan :

Gambar 7.11 Tampilan kolom ename,job dari table emp

106

7.12 Percobaan Menampilkan Nama, Pekerjaan, Nomer

Departement, Tanggal Mulai Bekerja Seorang Pegawai

Dengan Urutan Menaik Berdasarkan Tanggal Mulai

Kerja

SQL : SELECT ename, job, deptno, hiredate FROM EMPORDER BY hiredate;

Penjabaran : Tampilkan ename, job, deptno, hiredate

dari tabel EMP dimana data diurutkan

berdasar hiredate;

Hasil Percobaan :

Gambar 7.12 Tampilan Penggunaan ORDER BY urutan naik

7.13 Percobaan Menampilkan Nama, Pekerjaan, Nomer

Departement, Tanggal Mulai Bekerja Seorang Pegawai

107

Dengan Urutan Menurun Berdasarkan Tanggal Mulai

Kerja

SQL : SELECT ename, job, deptno, hiredate FROM EMPORDER BY hiredate DESC;

Penjabaran : Tampilkan ename, job, deptno, hiredate

dari tabel EMP dimana data diurutkan

secara menurun berdasar hiredate ;

Hasil Percobaan :

Gambar 7.13 Tampilan Penggunaan ORDER BY urutan menurun

7.14 Percobaan Menampilkan Nomer, Nama, Dan Gaji

Pegawai Selama Setahun ( Beri Nama Kolom Gaji Ini

Dengan ‘Gaji_Setahun’ )

108

SQL : SELECT empno,ename, job, sal*12 gaji_setahunFROM EMP ORDER BY gaji_setahun;

Penjabaran : Tampilkan empno, ename, dan sal * 12

ganti nama kolom menjadi gaji_satahun

dari tabel emp dan urutkan datanya

pada kolom gaji_satahun;

Hasil Percobaan :

Gambar 7.14 Tampilan tabel empno, ename, sal dari tabel emp

7.15 Percobaan Menampilkan Nama, Nomer Departemen, Dan

Gaji Pegawai Dari Table Emp Serta Urutkan

Berdasarkan Nomer Departemen Dan Besarnya Gaji

Dalam Urutan Menurun

SQL : SELECT empno,ename, sal FROM EMP ORDER BY salDESC;

Penjabaran : Tampilkan ename, deptno, sal dari

tabel emp serta urutkan menurun pada

kolom deptno, sal;

Hasil Percobaan :

109

Gambar 7.15 Tampilan Pengurutan yang melibatkan dua kolom atau

lebih

BAB VIII

ADVANCED QUERY : FUNGSI BARIS TUNGGAL DAN

FUNGSI MULTI BARIS

110

Fungsi fungsi sangat mendukung fitur pada SQL :

a. Melakukan perhitungan perhitungan pada data

b. Memodifikasi item item data individual

c. Memanipulasi keluaran dari kelompok baris baris

d. Format untuk tampilan tanggal dan angka angka

e. Konversi tipe data tipe data kolom

Ada dua tipe dari fungsi fungsi :

1. Single rows functions (fungsi baris tunggal)

Fungsi fungsi ini hanya digunakan pada baris baris

tunggal dan mengembalikan satu hasil per baris.

Ada tipe tipe berbeda dari singlerow functions. Single

row function mencakup hal hal berikut :

a. Character (karakter)

b. Number (angka)

a. Date (tanggal)

b. Conversion (konversi)

c. General (umum)

Singlerow function digunakan untuk memanipulasi item item

data. Singlerow functions menerima satu atau lebih argument

argument dan mengembalikan satu nilai untuk setiap

baris yang dihasilkan oleh suatu query. Suatu argumen

dapat berupa berikut ini :

111

a. Usersupplied constant (Konstanta yang disediakan oleh

user)

b. Nilai variable

c. Nama Kolom

d. Ekspresi

Fitur fitur dari singlerow functions mencakup :

a. Aksi pada setiap baris yang dikembalikan di dalam

query

b. Mengembalikan satu hasil per baris

c. Memungkinkan pengembalian suatu nilai data dari

suatu tipe berbeda daripada satu yang

direferensikan.

d. Mungkin menerima satu atau lebih argument argumen

e. Dapat digunakan didalam klausa klausa SELECT, WHERE,

dan ORDER BY;dapat disarangkan (nested)

2. Multiple row functions (fungsi banyak baris)

Fungsi fungsi dapat memanipulasi kelompok dari baris

baris untuk memberi suatu hasil baris baris per

kelompok. Fungsi fungsi ini dikenal juga sebagai group

functions .

8.1Percobaan Menampilkan Nama, Gaji, Komisi, Dan

Selisih Pembagian Gaji Dibagi Komisi

SQL : SELECT ename, sal, comm., NVL(comm.,0), MOD(sal,NVL(comm,0)) FROM EMP ;

112

Penjabaran : Tampilkan ename, sal, comm. beri nilai

nvl , mod dari tabel emp;

Hasil Percobaan :

Gambar 8.1 Tampilan kolom ename , sal, comm yang bernilai nvl

8.2Percobaan Menampilkan Nama Dan Pekerjaan Pegawai

(Kolom Digabung), Panjang Dari Nama Pegawai, Dan

Posisi Keberapa Huruf ‘A’ Dalam Nama Pegawai

SQL : SELECT concat(ename,job), LENGTH(ename), INSTR

(ename,’A’) FROM EMP ;

Penjabaran : Tampilkan dan gabung kolom ename dan

job, hitung panjang ename dan posisi

berapa karakter A pada ename sehingga

tampilan kolom menjadi

concat(ename,jo), LENGTH(ename),

INSTR(ename,’A’) dari tabel EMP;

Hasil Percobaan :

113

Gambar 8.2 Tampilan menggabungkan kolom ename dan job

8.3Percobaan Untuk Semua Pegawai Yang Telah Bekerja

Kurang Dari 200 Bulan, Tampilkan Nomer Pegawai,

Tanggal Mulai Kerja, Jumlah Bulan Pegawai Tsb Telah

Bekerja, 6-Bulan Setelah Bekerja, Hari Jum’at

Pertama Setelah Tanggal Mulai Kerja, Dan Tanggal

Terakhir Dari Bulan Pada Saat Dia Mulai Bekerja

SQL : SELECT empno, hiredate, MONTHS_BETWEEN(SYSDATE,

hiredate) TENURE, ADD_MONTHS(hiredate,6)REVIEW,

NEXT_DAY(hiredate,’JUMAT’),LAST_DAY(hiredate)FROM

EMP WHERE MONTHS_BETWEEN(SYSDATE,hiredate)<400;

Penjabaran : Tampilkan empno, hiredate berdasar

SYSDATE dan kolom menjadi TENURE,

tambahkan 6 bulan ganti kolom menjadi

REVIEV, hari mulai FRIDAY sampai

tanggal terakhir dari tabel EMP dimana

SYSDATE, hiredate kurang dari 400;

Hasil Percobaan :

114

Gambar 8.3 Tampilan empno, hiredate berdasar sysdate dan kolom

menjadi tenure

8.4Percobaan Menampilkan Nama Pegawai Dan Jumlah

Berapa Minggu Pegawai Tersebut Bekerja

SQL : SELECT ename,(SYSDATE-hiredate)/7 WEEKS FROM EMP;

Penjabaran : Tampilkan ename, sysdate-hiredate/7

weeks dari tabel emp;

Hasil Percobaan :

Gambar 8.4 Tampilan ename, sysdate-hiredate/7 weeks dari tabel emp

115

8.5Percobaan Menampilkan Nama Dan Tanggal Mulai

Bekerja Dari Pegawai Dengan Format Tanggal ‘fmDD

Month YYYY’

SQL : SELECT ename,TO_CHAR(hiredate,’fmDD Month YYYY’

FROM EMP;

Penjabaran : Tampilkan ename, hiredate yang sudah

diubah format menjadi TO_CHAR sehingga

menjadi (hiredate,’fmDD Month YYYY) dari

tabel EMP;

Hasil Percobaan :

Gambar 8.5 Tampilan ename yang sudah diformat

8.6Percobaan Menampilkan Nama Dan Tanggal Mulai

Bekerja Dari Pegawai Dengan Format Tanggal ‘fmDdspth

“Of” Month YYYY fmHH:MI:SS AM’

SQL : SELECT ename,TO_CHAR(hiredate, ‘fmDdspth “Of” MonthYYYY fmHH:MI:SS AM’)FROM EMP;

116

Penjabaran : Tampilkan ename, hiredate yang sudah

diubah format menjadi TO_CHAR sehingga

menjadi (hiredate, ‘fmDdspth “Of” Month

YYYY fmHH:MI:SS AM’) dari tabel EMP;

Hasil Percobaan :

Gambar 8.6 Tampilan ename, hiredate yang diformat menjadi to_char

8.7Percobaan Menampilkan Gaji Pegawai Dengan Format

‘$99,999’ Untuk Pegawai Yang Bernama ‘Scott’

SQL : SELECT ename,TO_CHAR(sal,’$99,999’) GAJI FROM EMP

WHERE ename=’SCOTT’;

Penjabaran : Tampilkan sal yang sudah diubah format

ke TO_CHAR sehingga menjadi sal,’$99,999

ubah kolom menjadi GAJI dari tabel EMP

dimana ename sama dengan SCOTT;

Hasil Percobaan :

117

Gambar 8.7 Tampilan sal yang diformat menjadi to_char

8.8Percobaan Menampilkan Nama, Gaji, Komisi, Dan Gaji

Setahun Ditambah Dengan Komisi Dari Semua Pegawai

SQL : SELECT ename, sal, comm, (sal*12)+NVL(comm.,0) FROM

EMP;

Penjabaran : Tampilkan ename, sal, comm, dan pada

sal *12+ nvl (comm,0) dari tabel emp;

Hasil Percobaan :

Gambar 8.8 Tampilan kolom ename,sal,comm sal *12+ nvl (comm,0)

dari tabel emp

118

8.9Percobaan Menampilkan Pekerjaan Dan Gaji Pegawai,

Serta Gaji Pegawai Yang Direvisi Dengan Judul Kolom

‘Revisi_Gaji’. Gaji Yang Direvisi Berisi Formula :

Jika Jenis Pekerjaannya ‘Analyst’ Kenaikan Gajinya

10%, Jika Jenis Pekerjaannya ’Clerk’ Maka Kenaikan

Gajinya 15%, Dan Jika Jenis Pekerjaannya ‘Manager’

Maka Kenaikan Gajinya 20%, Untuk Jenis Pekerjaan

Selain Dari Ketiga Pekerjaannya Tersebut Gajinya

Tetap (Tidak Direvisi)

SQL : SELECT job, sal, DECODE(job, ‘ANALIST’, sal*1.1,

‘CLERK’, sal*1.15, ‘MANAGER’, sal*1.2,SAL)

REVISI_GAJI FROM EMP;

Penjabaran : Tampilkan job, sal, decode dari job

dimana analyst sal*1.1, clerk sal*1.15

dan manager sal*1.2 beri nama kolom

revisi_gaji dari tabel emp;

Hasil Percobaan :

119

Gambar 8.9 Tampilan job, sal, decode dari job dimana analyst

8.10 Percobaan Menampilkan Data Pegawai Yang Tidak

Memiliki Manager. Kolom Yang Ditampilkan Adalah

Nama Pegawai, Dan Kolom Manager (Mgr) Yang Sudah

Dikonversi Ke Karakter Dan Diberi Keterangan ‘Tidak

Punya Manager’

SQL : SELECT ename, NVL(TO_CHAR(mgr), ‘Tidak punya

manager’)FROM EMP WHERE mgr IS NULL;

Penjabaran : Tampilkan ename, mgr yang bernilai NVL

dan diubah format ke TO_CHAR serta beri

keterangan ’Tidak punya manager’ dari

tabel EMP dimana mgr adalah NULL;

Hasil Percobaan :

Gambar 8.10 Tampilan ename, mgr yang bernilai NVL dan diubah

format ke TO_CHAR

BAB IX

ADVANCED QUERY : MENAMPILKAN DATA DARI BANYAK

TABEL

120

Seringkali kita perlu menggunakan data yang

berasal dari banyak table, tidak hanya berasal

dari satu table saja, semisal :

a. Nomer pegawai (empno) hanya ada di table pegawai

(EMP)

b. Nomer department (deptno) ada di table pegawai

(EMP) dan table department (DEPT).

c. Nama lokasi department (LOC) hanya ada di table

department (DEPT)

Untuk mendapatkan data dari dua atau lebih table,

maka table-tabel tersebut harus dihubungkan terlebih

dahulu, atau dengan kata lain harus dilakukan JOIN

terlebih dahulu

Bentuk umum JOIN :

Ada 2 (dua) tipe utama join, yaitu equi-join dan

non-equijoin. Metode join lainnya meliputi : outer

join dan self join.

9.1Percobaan Menampilkan Nama Pegawai Dan Nama

Department Tempat Dimana Pegawai Tersebut Bekerja

SQL : SELECT ename, dname FROM EMP,DEPT;

Penjabaran : Tampilkan kolom ename, dname dari tabel

emp dan dept;

121

SELECT table1.column, table2.column FROM tabel1, tabel2

WHERE tabel1.column = table2.column;

Hasil Percobaan :

Gambar 9.1 Tampilan kolom ename dan dname

9.2Percobaan Menampilkan Nomer Pegawai, Nama Pegawai,

Nomer Department, Dan Lokasi Department

SQL : SELECT emp.empno, emp.ename, emp.deptno, dept.loc

FROM emp, dept WHERE emp.deptno=dept.deptno;

Penjabaran : Tampilkan data kolom empno pada tabel

emp, ename pada tabel emp, deptno pada

tabel emp,loc pada tabel dept dari tabel

emp dan dept dimana kolom deptno pada

tabel emp sama dengan kolom deptno pada

tabel dept;

Hasil Percobaan :

122

Gambar 9.2 Tampilan kolom empno,ename,deptno,loc

9.3Percobaan Menampilkan Nomer Pegawai, Nama Pegawai,

Nomer Department, Dan Lokasi Department Dari Pegawai

Yang Bernama ‘King’

SQL : SELECT emp.empno, emp.ename, emp.deptno, dept.loc

FROM emp, dept(ename)= WHERE emp.deptno=dept.deptno

AND INITCAP(ename)=’King’;

Penjabaran : Tampilkan data kolom empno pada tabel

emp, ename pada tabel emp, deptno pada

tabel emp, loc pada tabel dept dari

tabel emp dan dept dimana kolom deptno

pada tabel emp sama dengan kolom deptno

pada tabel dept dan (di tampilkan

dengan huruf besar didepan) data pada

kolom ename = ‘KING’;

Hasil Percobaan :

123

Gambar 9.3 Tampilan kolom empno,ename,deptno,loc dengan menambah

operator and

9.4Percobaan Menampilkan Nama Pegawai, Gaji Dan Grade

Dari Gaji Pegawai Tersebut (Grade Ada Pada Table

Salgrade)

SQL : SELECT e.ename, e.sal, s.grade FROM emp e, SALGRADE

s WHERE e.sal BETWEEN s.losal AND s.hisal

Penjabaran : Tampilkan data kolom ename pada tabel

e, sal pada tabel e, grade pada tabel s

dari tabel emp alias e, tabel salgrade

alias s dimana isi kolom sal pada tabel

e antara kolom losal pada tabel s dan

kolom hisal pada tabel s. nama pegawai,

gaji, grade dari tabel emp alias e

dan tabel salgrade alias s gaji.

antara losal dan hisal pada tabel

salgrade;

Hasil Percobaan :

124

Gambar 9.4 Tampilan data dengan relasi non equijoin

9.5Percobaan Menampilkan Nama Pegawai, Gaji Dan Grade

Dari Gaji Pegawai Tersebut (Grade Ada Pada Table

Salgrade)

SQL : SELECT e.ename PEGAWAI, e.ename MANAJER FROM EMP e,

EMP m WHERE e.mgr=m.empno AND e.ename=’BLAKE”;

Penjabaran : Tampilkan data pada kolom ename dari

tabel e alias pegawai, kolom mgr pada

tabel m alias menejer dari tabel emp

alias e, tabel emp alias m dimana data

pada kolom mgr dari tabel e = data

pada kolom empno dari tabel m dan

enamenya = ‘blake’;

Hasil Percobaan :

125

Gambar 9.5 Tampilan kolom pegawai dan manajer

BAB X

SUB QUERY PADA BARIS DAN KOLOM

Subquery adalah perintah SELECT yang berada di dalam

perintah SQL lain. Subquery sangat berguna ketika kita

ingin menampilkan data dengan kondisi yang bergantung

pada data di dalam table itu sendiri.

Kegunaan-kegunaan  Subquery dalam memanipulasi data:

a. Meng-copy data dari satu tabel ke tabel lain

b. Menerima data dari inline view

c. Mengambil data dari tabel lain untuk kemudian di

update ke tabel yang dituju

d. Menghapus baris dari satu tabel berdasarkan baris

dari tabel lain.

10.1 Percobaan Menampilkan Nama Pegawai Yang Memiliki

Gaji Lebih Besar Daripada Pegawai Dengan Nomer

Pegawai 7566

126

SQL : SELECT ename FROM EMP WHERE sal > ( SELECT sal

FROM EMP WHERE empno=7566);

Penjabaran :Tampilkan kolom ename dari tabel emp

dimana isi data kolom sal lebih besar

dari kolom sal dari tabel emp dimana

isi kolom empno=7566;

Hasil Percobaan :

Gambar 10.1 Tampilan kolom ename dari table emp

10.2 Percobaan Menampilkan Nama, Dan Pekerjaan Dari

Pegawai Yang Memiliki Pekerjaan Yang Sama Dengan

Pegawai Dengan Nomer Pegawai = 7369

SQL : SELECT ename, job FROM EMP WHERE job=( SELECT job

from emp where empno=7369);

Penjabaran :Tampilkan kolom ename,job dari tabel

emp dimana isi data kolom job sama

dengan hasil ambil data kolom job dari

tabel emp dimana isi kolom empno=7369;

Hasil Percobaan :

127

Gambar 10.2 Tampilan kolom ename, job dari table emp

10.3 Percobaan Menampilkan Nama, Dan Pekerjaan Dari

Pegawai Yang Memiliki Pekerjaan Yang Sama Dengan

Pegawai Dengan Nomer Pegawai = 7369 Dan Memiliki

Gaji Yang Lebih Besar Daripada Pegawai Dengan Nomer

Pegawai = 7876

SQL : SELECT ename, job FROM EMP WHERE job= ( SELECT

job from emp WHERE empno=7369)AND sal > (select

sal from emp WHERE empno=7876);

Penjabaran :Tampilkan kolom ename,job dari tabel

emp dimana isi data kolom job sama

dengan hasil ambil data kolom job dari

tabel emp dimana isi kolom empno=7369

dan isi data kolom sal lebih besar

dari hasil ambil data kolom sal dari

tabel emp dimana isi kolom empno=7876;

Hasil Percobaan :

128

Gambar 10.3 Tampilan kolom ename, job table emp

10.4 Percobaan Menampilkan Nama, Pekerjaan Dan Gaji

Dari Pegawai Yang Memiliki Gaji Yang Paling Kecil

(Minimum)

SQL : SELECT ename, job, sal FROM EMP WHERE sal=

( SELECT MIN(SAL)FROM EMP);

Penjabaran :Tampilkan kolom ename,job,sal dari

tabel emp dimana isi data kolom sal

sama dengan hasil ambil data gaji

minimal dari tabel emp;

Hasil Percobaan :

Gambar 10.4 Tampilan kolom ename, job,sal table emp

10.5 Percobaan Menampilkan Nomer Department, Dan Gaji

Minimum Pada Tiap-Tiap Department Yang Memiliki

129

Gaji Minimum Yang Lebih Besar Daripada Gaji Minimum

Pada Department Dengan Nomer Department = 20

SQL : SELECT deptno, MIN(sal)FROM EMP GROUP BY deptno

HAVING MIN(sal) > (SELECT MIN(sal)FROM EMP WHERE

deptno=20);

Penjabaran :Tampilkan kolom deptno,min(sal) dari

tabel emp diurutkan dengan kolom

deptno yang memiliki min(sal) lebih

besar dari nilai ambil min(sal) dari

tabel emp dimana isi kolom deptno=20;

Hasil Percobaan :

Gambar 10.5 Tampilan kolom ename, job,min(sal) dari table emp

10.6 Percobaan Menampilkan Pekerjaan Dan Rata-Rata Gaji

Dari Pekerjaan Yang Memiliki Rata-Rata Gaji Yang

Paling Kecil

SQL : SELECT job, AVG(sal)FROM EMP GROUP BY job HAVING

AVG(sal) = (SELECT MIN(AVG(sal))FROM EMP GROUP BY

job);

Penjabaran :Tampilkan kolom job,AVG(sal) dari

tabel emp diurutkan menurut job yang

memiliki AVG(sal) sama dengan nilai

130

dari ambil data MIN(sal) dari tabel

emp yang diurutkan menurut kolom job;

Hasil Percobaan :

Gambar 10.6 Tampilan kolom ename, avg(sal) dari table emp

10.7 Percobaan Menampilkan Nama, Gaji, Dan Nomer

Department Dari Pegawai Yang Memiliki Gaji Yang

Sama Dengan Gaji Minimum Pada Suatu Department

SQL : SELECT ename, sal, deptno FROM EMP WHERE sal IN

(SELECT MIN(sal)FROM EMP GROUP BY deptno);

Penjabaran :Tampilkan kolom ename, deptno dari

tabel emp dimana sal termasuk dalam

nilai dari ambil MIN(sal) dari tabel

emp yang diurutkan berdasarkan kolom

deptno;

Hasil Percobaan :

Gambar 10.7 Tampilan kolom ename, sal, deptno dari table emp

131

10.8 Percobaan Menampilkan Data Pegawai Yang Memiliki

Gaji Yang Lebih Kecil Dari Sembarang Orang Yang

Pekerjaannya ‘Clerk’ , Dan Pekerjaan Pegawai

Tersebut Bukan ‘Clerk’. Data Pegawai Yang

Ditampilkan Yaitu Nomer, Nama, Dan Pekerjaan

Pegawai

SQL : SELECT empno,ename,job FROM EMP WHERE sal < ANY

(SELECT sal FROM EMP WHERE job=’CLERK’)AND job <>

’CLERK’;

Penjabaran :Tampilkan kolom empno,ename,job dari

tabel emp dimana nilai dari kolom sal

lebih besar dari ambil data dari kolom

sal dari tabel emp dimana job=clerk

dan job tidak sama dengan clerk;

Hasil Percobaan :

Gambar 10.8 Tampilan kolom empno,ename,job dari table emp

132

10.9 Percobaan Menampilkan Data Pegawai Yang Memiliki

Gaji Yang Lebih Besar Daripada Rata-Rata Gaji Dalam

Tiap Department. Data Pegawai Yang Ditampilkan

Yaitu Nomer, Nama, Dan Pekerjaan Pegawai

SQL : SELECT empno,ename,job FROM EMP WHERE sal < ALL

(SELECT AVG(sal)FROM EMP GROUP BY deptno);

Penjabaran :Tampilkan kolom empno,ename,job dari

tabel emp dimana nilai sal lebih besar

dari semua nilai dari ambil data

AVG(sal) dari tabel emp yang diurutkan

menurut nilai kolom deptno;

Hasil Percobaan :

Gambar 10.9 Tampilan kolom empno,ename,job dengan operator all

dari table emp

Operator ALL membandingkan suatu nilai dengan semua

nilai yang ada dalam subquery.

Operator >ALL ekuivalen dengan MAKSIMUM.

Operator <ALL ekuivalen dengan MINIMUM.

133

10.10 Percobaan Menampilkan Nomor Pegawai, Nama

Pekerja, Nomor Manager, Nomor Departemen Dimana

(Nomor Manager Dan Nomor Departemen) Sama Dengan

(Nomor Manager Dan Nomor Departemen) Dari Pegawai

Yang Memiliki Nomer Pegawai 7499

SQL : SELECT EMPNO,ENAME,MGR,DEPTNO FROM EMP WHERE

(MGR,DEPTNO) IN (SELECT MGR,DEPTNO FROM EMP

WHERE EMPNO=7499)AND EMPNO <> 7499;

Penjabaran :Tampilkan kolom

empno,ename,mgr,deptno dari tabel emp

dimana nilai mgr termasuk dalam nilai

hasil ambil data kolom mgr dari tabel

emp dimana nilai empno=7499 dan

deptno termasuk dalam nilai hasil

ambil data kolom deptno dari tabel

emp dimana nilai empno=7499 dan nilai

empno tidak sama dengan 7499;

Hasil Percobaan :

Gambar 10.10 Tampilan kolom empno,ename,mgr,deptno dari table emp

134

10.11 Percobaan Menampilkan Nomor Pegawai, Nama

Pekerja, Nomor Manager, Nomor Departemen Dimana

Nomor Manager Dan Nomor Departemennya Sama Dengan

Nomor Manager Dan Nomor Departemen Dari Pegawai

Yang Memiliki Nomer Pegawai 7499

SQL : SELECT EMPNO,ENAME,MGR,DEPTNO FROM EMP WHERE MGR

IN (SELECT MGR FROM EMP WHERE RMPN=7499) AND

DEPTNO IN (SELECT DEPTNO FROM EMP WHERE

EMPNO=7499) AND EMPNO<>7499;

Penjabaran :Tampilkan kolom

empno,ename,mgr,deptno dari tabel emp

dimana nilai mgr termasuk dalam nilai

hasil ambil data kolom mgr dari tabel

emp dimana nilai empno=7499 dan

deptno termasuk dalam nilai hasil

ambil data kolom deptno dari tabel

emp dimana nilai empno=7499 dan nilai

empno tidak sama dengan 7499;

Hasil Percobaan :

Gambar 10.11 Tampilan Subquery dengan banyak kolom pada table emp

135

10.12 Percobaan Menampilkan Nama Pegawai, Gaji,

Nomer Department, Dan Rata-Rata Gaji Untuk Semua

Pegawai Yang Memiliki Gaji Lebih Besar Dari Rata-

Rata Gaji Pada Department Tempatnya Bekerja

SQL : SELECT a.ename, a.sal, a.deptno, b.salavg FROM

EMP a,(SELECT deptno,AVG(sal) salavg FROM EMP

GROUP BY deptno) b WHERE a.deptno=b.deptno AND

a.sal > b.salavg;

Penjabaran :Tampilkan kolom ename dari tabel a,

sal dari tabel a, deptno dari tabel

a, salavg dari tabel a dari tabel

emp yang diurutkan menurut nilai

deptno pada tabel b dimana kolom

deptno pada tabel a sama dengan nilai

kolom deptno pada tabel b dan nilai

sal dari tabel a, lebih besar dari

nilai salavg pada tabel b;

Hasil Percobaan :

Gambar 10.12 Tampilan kolom ename,sal,deptno,salavg pada table emp

136

BAB XI

PENUTUP

11.1 KESIMPULAN

Basis data Oracle adalah basis data relasional

yang terdiri dari kumpulan data dalam suatu sistem

manajemen basis data RDBMS. Perusahaan perangkat lunak

Oracle memasarkan jenis basis data ini untuk bermacam-

macam aplikasi yang bisa berjalan pada banyak jenis dan

merk perangkat keras komputer (platform).

137

Operasi standar sebuah database adalah insert, delete

dan update. Ketiganya biasa disebut DML kependekan dari

Data Manipulation Language. SQL merupakan bahasa

standar untuk pengolahan database. Tentunya Oracle-pun

menggunakan SQL, hanya saja ada beberapa karakteristik

yang berbeda dengan SQL standar.

11.2 SARAN

Secara umum praktikum ini berjalan dengan sangat

efektif dan efesien, karena disamping mahasiswa

melakukan pendalaman materi yang didapatkan dari kelas,

mahasiswa juga diberi latihan-latihan untuk pemahaman

lebih lanjut .

Dalam praktikum ini diharapkan selain pembimbing,

asisten pembimbing juga bisa memberikan penjelasan

kepada mahasiswa mengenai praktikum yang diberikan agar

mahasiswa tidak menunggu giliran pembimbing untuk

menjelaskan .

DAFTAR PUSTAKA

138

http://www.mediafire.com/view/?126cuwace6a04xq

http://risnotes.com/2012/01/sequence/

http://risnotes.com/2012/01/index/

http://risnotes.com/2012/01/sinonim/

http://ranafatinhexi.blogspot.com/2013/03/view-pada-

oracle.html

http://oracle1st.wordpress.com/2009/06/05/insert-

update-delete-oracle/

http://id.wikipedia.org/wiki/Basis_data_Oracle

http://hilmimi090057.blogspot.com/2011/10/resume-sql-1-

pert3.html

http://catatankuliahum.blogspot.com/2013/02/sub-query-

basis-data.html

http://naraminato.wordpress.com/online-training-php-

oracle/pengertian-oracle/

http://doylp.tripod.com/ora-adm/ora-adm-1.html

http://www.atwiwit.net/2013/10/pengertian-database.html

139

LAMPIRAN

140