Minggu, 01 Januari 2012

Resume SQL 1 Pert 9


Mengubah Data
Data Manipulation Langguage

Suatu pernyataan DML dieksekusi saat Anda :
Menambah baris baris baru ke suatu tabel
Memodifikasi baris baris yang ada dalam suatu tabel
Menghapus baris baris yang ada dari suatu table

Suatu transaksi terdiri dari sekumpulan pernyataan pernyataan DML yang membentuk suatu unit logika dari pekerjaan.

Sintak Pernyataan INSERT
Menambah baris baris baru ke suatu tabel dengan menggunakan pernyataan INSERT :

Dengan sintak ini, hanya satu baris ynag disisipkan pada suatu waktu

Menyisipkan Baris Baris Baru
Menyisipkan suatu baris baru berisi nilai nilai untuk setiap kolom.
Daftar nilai nilai dalam urutan default dari kolom kolom dalam tabel.
Daftar kolom kolom dalam klausa INSERT, adalah optional.
 
Apit nilai nilai karakter dan tanggal dengan tanda petik tunggal.

Sintak Pernyataan UPDATE
Memodifikasi baris baris yang ada dengan pernyataan UPDATE :
 
Perubahan lebih dari satu baris pada suatu waktu (jika diminta).

MengUpdate Baris Baris dalam suatu Tabel
Baris tertentu atau baris baris dimodifikasi jika Anda menentukan klausa WHERE :
Seluruh baris dalam tabel dimodifikasi jika Anda menghilangkan klausa WHERE :
 
MengUpdate Dua Kolom dengan suatu Subquery
Update pegawai yang memiliki job ID 114 dan penghasilannya agar sesuai dengan pegawai 205.

Pernyataan DELETE
Anda dapat menghapus baris baris yang ada dari suatu table dengan menggunakan pernyataan DELETE :
 
Menghapus Baris Baris dari suatu Tabel
Baris baris tertentu terhapus jika Anda menentukan klausa WHERE :
 
Semua baris dalam tabel terhapus jika Anda menghilangkan klausa WHERE :
Pernyataan TRUNCATE
Menghilangkan semua baris dari suatu tabel, tabel kosong dan struktur tabel dibiarkan tetap utuh
Adalah suatu pernyataan data definition langguage (DDL) dari pada suatu pernyataan DML; tidak bisa dibatalkan.

Sintak :
 
Contoh :
 
Keuntungan Keuntungan dari Pernyataan COMMIT dan ROLLBACK
Dengan pernyataan COMMIT dan ROLLBACK, Anda dapat :
Memastikan konsistensi data
Melihat perubahan perubahan data sebelum membuat permanen perubahan
Secara logika mengelompokkan operasi operasi yang berkaitan

MeRoll Back Perubahan Perubahan ke suatu Tanda
Buat suatu tanda dalam suatu transaksi saat ini dengan menggunakan pernyataan SAVEPOINT.
Roll back ke tanda tersebut dengan menggunakan pernyataan ROLLBACK TO SAVEPOINT.
 

MengCommit Data
Membuat perubahan perubahan:
 
Mengcommit perubahan perubahan:

Minggu, 25 Desember 2011

Resume SQL 1 Pert 8


Menggunakan 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.

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.
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;
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.
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)

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.
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 employee_id, job_id, department_id
FROM employees
INTERSECT
SELECT employee_id, job_id, department_id
FROM job_history;
Karyawan 200 bukan lagi bagian dari hasil, hal ini dikarena nilai EMPLOYEES.DEPARTMENT_ID berbeda dari nilai JOB_HISTORY.DEPARTMENT_ID

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.
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 WHERE nya 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.
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.