Teori
Sub Query
SQL Subquery Contoh:
1) Biasanya, subquery harus kembali hanya satu record, tapi kadang-kadang juga dapat kembali beberapa catatan bila digunakan dengan operator. Sintaks query akan seperti,
SELECT first_name, last_name, subject
FROM student_details
WHERE games NOT IN ('Cricket', 'Football');
first_name | last_name | subject |
---|---|---|
------------- | ------------- | ---------- |
Shekar | Gowda | Badminton |
Priya | Chandra | Chess |
SELECT id, first_name
FROM student_details
WHERE first_name IN ('Rahul', 'Stephen');
SELECT id, first_name
FROM student_details
WHERE first_name IN (SELECT first_name
FROM student_details
WHERE subject= 'Science');
id | first_name |
---|---|
-------- | ------------- |
100 | Rahul |
102 | Stephen |
SQL Subquery; Pernyataan INSERT
3) Subquery dapat digunakan dengan pernyataan INSERT untuk menambahkan baris data dari satu atau lebih tabel ke meja lain. Mari kita mencoba untuk mengelompokkan semua siswa yang belajar Matematika dalam tabel 'maths_group'.
SQL Subquery; Pernyataan SELECT
INSERT INTO maths_group(id, name)
SELECT id, first_name || ' ' || last_name
FROM student_details WHERE subject= 'Maths'
4) Sebuah subquery dapat digunakan dalam laporan SELECT sebagai berikut. Mari kita menggunakan produk dan meja order_items didefinisikan dalam bagian sql_joins.
Korelasi Subquery
select p.product_name, p.supplier_name, (select order_id from order_items where product_id = 101) as order_id from product p where p.product_id = 101
product_name | supplier_name | order_id |
---|---|---|
------------------ | ------------------ | ---------- |
Television | Onida | 5103 |
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.
Indeks SQL
Indeks di sql dibuat pada tabel yang ada untuk mengambil baris cepat.
Hasil Praktikum & Tugas
>>Praktikum (PostgreSQL)
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.
>>Tugas (MySQL)
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.
Kesimpulan
SELECT p.product_name FROM product p
WHERE p.product_id = (SELECT o.product_id FROM order_items o
WHERE o.product_id = p.product_id);
>>Source : http://beginner-sql-tutorial.com/id/sql-subquery.htm
Indeks SQL
Indeks di sql dibuat pada tabel yang ada untuk mengambil baris cepat.
Bila 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 sekelompok kolom. Ketika indeks dibuat, terlebih dahulu memilah data dan kemudian akan menetapkan sebuah ROWID untuk setiap baris.
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.
Hasil Praktikum & Tugas
>>Praktikum (PostgreSQL)
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.
![]() |
Nomer 1,2 dan 3 |
![]() |
Lanjutan Nomer 3 |
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.
>>Tugas (MySQL)
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.
![]() |
3 A |
![]() |
3 B |
![]() |
3 C |
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.
Kesimpulan
Kesimpulan dari hasil praktikum dan evaluasi, adalah bahwa PostgreSQL dan MySQL tidak berbeda pada syntax SubQuery, hanya berbeda pada konteks penghapusan index, penulisan trim, serta proses backup (select into).
Fungsi dari select into adalah untuk membuat sebuah tabel baru berdasarkan output dari statement select. Akan tetapi statement select into tidak bisa secara instant mem-backup index seperti primari key, unique, dll.
Fungsi dari select into adalah untuk membuat sebuah tabel baru berdasarkan output dari statement select. Akan tetapi statement select into tidak bisa secara instant mem-backup index seperti primari key, unique, dll.
No comments:
Post a Comment