10/01/14

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

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)

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

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

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’

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