BAB I
Landasan Teori
Operator Alias (AS)
Dalam sebuah tabel mungkin memiliki nama atribut yang disingkat untuk mempercepat penulisan karena itu agar tidak terjadi kesalahan dalam pengisihan atribut maka dapat digunakan AS untuk menamilkan nama atribut dengan nama lain sehingga yang akan muncul dalam hasil query nama asli atribut, tetapi nama atribut yang digunakan dalam query AS sehingga lebih memudahkan pengisihan atribut dan mengurangi kesalahan dalam pengisian. Berikut SQL dari AS :
SELEC nama_kolom AS nama_kolom_pengganti FROM nama_tabel;
AND dan OR
Selain penggunaan WHERE secara sederhana, ada juga penggunaan WHERE yang lebih komplek, anak kalimat WHERE yang kompleks akan bekerja dengan lebih baik dengan menggunakan kata AND dan OR. SQL menggunakan standar logika boolean three-valued seperti pada tabel berikut :
Kondisi A | Kondisi B | A AND B | A OR B |
TRUE | TRUE | TRUE | TRUE |
TRUE | FALSE | FALSE | TRUE |
TRUE | NULL | NULL | TRUE |
FALSE | FALSE | FALSE | FALSE |
FALSE | NULL | FALSE | NULL |
NULL | NULL | NULL | NULL |
A | NOT A |
TRUE | FALSE |
FALSE | TRUE |
NULL | NULL |
Query yang digunakan untuk menampilkan data :
SELECT * FROM namatabel WHERE nama_kolom = ‘pencarian 1’ and nama_kolom = ‘pencarian 2’;
Atau
SELECT * FROM nama_tebel WEHRE nama_kolom = ‘pencarian 1’ or nama_kolom = ‘pencarian 2’;
BETWEEN
Operator Between digunakan untuk mencari apakah nilai suatu atribut dalam rentang nilai tertentu dan menentukan lebar nilai dari nilai terendah dan nilai tertinggi. Pada between menggunakan operator perbangingan seperti berikut :
Logika operator between adalah :
Nilai a dalam formula “a BETWEEN x ADN y” identik “a >= x AND a <=y”
“a NOT BETWEEN x AND y” identik dengan “a < x OR a > y”
Query yang digunakan seperti berikut :
SELECT * FROM nama_tabel WHERE nama_kolom bETWEEN ‘nilai_awal’ AND ‘nilai_akhir’;
IN dan ONT IN
Operator IN digunakan untuk mencari apakah nila suatu atribut ada di dalam himpunan nilai lain yang bertipe sama. Operator IN berguna melakukan percocokan dengan salah satu yang ada pada suatu daftar nilai. Berikut struktur yang digunakan :
SELECT * FROM nama_tabel WHERE nama_kolom IN (kata_kunci1, kata_kunci2, kata_kunci3, kata_kunciN);
LIKE
Operator LIKE digunakan untuk mencari sebuah data yang hanya diwakili oleh salah satu karakter, baik di awal, tengah, maupun di akhir. Misalkan kita mencari data dengan nama shinta, maka dapat digunakan operator LIKE dengan mencari karakter S. Untuk pengunaan operator LIKE berikut ini tabel query penggunaannya sesuai kebutuhan :
Berikut query yang digunakan untuk operator LIKE:
SELECT * FROM nama_tabel WHERE nama_kolom LIKE ‘OPERATOR_LIKE’;
REGEXP
Operator regexp merupakan kependekan dari REGULAR EXPRESSION yang fungsinya sama dengan opertor LIKE, namun lebih disempurnakan lagi. Operator REGEXP merupakan sebuah cara untuk mencari persamaan-persamaan string atau data dan memanipulasinya. Biasanya lebih sering digunakan untuk string. Dalam PostgreSQL disimbolkan dengan karakter “~”. Dalam operasinya, operator ini menggunakan kode-kode tambahan seerti berikut ini :
DISTINCT
Dalam sebuah tabel kemungkinan berisi data yang sama sehingga menghasilkan output yang ganda. Untuk menhindari terjadinya duplikasi, maka dapat digunakan DISTINCT kedalam query SELECT yang berarti bahwa ada outputnya tidak terjadi kesamaan data meskipun pada data sesungguhnya sanggat mungkin banyak duplikasi. Hal ini berlaku jika data yang ada dalam bentuk angka. Berikut ini query perbedaan antara query SELET dengan DISTINCT dan tanpa DISTINCT.
SELECT nama_kolom FROM nama_tabel;
SELECT DISTINCT nama_kolom FROM nama_tabel;
Lawan dari DISTINCT adalah ALL, yang berarti semuat outputnya akan ditampilkan. Tetapi karena secara default SQL memperbolehkan adanya output ganda makan penggunaannya dapat diabaikan.
LIMIT dan OFFSET
LIMTI dan OFFSET digunakan untuk membatasi jumlah output dari query berdasarkan jumlah row dan bukan karena kondisi WHERE. Bisa dikatakan LIMIT adalah untuk menentukan jumlah baris yang akan ditampilkan mulai dari baris pertama. Untuk OFFSET berlawanan dengan LIMIT, OFFSET digunakan untuk menghilangkan jumlah baris sesuai dengan jumlah yang diberikan pada querynya. Berikut query penggunaannya :
SELECT * FROM nama_tabel LIMIT values;
Atau
SELECT * FORM nama_tabel OFFSET values;
UNION, EXCEPT, dan INTERSECT
Hasil dari dua tabel dapat dikombinasikan dengan menggunakan UNION, EXCEPT, maupun INTERSECT dengan syarat bahwa kedua tabelnya harus UNION COMPATIBLE (nama fieldnya sama, nama atributnya sama, serta tipe datanya sama). Operasi ini sama dengan operasi ∪, -, ∩ dalam aljabar relasional.
UNION
Digunakan untuk menggabungkan hasil dua buah tabel menjadi satu dengan hasil dari output kedua output tabel di atas. Berikut query UNION :
SELECT * FROM nama_tabel1 UNION SELECT * FROM nama_tabel2;
EXCEPT
EXCEPT digunakan untuk menampilkan hanya tabel pertama saja, sedangkan hasil tabel kedua dan yang sama dengan hasil tabel pertama tidak akan ditampilkan. Pada DBMS dikenal dengan MINUS. Query dari EXCEPT hampir sama dengan UNION hanya mengganti penghubungnya seperti berikut :
SELECT * FROM nama_tabel1 EXCEPT SELECT * FROM nama_tabel2;
INTERSECT
INTERSECT hanya akan menampilkan seluruh seluruh isi dari tabel yang memiliki kesamaan diantara hasil kedua tabel tersebut. Berikut query penggunaan INTERSECT :
SELECT * FROM nama_tabel1 INTERSECT SELECT * FROM nama_tabel2;
berikut gambaran penggunaan ketiga query di atas :
BAB II
Hasil PrakikumPersiapan praktek : Gunakan tabel mahasiswa dan fakultas pada pertemuan 3. Tambahkan kolom gender di tabel mahasiswa kemudian update data mahasiswa. Insert data mahasiswa hingga 7 baris.
Seperti sebelumnya kita akan menggunakan database dipraktikum sebelumnya, yakni db_afaf13650034.
Pilih tabel mahasiswa dan masukkan input data mahasiswa sampai 7 baris seperti pada pertemuan sebelumnya, tambahkan juga field gender.
Karena sebelumnya pada tabel sudah terdapat data luki namun tabel sebelumnya tidak terdapat kolom gender untuk mengisi kolom gender pada data luki, kita gunakan query :
Sehingga hasilnya seperti ini
1. Berdasarkan tabel sebelumnya yaitu bab 3, tampilkan data mahasiswa dengan nama dari kolomnya berubah menjadi nomor_identitas, nama, alamat,nama_fakultas tanpa harus merubah nama kolom secara permanen.
Untuk merubah nama atribut sementara gunakan query :
SELECT nim_mah AS nomor_identitas, nama_mah AS nama, alamat_mah AS alamat, nama_fak AS nama_fakultas FROM mahasiswa, fakultas WHERE mahasiswa.id_fak = fakultas.id_fak;
Dan hasil dari query di atas adalah :
2. Tampilkan nama mahasiswa fakultas saintek yang berjenis kelamin laki-laki. Kemudian nama mahasiswa fakultas saintek atau berjenis kelamin laki-laki.
Untuk menampilkan data mahasiswa yang berada di fakultas saintek dan berjenis kelamin laki-laki saja, gunakan query :
SELECT * FROM mahasiswa WHERE id_fak = 1 AND gender = ‘L’;
Sedangkan untuk menampilkan nama mahasiswa fakultas saintek atau berjenis kelamin laki-lak,igunakan query :
SELECT * FROM mahasiswa WHERE id_fak = 1 OR gender = ‘L’;
3. Suatu tabel mahasiswa terdapat 7 baris data mahasiswa. Tampilkan data mahasiswa dari nomor 3 sampai dengan 5, kemudian tampilkan juga data mahasiswa yang bukan dari nomor 3 sampai dengan 5 menggunakan between dan tanpa menggunakan between.
Untuk memunculkan data dari nomor 3 sampai 5 gunakan quey :
SELECT * FROM mahasiswa WHERE nim_mah between 3 and 5;
Sedang untuk memunculkan bukan dari nomor 3 sampai nomor 5 menggunakan query :
SELECT * FROM mahasiswa WHERE nim_mah not between 3 and 5;
4. Tampilkan mahasiswa dengan nomor 2,3,5 menggunakan operator IN.
Operator IN digunakan untuk memunculkan 2, 3, 5 akan menggunakan query :
SELECT * FROM mahasiswa WHERE nim_mah IN (2, 3, 5);
5. Tampilkan semua data mahasiswa yang namanya mempunyai awalan huruf “a”.
Untuk menampilkan nama mahasiswa dengan awalan huruf “a” query yang dipakai adalah :
SELECT * FROM mahasiswa WHERE nama_mah LIKE 'A%';
6. Tampilkan semua data mahasiswa yang namanya mempunyai akhiran “a” dan huruf ke-3 dari nama tersebut terdapat huruf “n”.
Untuk mencari nama dengan akhiran “a” dan huruf ketiganya “n” gunakan query :
SELECT * FROM mahasiswa WHERE nama_mah LIKE ‘%a’ and nama_mah LIKE ‘__n%’;
7. Tampilkan nomor fakultas di tabel mahasiswa dengan nomor harus tidak ada yang sama dari baris pertama sampai akhir.
Gunakan distinct, untuk menghilangkan data yang sama :
SELECT DISTINCT id_fak FROM mahasiswa;
8. Tampilkan data mahasiswa 3 baris saja.
Untuk memunculkan data mahasiswa 3 baris saja, gunakan query :
SELECT * FROM mahasiswa LIMIT 3;
9. Tampilkan data mahasiswa dengan ciri-ciri memiliki nama awalan a kemudian kata selanjutnya boleh r atau boleh t atau boleh d. misalkan yang memenuhi kriteria ciri tersebut seperti adi, atik, arif, adam dll.
select * from mahasiswa where nama_mah regexp ~'a[f,d,t]';
10. Buatlah tabel dengan nama organ_dalam dan organ_luar sebagai berikut :
a. Tabel organ_dalam
Nomor
|
Nama
|
1
|
Jantung
|
2
|
Paru-paru
|
3
|
Tenggorokan
|
b. Tabel organ_luar
Nomor
|
Nama
|
1
|
Hidung
|
2
|
Mata
|
3
|
Tenggorokan
|
Berikut ini tabel organ_dalam dan tabel organ_luar,
Organ_dalam
Organ_luar
Union :
SELECT * FROM organ_dalam UNION SELECT * FROM organ_luar;
Except :
SELECT * FROM organ_dalam EXCEPT SELECT * FROM organ_luar;
Intersect :
SELECT * FROM organ_dalam INTERSECT SELECT * FROM organ_luar;
sedangkan serikut ini adalah hasil praktikum dari postgreSQL :
2 | nina | jember | PSIKOLOGI
3 | oppy | bandung | PSIKOLOGI
7 | dani | jember | PSIKOLOGI
4 | dewi | gresik | PSIKOLOGI
5 | rahma | bojonegoro | PSIKOLOGI
14 | luki | ponorogo | saintek
1 | afaf | lamongan | saintek
2 | nina | jember | saintek
3 | oppy | bandung | saintek
7 | dani | jember | saintek
4 | dewi | gresik | saintek
5 | rahma | bojonegoro | saintek
(14 rows)
^
db_afaf13650034=# select * from mahasiswa, fakultas where nama_fak = 'saintek' a
nd gender = 'L';
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | gender | id_fak | nama_f
ak
---------+----------+------------+--------+-----------+--------+--------+-------
---
1 | afaf | lamongan | 1 | 895675622 | L | 1 | sainte
k
7 | dani | jember | 1 | 876843218 | L | 1 | sainte
k
(2 rows)
db_afaf13650034=# select * from mahasiswa, fakultas where nama_fak = 'saintek' o
r gender = 'L';
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | gender | id_fak | nama_f
ak
---------+----------+------------+--------+-----------+--------+--------+-------
----
1 | afaf | lamongan | 1 | 895675622 | L | 2 | PSIKOL
OGI
7 | dani | jember | 1 | 876843218 | L | 2 | PSIKOL
OGI
14 | luki | ponorogo | 2 | 82576658 | | 1 | sainte
k
1 | afaf | lamongan | 1 | 895675622 | L | 1 | sainte
k
2 | nina | jember | 1 | 857312340 | P | 1 | sainte
k
3 | oppy | bandung | 2 | 862345610 | P | 1 | sainte
k
7 | dani | jember | 1 | 876843218 | L | 1 | sainte
k
4 | dewi | gresik | 2 | 86543218 | P | 1 | sainte
k
5 | rahma | bojonegoro | 1 | 873457861 | P | 1 | sainte
k
(9 rows)
db_afaf13650034=# select * from mahasiswa where nim_mah between '3' and '5';
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | gender
---------+----------+------------+--------+-----------+--------
3 | oppy | bandung | 2 | 862345610 | P
4 | dewi | gresik | 2 | 86543218 | P
5 | rahma | bojonegoro | 1 | 873457861 | P
(3 rows)
db_afaf13650034=# select * from mahasiswa offset 3;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | gender
---------+----------+------------+--------+-----------+--------
3 | oppy | bandung | 2 | 862345610 | P
7 | dani | jember | 1 | 876843218 | L
4 | dewi | gresik | 2 | 86543218 | P
5 | rahma | bojonegoro | 1 | 873457861 | P
(4 rows)
db_afaf13650034=# select nim_mah, nama_mah from mahasiswa where nim_mah in(2,3,5
);
nim_mah | nama_mah
---------+----------
2 | nina
3 | oppy
5 | rahma
(3 rows)
db_afaf13650034=# select * from mahasiswa where nama_mah like 'A%';
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | gender
---------+----------+------------+--------+---------+--------
(0 rows)
db_afaf13650034=# select * from mahasiswa where nama_mah like '__n%';
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | gender
---------+----------+------------+--------+-----------+--------
2 | nina | jember | 1 | 857312340 | P
7 | dani | jember | 1 | 876843218 | L
(2 rows)
db_afaf13650034=# select * from mahasiswa where nama_mah like '%A';
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | gender
---------+----------+------------+--------+---------+--------
(0 rows)
db_afaf13650034=# select * from mahasiswa where nama_mah like '%a';
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | gender
---------+----------+------------+--------+-----------+--------
2 | nina | jember | 1 | 857312340 | P
5 | rahma | bojonegoro | 1 | 873457861 | P
(2 rows)
db_afaf13650034=# select * from mahasiswa where nama_mah like 'a%';
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | gender
---------+----------+------------+--------+-----------+--------
1 | afaf | lamongan | 1 | 895675622 | L
(1 row)
db_afaf13650034=# select distinct id_fak from mahasiswa;
id_fak
--------
1
2
(2 rows)
db_afaf13650034=# select * from mahasiswa limit 3;
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | gender
---------+----------+------------+--------+-----------+--------
14 | luki | ponorogo | 2 | 82576658 |
1 | afaf | lamongan | 1 | 895675622 | L
2 | nina | jember | 1 | 857312340 | P
(3 rows)
db_afaf13650034=# select * from mahasiswa where nama_mah ~'a[r,d,t]';
nim_mah | nama_mah | alamat_mah | id_fak | no_telp | gender
---------+----------+------------+--------+---------+--------
(0 rows)
db_afaf13650034=# create table organ_dalam (nomor integer not null, nama varchar
(15));
CREATE TABLE
db_afaf13650034=# create table organ_luar (nomor integer not null, nama varchar(
15));
CREATE TABLE
db_afaf13650034=# insert into organ_dalam values(1, 'jantung');
INSERT 0 1
db_afaf13650034=# insert into organ_dalam values(2, 'paru-paru');
INSERT 0 1
db_afaf13650034=# insert into organ_dalam values(3, 'tenggorokan');
INSERT 0 1
db_afaf13650034=# insert into organ_luar values(1, 'hidung');
INSERT 0 1
db_afaf13650034=# select * from organ_dalam, organ_luar;
nomor | nama | nomor | nama
-------+-------------+-------+--------
1 | jantung | 1 | hidung
2 | paru-paru | 1 | hidung
3 | tenggorokan | 1 | hidung
(3 rows)
db_afaf13650034=# insert into organ_luar values(2, 'mata');
INSERT 0 1
db_afaf13650034=# insert into organ_luar values(3, 'tenggorokan');
INSERT 0 1
db_afaf13650034=# select * from organ_dalam, organ_luar;
nomor | nama | nomor | nama
-------+-------------+-------+-------------
1 | jantung | 1 | hidung
1 | jantung | 2 | mata
1 | jantung | 3 | tenggorokan
2 | paru-paru | 1 | hidung
2 | paru-paru | 2 | mata
2 | paru-paru | 3 | tenggorokan
3 | tenggorokan | 1 | hidung
3 | tenggorokan | 2 | mata
3 | tenggorokan | 3 | tenggorokan
(9 rows)
db_afaf13650034=# select * from organ_dalam;
nomor | nama
-------+-------------
1 | jantung
2 | paru-paru
3 | tenggorokan
(3 rows)
db_afaf13650034=# select * from organ_luar;
nomor | nama
-------+-------------
1 | hidung
2 | mata
3 | tenggorokan
(3 rows)
db_afaf13650034=# select * from organ_dalam union all select * from organ_luar;
nomor | nama
-------+-------------
1 | jantung
2 | paru-paru
3 | tenggorokan
1 | hidung
2 | mata
3 | tenggorokan
(6 rows)
db_afaf13650034=# select * from organ_dalam except select * from organ_luar;
nomor | nama
-------+-----------
2 | paru-paru
1 | jantung
(2 rows)
db_afaf13650034=# select * from organ_dalam intersect select * from organ_luar;
nomor | nama
-------+-------------
3 | tenggorokan
(1 row)
BAB III
Penutup
Kesimpulan
Dalam praktiku kali ini kita mempelajari bagaimana menampilkan output dengan berbagai tampilan dari hanya beberapa baris menggunakan LIMIT, menampilkan sesuai dengan huruf yang dicari dengan LIKE dan menampilkan gambungan dua tabel dengan berbagai cara menggunakan UNION, EXCEPT, INTERSECT, meskipun terdapat perbedaan dalam SQL postgreSQL dengan MySQL, seperti :ada pada perintah EXCEPT dan INTERSECT, pada perintah UNION diantara keduanya menggunakan struktur query yang sama.
Query untuk EXCEPT menggunakan SQL Shell : select*from organ_dalam except select * from organ_luar;
Query untuk EXCEPT menggunakan MYSQL : select * from organ_dalam where nama not in ( select nama from organ_luar);
Query untuk INTERSECT menggunakan SQL Shell: select*from organ_dalam intersect select * from organ_luar;
Query untuk INTERSECT menggunakan MYSQL: : select * from organ_dalam where nama in ( select nama from organ_luar);
Saran
Diperlukan pembelajaran lebih lanjut mengenai perintah dasar sql ikarena terdapat banyak perbedaan query pada bab ini.
Manfaat
Semoga laporan ini bisa menjadi bahan rujukan yang bermanfaat untuk teman-teman dalam mencari pembelajaran mengenai perbedaan operator dasar dari dua DBMS, yakni postgreSQL dan MySQL.
BAB IV
Daftar Pustaka
https://www.scribd.com/doc/98258075/Fungsi-Union-Intersect-Dan-Except-Dbname-Angka
http://hamdanilampuhias.wordpress.com/2014/10/09/pengenalan-operator-dasar-pada-mysql/
http://faculty.utpa.edu/lianx/CSCI4333_2014fall/MySQL-set-operators.pdf
http://www.duniailkom.com/tutorial-mysql-menampilkan-data-dari-tabel-mysql-select/
http://www.duniailkom.com/tutorial-mysql-menampilkan-data-dari-tabel-mysql-select/
Tidak ada komentar:
Posting Komentar