Menggunakan Set Operators

dokumen-dokumen yang mirip
Perkenalan SQL. Ada empat macam tipe database yaitu hirarki, jaringan, relasional, dan objek.

Arsitektur Basis Data Oracle

STRUCTURE QUERY LANGUAGE DDL & DML

Oracle Academic Initiative

Esson Sihombing, S.Kom. Lab. Basisdata 1 Sistem Informasi UNIKOM 2013

MODUL 4. Query SELECT dan DML (INSERT, UPDATE, DELETE) PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

Oracle Academic Initiative

Tutorial Database Oracle Chapter4 Pembatasan dan Pengurutan

Bab 3. Query Lanjutan POKOK BAHASAN: TUJUAN BELAJAR:

PRACTISE

Menggunakan Subquery untuk Memecahkan Query Query

Tutorial Database Oracle Chapter3 Menampilkan Data Menggunakan Perintah SQL SELECT

BAB 2 : Dasar Penulisan Statemen SQL Sasaran Mengetahui kemampuan dari SQL SELECT Statement Dapat membuat perintah SQL dengan SELECT Statement

B a s i s D a t a C H A P T E R. SQL Operasi DML. Arif Basofi PENS 2015

Oracle Academic Initiative

B a s i s D a t a. Tatap MUka. SQL Query & Agregate Function. Arif Basofi PENS

Oracle Academic Initiative

Oracle Academic Initiative

Oracle Academic Initiative

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

Oracle Academic Initiative

Oracle Academic Initiative

Bab 5. Database Trigger POKOK BAHASAN: TUJUAN BELAJAR: 5.1. PENDAHULUAN

Pertemuan 10 Structure Query Language(SQL)

Modul 3 : Query Penggabungan Tabel

Sub Query. Rosa Ariani Sukamto Blog: Website:

Oracle Academic Initiative

MODUL 5. Advanced Query : Pemilihan dan Pengurutan Data PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

PERTEMUAN 2 PEMILIHAN DAN PENGURUTAN DATA

Melaporkan Data Agreget Menggunakan Group Functions

Basis Data 1. Dasar SQL Query. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

DATABASE - MySQL. Muhammad Zen S. Hadi, ST. MSc.

B a s i s D a t a - 1 C H A P T E R. SQL Lanjutan 1. Copyright 2005 PENS-ITS

Oracle Academic Initiative

PERTEMUAN 10 PEMBUATAN TABEL

B a s i s D a t a - 1 C H A P T E R SQL. Function & Agregat. Copyright 2005 PENS-ITS

Apa yang akan dibahas? Pengertian SQL Penggolongan Statement SQL Aturan Gramatika SQL Struktur Dasar SQL Query Satu (1) Tabel

BAB 4 : Interaksi PL/SQL dengan Oracle Server

SUBQUERY-2. MI2154 SQL LANJUT Dedy Rahman Wijaya, S.T., M.T., OCA

Pertemuan DDL INDIKATOR. Modul Teori Database Aknela

PERTEMUAN 8 PENGATURAN OUTPUT PADA SQL*PLUS

Oracle Academic Initiative

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

Oracle Academic Initiative

Fungsi Single-Row. Fungsi merupakan fitur paling dibutuhkan dari SQL yang dapat digunakan untuk:

@Tessy Badriyah, SKom. MT. PERTEMUAN 12 VIEW

IKG2I4 / Software Project I

15-Jan DATABASE - MySQL. Database. Constraints. Tujuan: Memahami perintah-perintah dasar DDL dan DML

PERINTAH SQL DAN INTERKONEKSI PHP-MySQL

CONSTRAINT clients_client_num_pk PRIMARY KEY (client_number));

MODUL 1. Pembuatan tabel, pendefinisian constraint, export dan import PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

PERTEMUAN 6 SUBQUERY

Basis Data Terapan. Yoannita, S.Kom

B a s i s D a t a - 1 C H A P T E R SQL OPERASI JOIN. Copyright 2005 PENS-ITS

B a s i s D a t a C H A P T E R SQL OPERASI JOIN. Arif Basofi PENS 2015

M0564-Pengantar Sistem Basisdata 12/ 1

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DDL. Copyright 2005 PENS-ITS

Fungsi Single-Row. Fungsi merupakan fitur paling dibutuhkan dari SQL yang dapat digunakan untuk:

Untuk mencoba contoh-contoh perintah join, silahkan eksekusi query create+insert dibawah ini:

Praktikum Basis Data 14 Structure Query Language 2

B a s i s D a t a C H A P T E R. SQL Operasi DDL. Arif Basofi PENS 2015

Eksekusi file setup.exe yang ada dalam CD atau folder instalasi oracle.

CARA MENGGUNAKAN SELECT QUERY PADA MYSQL

MODUL 8. Sub Query Pada baris dan Kolom PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

Oracle Academic Initiative

Praktikum Basis Data 13 Structure Query Language 1

S Q L. Sejarah SQL. Penulisan Perintah SQL. SQL (Structure Query Language)

PERTEMUAN 9 MANIPULASI DATA

MODUL 3. View PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

Tujuan : Praktikan mampu untuk memanipulasi data dan mampu mencari data (Retrieval)

MODUL 4 INTERNET PROGRAMMING DATABASE

Me Retrieve Data Menggunakan Pernyataan SQLSELECT

BAB II PEMBUATAN DAN MANAJEMEN TABLE

LAPORAN PRAKTIKUM BASIS DATA MODUL 3 CONDITIONAL SQL MIKA PURNAMASARI NASTADINA

Sistem Basis Data. Pertemuan 13 SQL INSERT & SELECT TUJUAN

Jobsheet SQL Dasar : Hari Zulianto, ST [Year]

Kegiatan Praktikum Sistem Basis Data Kelompok B

Oracle Academic Initiative

Join Oracle. Rosa Ariani Sukamto Blog: Website:

MySQL J A M K E T I G A

PRAKTIKUM 5 SISTEM BASIS DATA JOIN

Data Manipulation Language (DML) & Data Control Language (DCL) pada Database

BAB IV PENGENALAN OPERATOR DASAR

MENAMPILKAN DATA DARI BANYAK TABEL

Apakah SQL? Membuat basis data dan struktur tabel Input, update, dan delete data dari tabel Membuat query sederhana dan kompleks SQL

IKG2I4 / Software Project I

B a s i s D a t a - 1 C H A P T E R. SQL - Basic. Copyright 2005 PENS-ITS

KSI B ~ M.S. WULANDARI

LAPORAN PRAKTIKUM MODUL 1 PENGENALAN MYSQL

Pertemuan 12 Pengenalan Structured Query Language

Basis Data. Bagian IV SQL (1) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

PERTEMUAN 3 FUNGSI BARIS TUNGGAL

Pengenalan Structured Query Language

Sejarah(1) Sejarah(2) STRUCTURE QUERY LANGUANGE (1) Definisi SQL

BAB 2 : Deklarasi Variabel

PERTEMUAN 5 PENGGUNAAN FUNGSI GROUP

Menampilkan Data Dari Beberapa Tabel

RENCANA PEMBELAJARAN

Latihan : Sebutkan record berapa saja yang akan ditampilkan berdasarkan perintah berikut :

Perangkat Lunak Pengembangan Web

Transkripsi:

7 Menggunakan Set Operators

Tujuan Setelah menyelesaikan pelajaran ini, Anda akan dapat melakukan berikut ini : Menjelaskan set operators Menggunakan suatu set operator untuk mengkombinasikan beberapa query query ke dalam query tunggal Mengontrol urutan baris yang dikembalikan Tujuan Dalam bab ini, anda mempelajari bagaimana cara menulis Query dengan menggunakan Set operator. Oracle Database 10g: Fundamentals I 7 2

Set Operators Set Operator Set Operator menggabungkan hasil dari dua atau lebih komponen Query ke dalam sebuah penyelesaian. Query yang berisi beberapa Set Operator disebut sebagai Compound Query. Operator Hasil UNION Semua baris distinct dipilih oleh query yang sama UNION ALL Semua baris dipilih oleh query yang sama, termasuk semua duplikat INTERSECT Semua baris distinct dipilih oleh kedua query MINUS Semua baris distinct yang telah dipilih oleh pernyataan SELECT dan tidak dipilih di pernyataan kedua Semua Set Operator mempunyai pendahuluan yang sama. Jika sebuah pernyataan SQL berisi beragam Set Operator, Oracle server akan mengevaluasinya dari kiri (atas) ke kanan (bawah) jika tidak ada sisipan secara jelas yang mengarah pada perintah lain. Anda harus menggunakan sisipan untuk menggolongkan perintah dari hasil evaluasi secara jelas dalam query yang menggunakan operator INTERSECT dengan Set operator yang lain. Oracle Database 10g: Fundamentals I 7 3

Tabel Tabel yang Digunakan dalam Pelajaran Ini Tabel tabel yang digunakan dalam pelajaran ini adalah : EMPLOYEES : Menyediakan rincian berdasarkan pegawaipegawai saat ini JOB_HISTORY :Rincian catatan dari tanggal mulai dan tanggal berakhir dari suatu job yang terdahulu, dan nomor identifikasi job serta departemen saat seorang pegawai berpindah job. Tabel tabel yang digunakan dalam pelajaran ini Bab ini menggunakan 2 tabel. Yaitu tabel EMPLOYEES dan tabel JOB_HISTORY. Tabel EMPLOYEES menyimpan detail karyawan. Untuk penrecord transaksi sumber daya manusia tabel ini bisa menyimpan nomor_id yang bersifat unik dan alamat email tiap karyawan. Detail dari no_id pekerjaan karyawan, gaji dan manajer juga akan tersimpan. Beberapa dari karyawan menerima komisi sebagai tambahan gaji mereka; informasi ini juga akan dicatat juga. Perusahaan mengatur karyawan sesuai dengan pekerjaannya. Beberapa karyawan sudah lama bekerja dalam perusahaan ini dan telah beberapa kali berganti ganti pekerjaan. Hal ini dimonitor menggunakan tabel JOB_HISTORY. Ketikaseorang karyawan berganti pekerjaan, detail dari tanggal mulai dan tanggal akhir pekerjaan terakhir, no_id pekerjaan, dan departemen disimpan dalam tabel JOB_HISTORY. Struktur dan data dari tabel EMPLOYEES dan table HISTORY ditunjukkan pada halaman berikut ini. Oracle Database 10g: Fundamentals I 7 4

Tabel tabel yang digunakan pada bab ini (lanjutan) Di dalam perusahaan ada beberapa orang yang bekerja dengan posisi yang sama lebih dari sekali sebelum mereka bergabung dengan perusahaan ini. Contohnya : salah satu karyawan yang bernama Taylor yang bergabung sebagai karyawan pada perusahaan ini pada 24 Mar 98. Taylor menempati jabatan sebagai SA_REP selama periode 24 Mar 98 sampai dengan 31 Dec 98 dan sebagai SA_MAN selama periode 01 Jan 99 sampai dengan 31 Dec 99. Taylor kembali lagi menjabat sebagai SA_REP, sampai dengan saat ini. Hal ini berbeda dengan Karyawan yang bernama Whalen, yang bergabung dengan perusahaan ini sejak 17 Sep 1987. Whalen memegang jabatan sebagai AD_ASST selama periode 17 Sep 87 sampai dengan 17 Jun 93 dan sebagai AC_ACCOUNT selama periode 01 Jul 94 sampai dengan 31 Dec 98. Whalen kembali lagi menjabat sebagai AD_ADDT, sampai dengan saat ini. Describe employees Name Null? Type EMPLOYEE_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER HIRE_DATE NOT NULL DATE VARCHAR2(20) JOB_ID NOT NULL VARCHAR2120) SALARY NUMBER(8,2) COMMISION_PCT MANAGER_ID DEPARTMENT_ID SELECT employee_id, last_name, job_id, hire_date, department_id FROM employees; NUMBER(2,2) NUMBER(6) NUMBER(4) EMPLOYEE_ID LAST_NAME JOB_ID HIRE_DATE DEPARTMENT_ ID 100 King AD_PRES 17 JUN 87 90 101 Kochar AD_VP 21 SEP 89 90 102 De Hann AD_VP 13 JAN 93 90 103 Hunold IT_PROG 03 JAN 90 60 104 Ernst IT_PROG 21 MAY 91 60 107 Lorentz IT_PROG 07 FEB 99 60 124 Mourgos ST_MAN 16 NOV 99 50 141 Rajs ST_CLERK 17 OCT 95 50 142 Davies ST_CLERK 29 JAN 97 50 143 Matos ST_CLERK 15 MAR 98 50 144 Vargas IT_PROG 09 JUL 98 50 149 Zlotkey SA_MAN 29 JAN 00 80 174 Abel SA_REP 11 MAY 96 80 Taylor SA_REP 24 MAR 98 176 EMPLOYEE_ID LAST_NAME JOB_ID HIRE_DATE DEPARTMENT_ ID 178 Grant SA_REP 24 MAY 99... 200 Whalen AD_ASST 17 SEP 87 10 201 Harstein MK_MAN 17 FEB 96 20 Oracle Database 10g: Fundamentals I 7 5

Tabel yang digunakan pada Bab ini (lanjutan) DESCRIBE job_history Name Null? Type EMPLOYEE_ID NOT NULL NUMBER(6) START_DATE NOT NULL DATE END_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) DEPARTMENT_ID NUMBER(4) SELECT * FROM job_history EMPLOYEE_ID START_DATE HIRE_DATE JOB_ID DEPARTMENT_ID 102 13 JAN 98 24 JUL 98 IT_PROG 60 101 21 SEP 93 27 OCT 93 AC_ACCOUNT 110 101 28 OCT 97 15 MAR 97 AC_MGR 110 201 17 FEB 96 19 DEC 99 MK_REP 20 114 24 MAR 98 31 DEC 99 ST_CLERK 50 122 01 JAN 99 31 DEC 99 ST_CLERK 50 200 17 SEP 87 17 JUN 93 AD_ASST 90 176 24 MAR 98 31 DEC 98 SA_REP 80 176 01 JAN 99 31 DEC 99 SA_MAN 80 200 01 JUL 94 31 DEC 98 AC_ACCOUNT 90 10 rows selected Oracle Database 10g: Fundamentals I 7 6

Operator UNION Operator UNION mengembalikan hasil hasil dari kedua query setelah menghilangkan adanya duplikasi. UNION Operator UNION Operator mengembalikan semua baris yang dipilih oleh query yang sama. Gunakan UNION Operator untuk mengembalikan semua baris dari beberapa tabel kemudian menghapus semua baris duplikat. Pedoman Pedoman Jumlah kolom dan tipe data dari kolom yang telah dipilih harus identik dengan semua pernyataan SELECT yang digunakan dalam Query. Nama kolom tidak harus identik. UNION mengubah keseluruhan kolom yang telah dipilih Nilai NULL tidak diperbolehkan sebelum dicek. Operator IN mempunyai prioritas lebih dulu daripada operator UNION Secara default, output akan diurutkan secara ascending dari kolom pertama kalimat SELECT. Oracle Database 10g: Fundamentals I 7 7

Menggunakan Operator UNION Menampilkan detail pekerjaan dari semua karyawan baik yang sekarang atau sebelumnya. Menampilkan karyawan hanya sekali. Menggunakan Operator UNION Operator UNION menghapus semua record duplikat. Jika record tidak ada dalam kedua tabel EMPLOYEES dan JOB_HISTORY secara identik, maka record tersebut ditampilkan hanya sekali. Amati dari tampilan output pada slide, record untuk karyawan dengan EMPLOYEE_ID200 ditampilkan dua kali karena JOB_ID berbeda beda pada tiap row. Perhatikan contoh dibawah ini : SELECT employee_id, job_id, department_id FROM employees UNION SELECT employee_id, job_id, department_id FROM job_history; EMPLOYEE_ID JOB_ID DEPARTMENT_ID 29 rows slected 200 AC_ACOUNT 90 200 AD_ASST 10 200 AD_ASST 90... Pada output tersebut diatas tadi, karyawan dengan EMPLOYEE_ID = 200 muncul 3 kali. Kenapa? Perhatikan nilai DEPARTMENT_ID untuk karyawan 200. Satu baris mempunyai DEPARTMENT_ID 90, lainnya 10 dan 90. Karena ini merupakan gabungan unik dari job_ids dan department_ids, setiap baris untuk karyawan 200 ini unik dan maka bukan merupakan duplikat. Amati bahwa outputnya berurutan secara ascending dari kolom pertama kalimat SELECT (dalam hal ini, EMPLOYEE_ID). Oracle Database 10g: Fundamentals I 7 8

Operator UNION ALL UNION ALL operator mengembalikan hasil hasil dari kedua query, termasuk semua hasil yang duplikasi. Operator UNION ALL Gunakan operator UNION ALL untuk mengembalikan semua baris dari beberapa queri Pedoman Pedoman Petunjuk untuk UNION dan UNION ALL semua sama, tapi dengan 2 perkecualian untuk UNION ALL yaitu : Tidak seperti UNION, baris duplikat tidak akan terhapus dan output tidak diurutkan secara default. Keyword DISTINCT tidak bisa digunakan. Oracle Database 10g: Fundamentals I 7 9

Menggunakan operator UNION ALL Menampilkan semua karyawan yang bekerja di departemen baik yang sekarang maupun sebelumnya. UNION ALL (lanjutan) Seperti yang pada contoh diatas, ada 30 baris yang terpilih. Gabungan antara dua tabel berjumlah 30 baris. Operator UNION ALL tidak menghapus baris duplikat. UNION mengembalikan semua baris distinct yang telah diseleksi oleh query tersebut. Fungsi UNION ALL mengembalikan semua baris yang telah diseleksi oleh query, termasuk semua duplikatnya. Perhatikan quey yang terdapat pada slide, sekarang tuliskan dengan menggunakan kalimat UNION : SELECT employee_id, job_id, department_id FROM employees UNION SELECT employee_id, job_id, department_id FROM job_history ORDER BY employee_id; Pada hasil query perintah diatas didapatkan hasil 29 baris. Hal ini dikarenakan perintah diatas telah menghapus baris berikut ini (yang merupakan sebuah baris duplikat) : EMPLOYEE_ID JOB_ID DEPARTMENT_ID 176 SA_REP 80 Oracle Database 10g: Fundamentals I 7 10

Operator INTERSECT Operator INTERSECT mengembalikan nilai (baris) yang terletak diantara kedua query. Operator INTERSECT Gunakan operator INTERSECT untuk mengembalikan semua baris yang ada (terlibat) dalam beberapa query. Petunjuk Nomor kolom dan tipe data kolom telah dipilih oleh pernyataan SELECT dalam query harus selalu identik di dalam semua pernyataan SELECT yang digunakan dalam query. Nama dari kolom tidak harus selalu identik. Membalikkan tabel yang telah diintersect tidak akan mengubah hasil. INTERSECT tidak akan memperbolehkan adanya nilai NULL. Oracle Database 10g: Fundamentals I 7 11

Menggunakan Operator INTERSECT Menampilkan employee ID dan job ID dari tabel employee dimana karyawan tersebut mempunyai pekerjaan yang sama dengan pekerjaan mereka terdahulu (karyawan tersebut telah berganti pekerjaan tapi sekarang kembali lagi bekerja pada pekerjaan asal) Operator INTERSECT (lanjutan) Seperti contoh pada slide, query hanya mengembalikan record yang mempunyai kesamaan nilai di dalam kolom yang telah dipilih di kedua tabel tersebut. Apa yang akan dihasilkan jika anda menambahkan kolom DEPARTMENT_ID ke dalam pernyataan SELECT dari table JOB_HISTORY dan menjalankan query ini? Hasilnya bisa saja berbeda karena pendahuluan dari kolom lainnya dimana nilai bisa diduplikasikan atau tidak diduplikasikan. Contoh SELECT FROM INTERSECT SELECT FROM employee_id, job_id, department_id employees employee_id, job_id, department_id job_history; EMPLOYEE_ID JOB_ID DEPARTMENT_ID 176 SA_REP 80 Karyawan 200 bukan lagi bagian dari hasil, hal ini dikarena nilai EMPLOYEES.DEPARTMENT_ID berbeda dari nilai JOB_HISTORY.DEPARTMENT_ID Oracle Database 10g: Fundamentals I 7 12

Operator MINUS Operator MINUS mengembalikan baris pada query pertama dan tidak tampak pada query kedua. Operator MINUS Gunakan Operator MINUS untuk mengembalikan baris, yang dikembalikan oleh query pertama, yang tidak tampak pada saat query kedua (pernyataan SELECT pertama MINUS pernyataan SELECT kedua). Petunjuk Jumlah kolom dan tipe data dari kolom telah dipilih oleh pernyataan SELECT di dalam query seharusnya identik di dalam semua pernyataan SELECT yang digunakan dalam query. Nama kolom tidak harus identik. Semua kolom dalam kalimat WHERE seharusnya berada dalam kalimat SELECT supaya operator MINUS berkerja. Oracle Database 10g: Fundamentals I 7 13

Operator MINUS Menampilkan employee id dari karyawan karyawan yang tidak pernah ganti pekerjaan sekalipun. Operator MINUS (lanjutan) Seperti contoh pada slide, employee_id dan job_id dalam tabel JOB_HISTORY dikurangi dari tabel EMPLOYEES. Rnomorian hasil menampilkan sisa karyawan setelah pengurangan; data tersebut diperlihatkan oleh baris yang terdapat pada tabel EMPLOYEES tapi tidak terdapat dalam tabel JOB_HISTORY. Ini merupakan record dari karyawan yang tidak pernah berganti pekerjaan meskipun sekali. Oracle Database 10g: Fundamentals I 7 14

Petunjuk Set Operator Ekspresi yang terdapat pada SELECTlist harus sama dengan nomor dan tipe datanya. Parentheses dapat digunakan untuk merubah sequence. ORDER BY clause : Dapat digunakan hanya diakhir dari suatu statement. Dapat menggunakan nama kolom, alias dari SELECT statement yang pertama, atau sesuai dengan letak penulisan. Petunjuk Tentang Set Operator Penulisan di dalam rnomori SELECT dari query harus sesuai dengan nomor dan tipe data. Query yang menggunakan operator operator seperti UNION, UNION ALL, INTERSECT dan MINUS didalam kalimat WHEREnya harus mempunyai persamaan nomor dan tipe data kolom dalam rangkaian SELECT. Seperti pada contoh : SELECT employee_id, department_id FROM employees WHERE (employee_id, department_id) IN (SELECT employee_id, department_id) FROM employees UNION SELECT employee_id, department_id FROM employees); Kalimat ORDER_BY : Bisa muncul pada akhir sebuah pernyataan Akan menerima nama kolom, sebuah alias atau sesuai dengan letak penulisan Nama kolom atau alias, jika digunakan sebuah kalimat ORDER_BY, seharusnya berasal dari daftar SELECT yang pertama. Set operator bisa digunakan pada subqueri. Oracle Database 10g: Fundamentals I 7 15

Server Oracle dan Set Operator Baris yang duplikasi akan otomatis hilang kecuali pada UNION ALL. Nama Kolom dari query yang pertama akan muncul pada hasil. Output akan diurutkan secara ascending oleh order by default kecuali pada UNION ALL. Server Oracle dan Set operator Ketika sebuah query menggunakan set operator, Server Oracle akan menghapus baris duplikat secara otomatis kecuali di dalam kondisi dengan operator UNION ALL. Nama kolom outputnya ditentukan oleh daftar kolom pada pernyataan SELECT yang pertama. Secara default output akan diurutkan secara ascending dari kolom pertama kalimat SELECT. Keterkaitan penulisan di dalam daftar SELECT yang merupakan komponen query dari campuran query harus sesuai dengan nomor dan tipe data. Jika komponen query memilih data karakter, tipe data dari nilai balik dengan ketentuan sebagai berikut : Jika kedua query memilih nilai dari tipe data CHAR, nilai balik harus berupa tipe data CHAR. Jika salah satu atau kedua query tersebut memilih nilai tipe data VARCHAR2, maka nilai balik berupa tipe data VARCHAR2. Oracle Database 10g: Fundamentals I 7 16

Membandingkan Dengan Pernyataan SELECT Menggunakan operator UNION, untuk menampilkan Department_ID, Location, dan HireDate untuk semua karyawan. Membandingkan dengan Pernyataan SELECT Karena penulisan dari daftar pilih dari query harus sesuai dengan nomor, anda bisa menggunakan kolom dummy dan Para pengguna konversi tipe data sudah menyetujui hal ini. Di dalam slide, nama location itu diberikan sebagai nama heading kolom dummy. Fungsi dari TO_NUMBER ialah digunakan pada query pertama untuk membandingkan tipe data NUMBER dari kolom LOCATION_ID yang akan diterima kembali oleh query yang kedua. Begitupun, fungsi dari TO_DATE pada query yang kedua, digunakan untuk membandingkan tipe data kolom HIRE_DATE yang diterima kembali oleh first query. Oracle Database 10g: Fundamentals I 7 17

Membandingkan Dengan Pernyataan SELECT : Contoh Menggunakan operator UNION, untuk menampilkan employee_id, job_id, dan salary untuk semua karyawan. Membandingkan dengan pernyataan SELECT : Contoh Table EMPLOYEES dan JOB_HISTORY mempunyai beberapa kolom di dalamnya (seperti contoh, EMPLOYEE_ID, JOB_ID dan DEPARTMENT_ID). Tapi apa yang dihasilkan, jika anda ingin melakukan query untuk menampilkan employee ID, ob ID dan gaji menggunakan operator UNION, diketahui bahwa gaji hanya terdapat di table EMPLOYEES? Contoh kode seperti pada slide, membandingkan antara kolom EMPLOYEE_ID dan JOB_ID di dalam tabel EMPLOYEES dan JOB_HISTORY. Biasanya nilai 0 dihasilkan pernyataan JOB_HISTORY SELECT untuk membandingkan angka kolom SALARY pada pernyataan EMPLOYEE SELECT. Pada hasil sebelumnya, setiap baris di dalam output yang berhubungan dengan record dari tabel JOB_HISTORY yang berisi 0 pada kolom SALARY. Oracle Database 10g: Fundamentals I 7 18

Mengontrol Urutan Baris Baris Menghasilkan sebuah kalimat dalam bahasa Inggris menggunakan dua operator UNION. Mengontrol permintaan akan baris Secara default, outputnya terurut berdasarkan ascending pada kolom pertama. Anda bisa menggunakan perintah ORDER BY untuk menggantinya. Perintah ORDER BY bisa digunakan hanya sekali dalam campuran query. Jika digunakan, perintah ORDER BY harus diletakkan di bagian akhir dari penulisan query. Perintah ORDER BY dapat digunakan pada nama kolom atau menggunakan alias. Kode contoh pada slide tersebut diatas, ketika tanpa menggunakan perintah ORDER BY maka akan menghasilkan output secara alphabet pada kolom pertamanya : I d like to teach sing the world to Catatan : Pikirkan sebuah query campuran dimana set operator UNION digunakan lebih dari sekali. Dalam kasus ini, perintah ORDER BY bisa digunakan hanya ketika keberadaannya jarang daripada penulisan secara explisit Perintah isql*plus COLUMN Anda bisa menggunakan perintah isql*plus COLUMN untuk menyesuaikan heading kolom. Syntax : COL[UMN] [{column alias}[option]] Dimana OPTION itu : CLE[AR] : Menghapus format kolom HEA[DING] text : Mengatur heading kolom FOR[MAT] format : Merubah tampilan kolom menggunakan format model NOPRINT PRINT : Menindas atau menampilkan heading kolom dan data NULL Pernyataan berikut ini menindas data kolom dan heading judul untuk kolom dinamakan A_DUMMY. Perhatikan SELECT clause yang pertama dalam slide pendahuluan membuat sebuah kolom bernama A_DUMMY. COLUMN a_dummy NOPRINT My dream Oracle Database 10g: Fundamentals I 7 19

RINGKASAN Pada bab ini, anda harus mempelajari bagaimana cara untuk : Menggunakan UNION untuk menghasilkan semua baris distinct Menggunakan UNION ALL untuk menghasilkan semua baris, termasuk duplikatnya. Menggunakan INTERSECT untuk menghasilkan semua baris dimana digunakan untuk saling berbagi antar kedua query tersebut. Menggunakan MINUS untuk menghasilkan semua baris distinct yang dipilih oleh query yang pertama tapi tidak dipilih di query yang kedua. Menggunakan ORDER BY hanya pada bagian paling akhir dari pernyataan query. Ringkasan Operator UNION menghasilkan semua baris yang pilih query tersebut. Menggunakan operator UNION untuk menghasilkan semua baris dari berbagai tabel dan menghapus semua baris duplikat. Menggunakan operator UNION ALL untuk menghasilkan semua baris dari beragam query. Tidak seperti dalam kondisi dengan menggunakan operator UNION, baris duplikat tidak dihapus dan output tidak diurutkan secara default. Menggunakan operator INTERSECT untuk mengembalikan semua baris yang ada ke multiple query. Menggunakan operator MINUS untuk mengembalikan baris yang dikembalikan oleh query yang pertama, dimana hal ini tidak tampak pada query yang kedua. Ingatlah untuk menggunakan ORDER BY clause hanya pada bagian terakhir pernyataan query beragam. Pastikan keterkaitan penulisan dalam kesesuaian daftar SELECT yaitu nomor dan tipe datanya. Oracle Database 10g: Fundamentals I 7 20