Sabtu, Desember 14, 2013

Select Statement Pada MySQL

Diposting oleh ajeng diana di 18.54

Materi 3 Praktikum SMBD
 I.             SELECT Statement
1.   Mengambil data dengan SELECT
2.   Query menggunakan parameter kondisi WHERE
3.   Query menggunakan beberapa parameter kondisional
4.   Memberikan alias hasil query pada SELECT
5.   Query data bertipe teks dengan pattern matching
6.   Query data unik menggunakan DISTINCT
7.   Membatasi hasil query dengan LIMIT

II
SELECT Statement

Sebelum kita memulai pembahsan dengan SELECT terlebih dahulu kita siapkan tabel baru bernama table pegawai.

mysql> create table pegawai(nip varchar(8) primary key, nama_peg varchar(50), al
amat_peg varchar(50), jabatan varchar(20), gaji int(7));
Query OK, 0 rows affected (0.70 sec)

mysql> desc pegawai;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| nip        | varchar(8)  | NO   | PRI | NULL    |       |
| nama_peg   | varchar(50) | YES  |     | NULL    |       |
| alamat_peg | varchar(50) | YES  |     | NULL    |       |
| jabatan    | varchar(20) | YES  |     | NULL    |       |
| gaji       | int(7)      | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
5 rows in set (0.13 sec)

Lalu kita isikan dengan data yang dudah tersedia

mysql> load data local infile 'G://LAB4/BASISDATA/file.txt' into table pegawai;
Query OK, 15 rows affected (0.63 sec)
Records: 15  Deleted: 0  Skipped: 0  Warnings: 0

1. Mengambil Data dengan SELECT

Perintah select untuk mengambil data sudah sering kita pakai sebelumnya, untuk mengambil seluruh data yang ada di dalam suatu tabel kita bisa menggunakan perintah SELECT * FROM <nama_tabel>
     
      CONTOH :

mysql> select * from pegawai;
+----------+-----------------------+-------------+----------------+---------+
| nip      | nama_peg              | alamat_peg  | jabatan        | gaji    |
+----------+-----------------------+-------------+----------------+---------+
| PEG-1001 | Soeharto Mangundirejo | Yogyakarta  | C.E.O          | 9000000 |
| PEG-1002 | Felix Nababan         | Medan       | Manager        | 8000000 |
| PEG-1003 | Olga Syahputra        | Jakarta     | Kepala Unit    | 6000000 |
| PEG-1004 | Chelsea Olivia        | Bandung     | Kepala Unit    | 6000000 |
| PEG-1005 | Tuti Wardani          | Jawa Tengah | Supervisor     | 4500000 |
| PEG-1006 | Budi Drajat           | Malang      | Supervisor     | 4500000 |
| PEG-1007 | Bambang Pamungkas     | Kudus       | Staff Senior   | 3000000 |
| PEG-1008 | Ely Oktafiani         | Yogyakarta  | Staff Senior   | 3000000 |
| PEG-1009 | Rani Wijaya           | Magelang    | Staff Senior   | 3000000 |
| PEG-1010 | Rano Karno            | Solo        | Staff Junior   | 2000000 |
| PEG-1011 | Rahmadi Sholeh        | Yogyakarta  | Staff Junior   | 2000000 |
| PEG-1012 | Ilham Ungara          | Jakarta     | Staff Junior   | 2000000 |
| PEG-1013 | Endang Melati         | Madiun      | Staff Junior   | 2000000 |
| PEG-1014 | Donny Damara          | Makasar     | Tenaga Kontrak | 1000000 |
| PEG-1015 | Paijem                | Yogyakarta  | Tenaga Kontrak |  500000 |
+----------+-----------------------+-------------+----------------+---------+
15 rows in set (0.00 sec)

Perintah diatas menunjukan seluruh dara dari table pegawai
Kita juga bisa mengambil seluruh data tapi hanya kolom – kolom tertentu dengan perintah dasar : SELECT <NAMA_KOLOM, NAMA_KOLOM > FROM <NAMA_TABEL>
CONTOH :
mysql> select nip, nama_peg from pegawai;
+----------+-----------------------+
| nip      | nama_peg              |
+----------+-----------------------+
| PEG-1001 | Soeharto Mangundirejo |
| PEG-1002 | Felix Nababan         |
| PEG-1003 | Olga Syahputra        |
| PEG-1004 | Chelsea Olivia        |
| PEG-1005 | Tuti Wardani          |
| PEG-1006 | Budi Drajat           |
| PEG-1007 | Bambang Pamungkas     |
| PEG-1008 | Ely Oktafiani         |
| PEG-1009 | Rani Wijaya           |
| PEG-1010 | Rano Karno            |
| PEG-1011 | Rahmadi Sholeh        |
| PEG-1012 | Ilham Ungara          |
| PEG-1013 | Endang Melati         |
| PEG-1014 | Donny Damara          |
| PEG-1015 | Paijem                |
+----------+-----------------------+
15 rows in set (0.00 sec)

2.  Query menggunakan parameter kondisi WHERE

Statement WHERE disini akan digunakan untuk memfilter atau mengatur kolom dan baris mana yang akan kita munculkan atau kita ambil.

PERINTAH DASAR :
SELECT * FROM <nama_table> WHERE <kondisi>

CONTOH :

mysql> select * from pegawai where jabatan='Staff Junior';
+----------+----------------+------------+--------------+---------+
| nip      | nama_peg       | alamat_peg | jabatan      | gaji    |
+----------+----------------+------------+--------------+---------+
| PEG-1010 | Rano Karno     | Solo       | Staff Junior | 2000000 |
| PEG-1011 | Rahmadi Sholeh | Yogyakarta | Staff Junior | 2000000 |
| PEG-1012 | Ilham Ungara   | Jakarta    | Staff Junior | 2000000 |
| PEG-1013 | Endang Melati  | Madiun     | Staff Junior | 2000000 |
+----------+----------------+------------+--------------+---------+
4 rows in set (0.44 sec)
Perintah diatas menunjukkan data pegawai yang difilter berdasarkan jabatan yg berisi staff junior

mysql> select nip, nama_peg from pegawai where jabatan='Staff Junior';
+----------+----------------+
| nip      | nama_peg       |
+----------+----------------+
| PEG-1010 | Rano Karno     |
| PEG-1011 | Rahmadi Sholeh |
| PEG-1012 | Ilham Ungara   |
| PEG-1013 | Endang Melati  |
+----------+----------------+
4 rows in set (0.00 sec)
Untuk menampilkan tidak semua data atau hanya data pada kolom – kolom tertentu yg telah dituliskan dan tetap berdasarkan jabatan = junior staff

3.  Query menggunakan beberapa parameter kondisional

Perintah yang digunakan disini menggunakan WHERE tapi yang membedakan perintah yang digunakan lebih menunjukkan kondisi yang diinginkan, dengan bisa menggunakan penggabungan beberapa parameter untuk menampilkan data. Penggabungan ini bisa menggunakan perintah AND atau OR, untuk lebih jelasnya bisa dilihat contoh :
mysql> select * from pegawai where alamat_peg ='Yogyakarta' AND gaji < 4000000;
+----------+----------------+------------+----------------+---------+
| nip      | nama_peg       | alamat_peg | jabatan        | gaji    |
+----------+----------------+------------+----------------+---------+
| PEG-1008 | Ely Oktafiani  | Yogyakarta | Staff Senior   | 3000000 |
| PEG-1011 | Rahmadi Sholeh | Yogyakarta | Staff Junior   | 2000000 |
| PEG-1015 | Paijem         | Yogyakarta | Tenaga Kontrak |  500000 |
+----------+----------------+------------+----------------+---------+
3 rows in set (0.00 sec)
Perintah diatas menunjukkan pemfilteran dengan 2 kondisi yaitu berdasarkan alamat_peg dan gaji yang kurang dari 4jt

mysql> select nip, nama_peg from pegawai where alamat_peg ='Yogyakarta' OR alamat_peg ='Jakarta';
+----------+-----------------------+
| nip      | nama_peg              |
+----------+-----------------------+
| PEG-1001 | Soeharto Mangundirejo |
| PEG-1003 | Olga Syahputra        |
| PEG-1008 | Ely Oktafiani         |
| PEG-1011 | Rahmadi Sholeh        |
| PEG-1012 | Ilham Ungara          |
| PEG-1015 | Paijem                |
+----------+-----------------------+
6 rows in set (0.00 sec)
Jika perintah diatas menunjukkan data yang mempunyai alamat di Yogyakarta atau di Jakarta

4.  Memberikan alias hasil query pada SELECT

Kita bisa menggunakan perintah SELECT untuk membuat alias pada suatu kolom dengan perintah AS.

mysql> select nama_peg AS nama_pegawai, alamat_peg AS asal from pegawai where alamat_peg='Jakarta';
+----------------+---------+
| nama_pegawai   | asal    |
+----------------+---------+
| Olga Syahputra | Jakarta |
| Ilham Ungara   | Jakarta |
+----------------+---------+
2 rows in set (0.00 sec)
Di sini pada saat menampilkan hasil, nama kolom akan diganti dengan perintah AS

5.  Query data bertipe teks dengan pattern matching

Menampilkan data dengan mencocokan (matching) dengan kondisi yang kita inginkan.
Dengan menggunakan perintah ‘LIKE’ untuk perintah ‘seperti’ dan ‘NOT LIKE’ untuk perintah ‘tidak seperti’ dan beberapa simbol matching yg ada di SQL yaitu ‘_’ dan ‘%’ untuk lebih jelasnya bisa lihat di contoh :

mysql> select nama_peg from pegawai where jabatan like 'M______';
+---------------+
| nama_peg      |
+---------------+
| Felix Nababan |
+---------------+
1 row in set (0.00 sec)

Pada perintah diatas menunjukkan bahwa data yang diminta adalah data yang memuat Jabatan berawalan M dan berjumlag 7 huruf.

mysql> select nama_peg from pegawai where jabatan like 'M%';
+---------------+
| nama_peg      |
+---------------+
| Felix Nababan |
+---------------+
1 row in set (0.00 sec)
Perintah di atas menunjukkan data yang diminta adalah data nama pegawai yang jabatannya berawalan huruf ‘M’

mysql> select nama_peg from pegawai where alamat_peg like '%A';
+-----------------------+
| nama_peg              |
+-----------------------+
| Soeharto Mangundirejo |
| Olga Syahputra        |
| Ely Oktafiani         |
| Rahmadi Sholeh        |
| Ilham Ungara          |
| Paijem                |
+-----------------------+
6 rows in set (0.00 sec)
Perintah di atas menunjukkan data yang diminta adalah data nama pegawai yang alamatnya berakhiran huruf ‘A’

6.  Query data unik menggunakan DISTINCT
Perintah DISTINCT digunakan untuk menampilkan data yang unik, jadi jika ada data yang sama tidak akan ditampilkan.



mysql> select alamat_peg from pegawai;
+-------------+
| alamat_peg  |
+-------------+
| Yogyakarta  |
| Medan       |
| Jakarta     |
| Bandung     |
| Jawa Tengah |
| Malang      |
| Kudus       |
| Yogyakarta  |
| Magelang    |
| Solo        |
| Yogyakarta  |
| Jakarta     |
| Madiun      |
| Makasar     |
| Yogyakarta  |
+-------------+
15 rows in set (0.00 sec)


mysql> select distinct alamat_peg from pegawai;
+-------------+
| alamat_peg  |
+-------------+
| Yogyakarta  |
| Medan       |
| Jakarta     |
| Bandung     |
| Jawa Tengah |
| Malang      |
| Kudus       |
| Magelang    |
| Solo        |
| Madiun      |
| Makasar     |
+-------------+
11 rows in set (0.05 sec)



7.  Membatasi hasil query dengan LIMIT
Perintah LIMIT ini akan membatasi jumlah data yang akan kita tampilkan.

mysql> select * from pegawai LIMIT 5;
+----------+-----------------------+-------------+-------------+---------+
| nip      | nama_peg              | alamat_peg  | jabatan     | gaji    |
+----------+-----------------------+-------------+-------------+---------+
| PEG-1001 | Soeharto Mangundirejo | Yogyakarta  | C.E.O       | 9000000 |
| PEG-1002 | Felix Nababan         | Medan       | Manager     | 8000000 |
| PEG-1003 | Olga Syahputra        | Jakarta     | Kepala Unit | 6000000 |
| PEG-1004 | Chelsea Olivia        | Bandung     | Kepala Unit | 6000000 |
| PEG-1005 | Tuti Wardani          | Jawa Tengah | Supervisor  | 4500000 |
+----------+-----------------------+-------------+-------------+---------+
5 rows in set (0.00 sec)



0 komentar:

Posting Komentar

 

ajeng diana Copyright © 2015 Design by ajengdiana dianastore