SYNTAX AQL
A. Syntax SQL
Berikut ini akan saya perlihatkan syntax SQL pada SQL Server untuk beberapa kasus.:
1. Perintah Select
Perintah select adalah perintah yang digunakan untuk mengambil data yang ada di dalam table. Sintax nya adalah : SELECT field-1, field-2, .... field-n FROM namatabel
Contoh :
ada 3 data dari tabel mahasiswa berupa nim, nama
data-1 : | 10104417 | Kurnia Hidayat |
data-2 : | 10104422 | Ekky Patria Kencana |
data-3 : | 10104427 | Ogan Sukmawan |
Dengan menggunakan perintah "Select * From mahasiswa" maka akan didapatkan data2 tersebut,
| 10104417 | Kurnia Hidayat |
| 10104422 | Ekky Patria Kencana |
| 10104427 | Ogan Sukmawan |
2. Klausa Where
Where digunakana untuk menyaring data dalam syntax/command SQL yg kita gunakan. Syntax : <arguments> WHERE <arguments> <operator> <arguments>
Tabel operator yang dapat digunakan :
> |
Lebih besar |
< |
Lebih kecil |
>= |
Lebih besar sama dengan |
<= |
Lebih kecil sama dengan |
= |
Sama dengan |
<> |
Tidak sama dengan |
Between x and y |
Antara x dan y |
Like |
Seperti... bla bla bla... (dengan / mengandung format tertentu) |
Is Null |
Kosong / Tidak memiliki nilai |
In |
Nilai berada di dalam tanda ( dan tanda ) |
Klausa Where Lanjutan
Berikut ini adalah contoh-contoh penggunaan operator pembanding tersebut dalam query
a. Ambil data "barang" yang "jml" nya lebih dari 20
SQL = " SELECT * From barang WHERE jml > 20 "
b. Ambil data "nilai_mhs" yang "nilai" nya kurang dari 60
SQL = " SELECT * From nilai_mhs WHERE nilai < 60 "
c. Ambil data "barang" yang "jml" nya lebih besar sama dengan 20
SQL = " SELECT * From barang WHERE jml >= 20 "
d. Ambil data "nilai_mhs" yang "nilai" nya lebih kecil sama dengan 60
SQL = " SELECT * From nilai_mhs WHERE nilai <= 60 "
e. Hapus data "mahasiswa" yang memili "NIM" sama dengan "10104422"
SQL = " DELETE * From mahasiswa WHERE NIM = '10104422' "
f. Ambil data "barang" yang "nama_barang" nya mengandung kata "Ice"
SQL = " SELECT * From barang WHERE nama_barang like '%Ice%' "
g. Ambil data "barang" yang "kode_brg" nya berawalan "C"
SQL = " SELECT * From barang WHERE kode_brg like 'C%' "
h. Ambil data "barang" yang "kode_brg" nya berakhiran '2008'
SQL = " SELECT * From barang WHERE kode_barang like '%2008' "
i. Ambil data "barang" yang "jml" nya bernilai null
SQL = " SELECT * From barang WHERE jml is null "
j. Ambil data "mahasiswa" yang "usia" nya antara 17 - 19tahun
SQL = " SELECT * From mahasiswa WHERE usia >=17 and usia<=19 "
3. Klausa Order By
Singkatnya, klausa ini digunakan untuk menrutkan data berdasarkan sesuatu / field. Order by ini secara defaultnya bersifat ascending (klo gak salah, hehe...)
Sejalan dengan order by, ada 2 buah variable lain yg dapat diikut serta kan, yakni ASC dan DESC.
- ASC untuk mengurutkan data dari yang bernilai kecil hingga ke data yang bernilai besar
- DESC untuk mengurutkan data dari yang bernilai besar hingga ke data yang bernilai kecil
Syntax : <arguments> ORDER BY <field> <asc> / <desc>
Contoh dari data mahasiswa pada contoh penggunaan select dapat dilakukan :
1. "SELECT * From mahasiswa ORDER BY NIM desc"
hasilnya adalah :
| 10104427 | Ogan Sukmawan |droLL2011
| 10104422 | Ekky Patria Kencana |
| 10104417 | Kurnia Hidayat |
2. "SELECT * From mahasiswa ORDER BY nama asc"
hasilnya adalah :
| 10104422 | Ekky Patria Kencana |
| 10104417 | Kurnia Hidayat |
| 10104427 | Ogan Sukmawan |
4. Aritmethic Function
Fungsi - fungsi aritmetika yang dapat dijalankan / diambil pada suatu SQL / data
Contoh : data awal berupa NIM, Nama Lengkap, Nilai
| 10104417 | Kurnia Hidayat | 80 |
| 10104422 | Ekky Patria Kencana | 85 |
| 10104427 | Ogan Sukmawan | 75 |
Beberapa eksekusi / function yang ada di T-SQL :
1. Sum : menjumlahkan suatu field
syntax : "select sum(Nilai) from mahasiswa"
result : 240
2. Max : mengambil data terbesar
syntax : "select max(Nilai) from mahasiswa"
result : 85
3. Min : mengambil data terkecil
syntax : "select sum(Nilai) from mahasiswa"
result : 75
4. Avg : menghitung nilai rata-rata
syntax : "select avg(Nilai) from mahasiswa"
result : 80
5. Count : menghitung banyak record
syntax : "select count * from mahasiswa"
result : 3
5. Klausa Alternatif
- Group by : mengelompokkan pemanggilan data, biasanya dilakukan untuk mengelompokkan
hasil kalkulasi pada fungsi aritmetika sebelumnya
contoh : "SELECT kode_brg, SUM(jml) as total FROM penjualan GROUP BY kode_brg"
- Distinct : membuang data yang sama (saat view mode) contoh tanpa distinct : A0001, A0001, A0002, A0003, A0002 dengan distinct : "SELECT DISTINCT kode_brg FROM penjualan" maka hasil = A0001, A0002, A0003
6. Insert Comman
Insert disini berarti menambahkan sebuah record baru ke dalam tabel / database yang telah ada. Ada 3 buah alternatif untuk melakukan perintah ini, yakni :
a. Alternatif 1 : mengikutsertakan nama field yang ada pada table
"Insert into mahasiswa (NIM, Nama_Lengkap, Nilai) values ('10104417', 'Kurnia Hidayat', 80)"
Hasilnya adalah
| NIM | Nama_Lengkap | Nilai |
| 10104417 | Kurnia Hidayat |
"Insert into mahasiswa (NIM, Nama_Lengkap) values ('10104427', 'Ogan Sukmawan')"
Hasilnya adalah
| NIM | Nama_Lengkap | Nilai |
| 10104427 | Ogan Sukmawan | <null> |
b. Alternatif 2 : tidak mengikutsertakan nama field yang ada pada table
(syaratnya adalah value sama dengan jumlah fieldnya)
"Insert into mahasiswa values ('10104422', 'Ekky Patria Kencana', 85)" Hasilnya adalah sukses :
| NIM | Nama_Lengkap | Nilai |
| 10104422 | Ekky Patria Kencana | 85 |
"Insert into mahasiswa values ('10104422', 85)" Hasilnya adalah ERROR karena jumlah inputan tidak sama dengan jumlah field yang terdapat pada tabel.
c. Alternatif 3 : menyalin data dari table yang memiliki field / attribut yang sama dengan field yang akan disalin (minimal sama dari type field nya)
"Insert into mahasiswa select * from mhs" Hasilnya adalah semua data yang ada di table mhs akan dimasukkan ke table mahasiswa
7. Update Command
Perintah update berarti mengubah isi field dari sebuah tabel.
Misalkan semua kuantitas barang yang ada di tabel master barang hendak direset / diubah menjadi 0,
maka dapat dilakukan dengan perintah :
" Update msbarang set qty=0 "
Selain itu, kita juga dapat meng-update beberapa field sekaligus dengan perintah : " Update msbarang set qty=0, min_qty=5 "
Masih ada beberapa hal lainnya yang dapat kita lakukan dengan update data.
Seperti update data dengan situasi tertentu (misal kode_brg = 'A0001' lalu update harga jual menjadi 10000)
" Update msbarang set harga_jual = 10000 where kode_brg = 'A0001' "
8. Delete Command
Perintah delete berarti menghapus isi field dari sebuah tabel.
Misalkan semua barang yang ada di tabel temporary barang hendak dihapus,
maka dapat dilakukan dengan perintah :
" Delete * from temp_barang"
Masih ada beberapa hal lainnya yang dapat kita lakukan dengan delete data.
Seperti delete data dg situasi tertentu
(misal hapus semua record pada tabel barang dg kode_brg = 'A0001')
" Delete * from barang 10000 where kode_brg = 'A0001' "
INNER JOIN :
Fungsi Inner Join Dalam SQL – Pada kesempatan kali ini saya akan memberikan informasi mengenai Fungsi Inner Join Dalam SQL.Setelah beberapa saat lalu saya memberikan informasi mengenai Cara Mengetahui MAC Address Dengan Visual Basic 6 kali ini saya akan memberikan sedikit artikel sederhana mengenai Fungsi Inner Join Dalam SQL.Banyak yang belum memahami mengenai apa itu Fungsi Inner Join Dalam SQL.
B. Penggunaan LEFT, INNER, dan RIGHT JOIN
Kali ini aku sedikit sharing buat rekan-rekan semua, terutama buat yang suka dengan database MySQL. tapi g cuma database MySQL aja, buat database yang lain sepertinya hal ini bisa dicoba, mungkin sedikit bahasanya yang beda. Coz semua bahasa pemograman itu intinya sama, tinggal disesuain aja dengan logat bahasa program itu sendiri. hehehe ....
Ok lanjut aja yach .... mumpung masih pagi ini ( jam 6 ), ntar lagi aku mo mandi trus berangkat jadi kuli. Mungkin rekan-rekan dah tahu penggunaan query di dB MySQL, namun kali ini coba query dengan relasi antar tabel.
Dalam query tabel di dB ada tiga macam ( yang kuketahui saat ini ) :
- LEFT JOIN
- INNER JOIN
- RIGHT JOIN
LEFT JOIN adalah relasi antar tabel, namun query yang ditampilkan adalah mengacu pada tabel yang sebelah kiri / tabel utama.
misal seperti ini :
mysql> select * from mahasiswa order by id asc;
+----+--------------+----------+-----------------------+----------+
| id | nim | kota | fakultas | angkatan |
+----+--------------+----------+-----------------------+----------+
| 1 | A10.111.1031 | Semarang | Manajemen Informatika | 2010 |
| 2 | A10.111.1032 | Semarang | Teknik Informatika | 2010 |
| 3 | A11.111.1040 | Kudus | Manajemen Informatika | 2009 |
| 4 | A11.111.1041 | Salatiga | Sistem Informasi | 2009 |
| 5 | A11.111.1043 | Demak | Teknik Informatika | 2010 |
+----+--------------+----------+-----------------------+----------+
5 rows in set (0.05 sec)
mysql> select * from nim order by id asc;
+----+--------------+----------+
| id | nim | nama |
+----+--------------+----------+
| 1 | A10.111.1031 | Musthofa |
| 2 | A10.111.1032 | Bisri |
| 3 | A11.111.1040 | Alex |
| 4 | A11.111.1041 | Graham |
+----+--------------+----------+
4 rows in set (0.00 sec)
Jika kedua tabel itu kita relasi dengan LEFT JOIN maka akan menjadi seperti ini :
mysql> select a.id, a.nim, a.kota, a.fakultas, a.angkatan, b.nama from mahasiswa a left join nim b on a.nim=b.nim;
+----+--------------+----------+-----------------------+----------+----------+
| id | nim | kota | fakultas | angkatan | nama |
+----+--------------+----------+-----------------------+----------+----------+
| 1 | A10.111.1031 | Semarang | Manajemen Informatika | 2010 | Musthofa |
| 2 | A10.111.1032 | Semarang | Teknik Informatika | 2010 | Bisri |
| 3 | A11.111.1040 | Kudus | Manajemen Informatika | 2009 | Alex |
| 4 | A11.111.1041 | Salatiga | Sistem Informasi | 2009 | Graham |
| 5 | A11.111.1043 | Demak | Teknik Informatika | 2010 | NULL |
+----+--------------+----------+-----------------------+----------+----------+
5 rows in set (0.00 sec)
nah terlihat total data yang ditampilkan ada 5 baris, namun lihat pada baris kelima kolom nama, disitu tertulis NULL. kenapa NULL ? yach karena data tidak ditemukan di tabel nim.
Nah, jika INNER JOIN query yang ditampilkan adalah data yang sama antara tabel pertama dengan tabel kedua, misalnya kayak gini :
mysql> select a.id, a.nim, a.kota, a.fakultas, a.angkatan, b.nama from mahasiswa a right join nim b on a.nim=b.nim;