I. TUJUAN
1. Memahami terapan dari sub query dan indeks dalam segala kasus
2. Mengerti perbedaan antara Pgsql dan Mysql
II. LANDASAN TEORI
SUB QUERY
Subquery atau Batin permintaan atau Query bersarang adalah query
dalam query. SQL subquery biasanya ditambahkan dalam MANA Klausul pernyataan SQL. Sebagian besar waktu, subquery
digunakan ketika Anda tahu bagaimana untuk mencari nilai menggunakan pernyataan
SELECT, tetapi tidak tahu nilai yang tepat dalam database. Subqueries
adalah cara alternatif untuk kembali data dari beberapa tabel.
SQL Subquery; Pernyataan SELECT
1) Sebuah subquery dapat digunakan dalam laporan SELECT sebagai berikut.
Mari kita menggunakan produk dan meja order_items didefinisikan dalam bagian
sql_joins.
SQL Subquery; Pernyataan INSERT
2) Subquery dapat digunakan dengan pernyataan INSERT untuk
menambahkan baris data dari satu atau lebih tabel ke meja lain.
SQL Subquery; Pernyataan UPDATE
3) Sebuah subquery dapat digunakan dalam laporan UPDATE sebagai berikut.
Mari kita menggunakan produk dan meja order yang ada untuk diganti data sesuai
keinginan.
4) Biasanya, subquery harus kembali hanya satu record, tapi
kadang-kadang juga dapat kembali beberapa catatan bila digunakan dengan
operator SEPERTI DI,
TIDAK DI dalam klausul mana.
Korelasi Subquery
Permintaan A disebut subquery berkorelasi ketika kedua inner query
dan permintaan luar saling bergantung. Untuk setiap baris diproses oleh inner
query, permintaan luar diproses juga. Inner query tergantung pada permintaan
luar sebelum dapat diproses.
SELECT namakolom FROM namatabel
WHERE namakolom operator (subquery);Kegunaan-kegunaan Subquery dalam memanipulasi data:
·
Meng-copy data dari satu tabel ke
tabel lain
·
Menerima data dari inline view
·
Mengambil data dari tabel lain
untuk kemudian di update ke tabel yang dituju
·
Menghapus baris dari satu tabel
berdasarkan baris dari tabel lain
Perintah ini hanya bisa menerima satu(1) buah hasil dari sub
query, jika hasil dari sub query ada lebih adari satu maka akan terjadi error.
Ada beberapa bahasan terkait penggunaah Sub Query ini antara lain :
1) Sub query dengan IN
Jika operator ‘=’ hanya digunakan untuk hasil yang tepat satu, maka jika ingin menampilkan yang memiliki hasil lebih dari satu maka menggunakan perintah IN.SELECT namakolom FROM namatabel WHERE kondisi opeatorperbandingan IN (subquery);
Jika operator ‘=’ hanya digunakan untuk hasil yang tepat satu, maka jika ingin menampilkan yang memiliki hasil lebih dari satu maka menggunakan perintah IN.SELECT namakolom FROM namatabel WHERE kondisi opeatorperbandingan IN (subquery);
2) Sub query dengan ALL
Command ALL diikuti dengan operator perbandingan digunakan memiliki arti menampilkan nilai jika perbandingan bernilai benar untuk semua data. Operator perbandingan tersebut berupa ( <, >, =, != ). Berikut adalah query dasar dari sub query all
SELECT namakolom FROM namatabel WHERE kondisi opeatorperbandingan ALL (subquery);
Command ALL diikuti dengan operator perbandingan digunakan memiliki arti menampilkan nilai jika perbandingan bernilai benar untuk semua data. Operator perbandingan tersebut berupa ( <, >, =, != ). Berikut adalah query dasar dari sub query all
SELECT namakolom FROM namatabel WHERE kondisi opeatorperbandingan ALL (subquery);
3) Sub query dengan ANY
Command ANY diikuti dengan operator perbandingan memiliki arti menampilkan nilai yang sesuai dengan apapun yang dihasilkan oleh sub query. Contoh query dasar dari sub query ANY
SELECT namakolom FROM namatabel WHERE kondisi opeatorperbandingan ANY (subquery);
Command ANY diikuti dengan operator perbandingan memiliki arti menampilkan nilai yang sesuai dengan apapun yang dihasilkan oleh sub query. Contoh query dasar dari sub query ANY
SELECT namakolom FROM namatabel WHERE kondisi opeatorperbandingan ANY (subquery);
4) Sub query dengan EXISTS
Perintah EXISTS disini berguna untuk mengartur penampilan hasil query, Query Utama akan dijalankan jika Sub Query bernilai TRUE (ada hasilnya) jika hasilnya kosong maka Query utama tidak akan dijalankan. Lawan dari statement EXISTS adalah NOT EXISTS SELECT namakolom FROM namatabel WHERE EXIST / NOT EXIST (subquery);
Perintah EXISTS disini berguna untuk mengartur penampilan hasil query, Query Utama akan dijalankan jika Sub Query bernilai TRUE (ada hasilnya) jika hasilnya kosong maka Query utama tidak akan dijalankan. Lawan dari statement EXISTS adalah NOT EXISTS SELECT namakolom FROM namatabel WHERE EXIST / NOT EXIST (subquery);
Catatan Subquery
1) Anda dapat sarang karena banyak pertanyaan yang Anda inginkan,
Non-corelated Subquery
2) Jika subquery tidak tergantung pada permintaan luar itu disebut
subquery non-berkorelasi
Kesalahan Subquery
3) Meminimalkan kesalahan subquery: Gunakan drag and drop, copy
dan paste untuk menghindari berjalan subqueries dengan ejaan dan kesalahan
ketik basis data. Perhatikan bidang beberapa Anda menggunakan koma SELECT,
tambahan atau untuk beberapa mendapatkan pesan error SQL "sintaks
salah".
SQL Subquery Komentar
4) Menambahkan komentar Subquery SQL adalah kebiasaan yang baik (/
* perintah komentar anda * /) yang dapat menghemat waktu Anda, menjelaskan
kerja sebelumnya .. hasil Anda sakit kepala SQL kurang
INDEKS
Indeks disini berguna dalam suatu pencarian nilai atau data dalam
database. Dalam suatu kasus ketika mengakses sebuah tabel biasanya DBMS akan
membaca seluruh tabel baris perbaris hingga selesai. Ketika baris sangat banyak
dan hasil dari query hanya sedikit, maka hal ini sangat tidak efisien. Seperti
halnya ketika kita membaca sebuah buku dan ingin mencari kata atau istilah
tertentu dalam buku maka biasanya akan di cari dengan membuka setiap halaman
dari awal sampai akhir. Dengan adanya indeks buku maka kita cukup dengan
membuka indeks, sehingga akan cepat dalam pencarian kata tersebut. PostgreSQL
tidak bisa membuat indeks dengan otomatis, sehingga user dapat membuat indeks
tersebut untuk sering kali digunakan kolom, biasanya dalam clause WHERE. Berikut
struktur SQL :
Sintaks untuk membuat Index:
CREATE INDEX
index_name
ON table_name
(column_name1,column_name2...);
Sintaks untuk
membuat Index unik SQL:
CREATE UNIQUE
INDEX index_name
ON table_name
(column_name1,column_name2...);
index_name
adalah nama INDEKS.
table_name
adalah nama dari tabel yang kolom diindeks milik.
column_name1,
column_name2 .. adalah daftar kolom yang membentuk INDEKS.
Di Oracle ada
dua jenis indeks SQL yaitu, implisit dan eksplisit.
Indeks
Implisit:
Mereka dibuat
ketika suatu kolom explicity didefinisikan dengan PRIMARY KEY, UNIQUE Kendala
KUNCI.
Indeks
Explicit:
Mereka
diciptakan menggunakan "membuat indeks .." sintaks.
Catatan Index :
1) Meskipun
indeks sql diciptakan untuk mengakses baris dalam tabel cepat, mereka
memperlambat operasi DML seperti INSERT, UPDATE, DELETE di atas meja, karena
indeks dan tabel kedua diperbarui sepanjang ketika operasi DML dilakukan. Jadi
menggunakan indeks hanya pada kolom yang digunakan untuk mencari meja sering.
2) Apakah tidak
diperlukan untuk membuat indeks di atas meja yang memiliki sedikit data.
3) Dalam
database oracle Anda dapat membuat hingga enam belas (16) kolom dalam INDEX.
1. Tampilkan nama fakultas dan jumlah mahasiswa yang mampunyai ketentuan nama fakultas yang dimunculkan dengan jumlah mahasiswanya terkecil!


2.Tampilkan nama mahasiswa, nama fakultas, alamat dengan syarat nama fakultas sama dengan edi dan alamatnya tidak sama dengan luki!


3.Buatlah index di tabel mahasiswa(alamat). Kemudian buat lagi index yang bersifat unik pada tabel fakultas(fak_nama) kemudian amati perbedaannya ketika memasukkan data yang sama!

4. Buat kolom nama di mahasiswa menjadi unik dan inputkan 2 data yang sama. Kemudian amati perbedaannya !


5. Pindahkan data dari tabel mahasiswa, fakultas ambil kolom nim, nama mahasiswa, alamat, nama fakultas ke tabel baru yang dinamai „tabel identitas‟.


6.Buatlah contoh penggunaan check pada sub bab pembahasan CHECK. Kemudian masukkan beberapa data baik yang sesuai dengan criteria check maupun yang bukan dan amati perbedaannya.


7. Inputkan data di tabel mahasiswa dimana pada kolom nama sebelum inputkan karakter dahulukan dengan spasi dan di akhiri dengan tanda “+” seperti berikut : “ andi cahyono++++”. kemudian munculkan seluruh data dan hilangkan spasi didepan!


8. Munculkan data mahasiswa dengan hilangkan karakter “+” di akhir data dan karakter “a” di awal kata pada kolom nama!


IV. PERBEDAAN
Menurut Saya.. perbedaan yang saya tahu yaitu terdapat pada :
Penerapan query PostgreSQL " SELECT TRIM (BOTH 'kondisi1, kondisi 2' from "nama kolom") from "nama tabel"
tidak bisa di lakukan di dalam MySQL karena akan terjadi kesalahan
V. KESIMPULAN
SUB QUERY
Subquery atau Batin permintaan atau Query
bersarang adalah query dalam query. Sebagian besar waktu, subquery
digunakan ketika Anda tahu bagaimana untuk mencari nilai menggunakan pernyataan
SELECT, tetapi tidak tahu nilai yang tepat dalam database. Subqueries
adalah cara alternatif untuk kembali data dari beberapa tabel.
4 Dasar dari Sub Query yang wajib di ingat
SQL Subquery; Pernyataan SELECT
SQL Subquery; Pernyataan INSERT
SQL Subquery; Pernyataan UPDATE
SQL Subquery; Pernyataan DELETE
INDEKS
Indeks disini berguna
dalam suatu pencarian nilai atau data dalam database. Dalam suatu kasus ketika
mengakses sebuah tabel biasanya DBMS akan membaca seluruh tabel baris perbaris
hingga selesai. Ketika baris sangat banyak dan hasil dari query hanya sedikit,
maka hal ini sangat tidak efisien.
Tolong di kritik ya kk :-D semoga jawaban in benar dan jika salah tolong di benarkan ya :D
VII. DAFTAR PUSTAKA
http://beginner-sql-tutorial.com/id/sql-subquery.htm
http://www.w3resource.com/mysql/string-functions/mysql-trim-function.php
http://www.w3schools.com/sql/default.asp
Membangun Database MYSQL dengan Java GUI



ikuti format dong.. gak ada perbandingan sih....
BalasHapuscontoh dari pernyataan update,delete dan insertnya kok ga ada ?
BalasHapus