Pengertian SQL

Pengertian SQL  – Beberapa waktu yang lalu di blog ini kami telah membahas mengenai pengertian database, untuk membacanya silahkan kunjungi artikel  Pengertian Database dan Manfaat Penggunaan Database . Di dalam artikel tersebut kami hanya membahas sekilas mengenai database, dan untuk itu artikel kali ini akan menyempurnakan pembahasan sebelumnya mengenai database. Pertama yang harus kita ketahui jika ingin belajar membuat database adalah mengetahui istilah SQL. Apa itu SQL dan apa hubungannya dengan database? Simak pembahasan kami berikut ini mengenai  pengertian SQL . Pengertian SQL SQL adalah singkatan dari Structured Query Language. Sedangan  pengertian SQL adalah suatu bahasa (language) yang digunakan untuk mengakses data di dalam sebuah database relasional. SQL sering juga disebut dengan istilah query, dan bahasa SQL secara praktiknya digunakan sebagai bahasa standar untuk manajemen database relasional. Hingga saat ini hampir seluruh server database atau software database me

Menghapus Duplikasi Data dengan Query DISTINCT

Pada Tutorial Belajar MySQL kali ini kita akan membahas tentang query DISTINCT. Query ini digunakan untuk menghapus atau mengeleminasi duplikasi dari hasil tampilan SELECT. Sama seperti query AS, ORDER BY, dan LIMIT, query DISTINCT ini digunakan sebagai tambahan dari query utamanya, yakni SELECT.


Mempersiapkan tabel sample: daftar_dosen

Dikarenakan keperluan untuk contoh tabel, saya akan mengupdate data tabel daftar_dosendengan data yang baru. Isi tabel daftar_dosen yang baru adalah:
Tabel daftar_dosen ver.2
NIPNama DosenNo HPAlamat
0160436012Sabrina Sari0812349900Pekanbaru
0260432002Maya Ari Putri0812342342Palembang
0275430005Susi Indriani0812656532Bogor
0480432066Tia Santrini0812451177Padang
0576431001M. Siddiq0812979005Jakarta
0770435006Rubin Hadi0812567678Papua
0869437003Mustalifah0812338877Aceh
1080432007Arif Budiman0812456345Makasar
0785531001Siswanto0852878006Padang
0867221006Rudi Arwana0823987598Jakarta
0173551078Aria Sulistya0880743523Jakarta
0360432014Suci Syuhada0812341122Palembang
Jika anda ingin menggunakan data tabel yang sama, silahkan input ke dalam tabel_daftar dosen secara manual, atau menggunakan query LOAD DATA INFILE dibawah, untuk file txt dapat diperoleh dari sample data tabel daftar_dosen ver.2.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
mysql> TRUNCATE daftar_dosen;
Query OK, 0 rows affected (0.05 sec)
 
mysql> LOAD DATA INFILE 'D:\\MySQL\\daftar_dosen.txt'
INTO TABLE daftar_dosen
FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
Query OK, 12 rows affected (0.04 sec)
Records: 12  Deleted: 0  Skipped: 0  Warnings: 0
 
mysql> SELECT * FROM daftar_dosen;
+------------+----------------+------------+-----------+
| NIP_dosen  | nama_dosen     | no_hp      | alamat    |
+------------+----------------+------------+-----------+
| 0160436012 | Sabrina Sari   | 0812349900 | Pekanbaru |
| 0173551078 | Aria Sulistya  | 0880743523 | Jakarta   |
| 0260432002 | Maya Ari Putri | 0812342342 | Palembang |
| 0275430005 | Susi Indriani  | 0812656532 | Bogor     |
| 0360432014 | Suci Syuhada   | 0812341122 | Palembang |
| 0480432066 | Tia Santrini   | 0812451177 | Padang    |
| 0576431001 | M. Siddiq      | 0812979005 | Jakarta   |
| 0770435006 | Rubin Hadi     | 0812567678 | Papua     |
| 0785531001 | Siswanto       | 0852878006 | Padang    |
| 0867221006 | Rudi Arwana    | 0823987598 | Jakarta   |
| 0869437003 | Mustalifah     | 0812338877 | Aceh      |
| 1080432007 | Arif Budiman   | 0812456345 | Makasar   |
+------------+----------------+------------+-----------+
12 rows in set (0.00 sec)

Cara Menggunakan Query DISTINCT Untuk Menghapus Duplikasi

Penekanan untuk judul diatas, query DISTINCT digunakan hanya untuk memanipulasi tampilan hasil dari tabel. Duplikasi yang dihapus adalah untuk tampilan data, bukan tabel asli dari MySQL.
Misalkan dari tabel daftar_dosen, kita ingin menampilkan hanya asal kota dari seluruh dosen yang ada. Maka querynya adalah sebagai berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mysql> SELECT alamat FROM daftar_dosen ORDER BY alamat;
+-----------+
| alamat    |
+-----------+
| Aceh      |
| Bogor     |
| Jakarta   |
| Jakarta   |
| Jakarta   |
| Makasar   |
| Padang    |
| Padang    |
| Palembang |
| Palembang |
| Papua     |
| Pekanbaru |
+-----------+
12 rows in set (0.00 sec)
Saya menambahkan perintah ORDER BY agar tampilan lebih rapi dengan diurutkan berdasarkan alamat.
Dari hasil query tersebut, dapat dilihat bahwa nama kota yang sama akan tampil lebih dari sekali. Hal ini terjadi karena terdapat beberapa dosen yang kebetulan beralamat di kota yang sama dengan dosen lainnya. Jika yang kita inginkan bahwa untuk setiap kota yang sama, hasil query harus muncul 1 kali saja, kita akan memerlukan perintah DISTINCT.

Cara Penulisan Query DISTINCT

Format dasar penulisan query DISTINCT adalah sebagai berikut:
SELECT DISTINCT nama_kolom FROM nama_tabel;
  • Nama_kolom adalah nama kolom yang akan ditampilkan.
  • Nama_tabel adalah nama tabel untuk kolom yang akan ditampilkan.
Sehingga untuk contoh kasus kita sebelumnya untuk menampilkan seluruh kota 1 kali saja, maka querynya:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> SELECT DISTINCT alamat FROM daftar_dosen ORDER BY alamat;
+-----------+
| alamat    |
+-----------+
| Aceh      |
| Bogor     |
| Jakarta   |
| Makasar   |
| Padang    |
| Palembang |
| Papua     |
| Pekanbaru |
+-----------+
8 rows in set (0.00 sec)
Dengan penambahan perintah DISTINCT di awal query SELECT, maka hanya data yang unik saja (data yang tidak sama) yang akan ditampilkan. Seandainya hasil query terdapat data yang sama lebih dari 1 kali tampil, perintah DISTINCT hanya akan menampilkannya 1 kali saja.
Namun jika kita menambahkan kolom nama_dosen seperti query berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mysql> SELECT DISTINCT nama_dosen,alamat FROM daftar_dosen
ORDER BY alamat;
+----------------+-----------+
| nama_dosen     | alamat    |
+----------------+-----------+
| Mustalifah     | Aceh      |
| Susi Indriani  | Bogor     |
| Aria Sulistya  | Jakarta   |
| M. Siddiq      | Jakarta   |
| Rudi Arwana    | Jakarta   |
| Arif Budiman   | Makasar   |
| Siswanto       | Padang    |
| Tia Santrini   | Padang    |
| Maya Ari Putri | Palembang |
| Suci Syuhada   | Palembang |
| Rubin Hadi     | Papua     |
| Sabrina Sari   | Pekanbaru |
+----------------+-----------+
12 rows in set (0.06 sec)
Terlihat bahwa MySQL tetap menampilkan seluruh isi tabel tanpa ada yang dieliminasi. Hal ini dikarenakan query DISTINCT hanya mengeleminasi query yang unik, atau tidak sama dilihat secara baris per baris (per record). Dengan mengkombinasikan nama_dosen dengan alamat, maka setiap baris dianggap unik, kecuali terdapat nama dosen dan alamat yang persis sama.

Query SELECT … DISTINCT ini cocok digunakan untuk laporan atau menampilkan sebagian data dari tabel.

Comments

Popular posts from this blog

Materi Lengkap tentang Database

BASIS DATA : ERD, DDL, DML, AGREGASI DAN GROUPING

Basis Data (DDL, DML, ERD, Agregasi, Grouping)