Perintah Dasar SQL

 PERINTAH DASAR SQL

Dasar Teori

Bahasa Manipulasi Data adalah salah satu bahasa komputer yang digunakan oleh program komputer dan/atau pengguna database untuk menyisipkan, menghapus, serta update data dalam database.
Saat ini DML yang paling populer adalah yang dari SQL, yang digunakan untuk mengambil dan memanipulasi data database relasional.
Bahasa Manipulasi data ini secara umum terdiri dari empat perintah dasar, yaitu :
- SELECT ...... INTO
- INSERT
- UPDATE
- DELETE
sebelum membahas lebih dalam mengenai  empat perintah dasar DML, akan lebih baiknya jika kita membahas tentang cara membuat relasi pada tabel. 

Hubungan antar tabel (References)
Relasi sendiri artinya adalah hubungan, jadi disini kita akan menghubungkan tabel satu dengan tabel lainnya dalam satu database.
Dalam relational basis data, terdapat istilah kunci utama (primary key) dan kunci tamu (foreign key). Tujuan utama dari adanya kedua istilah tersebut adalah pengidentifikasian tiap table dan kejelasan hubungan antara 2 atau lebih table. Primary key adalah satu atau beberapa kolom pada table yang mengidentifikasikan tiap kolom dan baris pada table tersebut. Sedangkan Foreign Key adalah satu atau beberapa kolom pada table yang merupakan primary key pada table satu namun diletakan pada table dimana tabelnya berelasi dengan table dirinya.

Dalam pembuatan tabel berelasi, perlu diperhatikan dahulu mana tabel induk dan mana tabel anak agar lebih mudah pada pemodifikasian data tabel kedepannya. Dalam contoh ini yang menjadi induk adalah tabel macam barang. Lalu melanjutkan ke pembuatan tabel barang. Berikut query nya:
-       “create table macam_barang (id_mac integer not null, nama_mac varchar(15), guna_mac     varchar(40), primary key (id_mac));”
-       “create table barang (id_bar integer not null, nama_bar varchar(15), id_mac integer not null references macam_barang, primary key (id_bar, id_mac));”
query diatas dapat diberlakukan pada PostgreSQL maupun MySQL.
atau pada saat kita lupa memberikan references pada tabel macam barang, kita bisa mnambahkan query seperti ini:
“alter table barang add constraint relasi_barang foreign key (id_mac) references macam_barang (id_mac) on update no action on delete no action;”


Perlu diingat, syarat melakukan references pada tabel adalah tabel yang dihubungkan harus memiliki sebuah field dengan tipe data yang sama, harus dibentuk Primary Key dan Foreign Key pada kedua field bertipe data sama.

Memasukkan Data
Query memasukkan/menyisipkan data pada SQL ialah  INSERT, proses memasukkan data yang dimaksudkan adalah data yang ada di dalam kolom pada sebuah tabel. Jadi lebih ke_isi tabel bukan desain tabel. Query INSERT dalam  tabel berelasi harus memperhatikan urutan.
Urutan antar peng_insert_an yang dimaksudkan disini adalah urutan antara tabel induk dan tabel anak. Langkah awal yang dilakukan adalah peng_insert_an pada tabel induk, setelah dirasa cukup baru dilanjutkan pada peng_insert_an tabel anak. Sebagai contoh memasukkan data pada tabel dengan nama identitas dan field-fieldnya seperti dibawah ini:
untuk query nya seperti dibawah ini,
"INSERT into identitas values(1, 'dwi', '1995-03-31', false, 'programmer');"
yang perlu diingat dalam menginsertkan data dalam suatu tabel adalah urutan kolom kolom yang ada dalam tabel, karena jika data yang kita inputkan kolomnya tertukar maka akan error.
Menampilkan Data
Menampilkan data dari sebuah tabel mungkin merupakan hal paling sering kita lakukan dalam menangani database.  Perintah SELECT pada MySql biasanya digunakan untuk menampilkan data yang berada di dalam tabel. Perintah SELECT mempunyai banyak sekali variasi. Mungkin bisa disebut perintah yang mempunyai variasi paling banyak di antara perintah-perintah lainnya. 
- Bentuk umum perintah select
"select [kolom-yang-ingin-ditampilkan] from [nama tabel] where [condition];"
>> penggunaan where[condition] merupakan opsional/pilihan/tidak wajib, gunakan jika memang dibutuhkan.
- Menampilkan semua data dalam sebuah table

"select * from namatabel;"
- Menampilkan data dalam kolom tertentu  
"select kolom1,kolom2,kolom3 from nama_tabel;"
- Menampilkan data dalam kolom tertentu dengan kondisi tertentu
"select  kolom1,kolom2 from nama_tabel where nama_kolom=kata_kunci;"

>>jika kondisi merupakan sebuah string, jangan lupa memberi tanda kutip satu seperti contoh di bawah ini
"select kolom1,kolom2 from mahasiswa where nama_kolom='kata_kunci';"
- Menampilkan data yang ada dari dua tabel atau lebih

"select nama_kolom, nama_kolom, nama_kolom, nama_kolom from nama_tabel_1, nama_tabel_2 where nama_tabel_1.nama_kolom = nama_tabel_2.nama_kolom;


Pengurutan
Untuk menampilkan suatu hasil query dengan urutan tertentu dapat dilakukan dengan tambahanperintah ORDER BY ,
"SELECT kolom1, kolom2 FROM nama_tabel ORDER BY nama_kolom asc/desc;"
Menghapus Data
menghapus data dalam sebuah tabel berbeda dengan menghapus sebuah tabel maupun kolom ataupun database. menghapus data dalam tabel dengan menggunakan struktur query DELETE, berikut strukturnya :
"delete from namatabel ;"
Arti dari struktur diatas yaitu menghapus semua baris data dari nama tabel yang tertulis. Namun bisa juga digunakan penghapusan berdasarkan spesifikasi baris atau baris tertentu saja. Berikut Strukturnya :
"delete from nama tabel where namakolom = katakunci;"

Satu hal yang perlu diingat dari penghapusan data tabel yang berelasi ialah, sebelum menghapus data yang ada pada tabel induk, data yang berhubungan dengan data tabel induk yang akan dihapus harus dihapus terlebih dahulu.

Modifikasi Data
Modifikasi data yang dimaksudkan disini adalah merubah data yang sudah ada di dalam tabel. modifikasi data biasa disebut dengan perintah UPDATE. Berikut struktur untuk perintah update: 
"update namatabel set namakolom = isidata where namakolom = katakunci;"



TUGAS RUMAH
Hasil Percobaan
Lagi-lagi disini saya akan menampilkan hasil praktikum yang telah saya praktikkan dalam minggu lalu dengan menggunakan DBMS MySQL, dan hasil ini akan menjawab pertanyaan-pertanyaan yang disediakan oleh bapak dosen, sebelum pertanyaan diberikan sebuah gambar "Relasi Antar Tabel" seperti dibawah ini:
dari relasi tabel diatas, munculah pertanyaan-pertanyaan seperti dibawah ini:
Gunakan tabel mahasiswa, tambahkan kolom yang diperlukan kemudian masukkan 3 data mahasiswa sebagai berikut :
Nim : 12
Nama : edi
Alamat : malang
No.telp : 0856453428
Fakultas : SAINTEK

Nim : 13
Nama : sinta
Alamat : jogja
No.telp : 0813347565675
Fakultas : SAINTEK

Nim : 14
Nama : luki
Alamat : ponorogo
No.telp : 082576568798
Fakultas : PSIKOLOGI

untuk mengabulkan pertanyaan diatas, seperti biasa..
kita harus masuk dulu pada database kita,,

lalu, mulailah kita membuat tabel
dari kedua relasi diatas tabel yang seharusnya kita buat terlebih dahulu
adalah tabel fakultas karena tabel fakultas merupakan tabel induk,
sedangkan tabel mahasiswa adalah tabel anak.
berikut query dalam membuat tabel fakultas serta tabel mahasiswa, dengan urutan fakultas dulu baru ke tabel mahasiswa,:
 
langkah selanjutnya ialah menambahkan kolom no_telp pada tabel mahasiswa, karena di tabel awal belum ada kolom no_telp, dengan query : 
ALTER table namatabel add(namakolombaru tipe keterangan);
berikut hasil penyisipan kolom no_telp pada tabel mahasiswa.

setelah kolom no_telp terinput kedalam tabel mahasiswa,, nah inilah saatnya kita menginputkan data-data tersebut diatas,. query sesuai yang tersebut didalam gambar di bawah ini,

query diatas diperuntukkan untuk  menginputkan (menyisipkan kedalam suatu tabel dengan menyisipkan data satu demi satu, tetapi jika ingin menambahkan dengan lebih banyak baris data dalam artian beberapa nama fakultas (kita menyisipkan data fakultas dulu ya,,kan fakultas induknya,,hehe) bisa dilihat perintah sql seperti dibawah ini,

setelah melakukan alangkah lebih baiknya kita melakukan pengecekan kedalam tabel yang telah kita sisipi.. untuk melihat apakah data sudah benar-benar tersisipkan di dalam tabel. untuk menampilkan data didalam suatu tabel, kita menggunakan perintah select ya.. dan karena ini yang ditampilkan adalah semua data yang ada di dalam tabel fakultas, perintah yang digunakan : "SELECT * from fakultas;

setelah data-data yang dibutuhkan terinput kedalam tabel fakultas, sekarang giliran tabel mahasiswa kita penuhi dengan data-data mahasiswa yang diminta pada pertanyaan diatas, dibawah ini merupakan perintah query insert untuk menyisipkan data ke dalam tabel mahasiswa dengan langsung beberapa data,

lalu kita cek kedalam tabel mahasiswa, apakah data-data yang kita inputkan sudah berdomisili di tabel apa belum,, dengan perintah "SELECT* from mahasiswa;"

 Tampilkan data mahasiswa berupa nim dan nama
untuk menampilkan nim mahasiswa serta nama mahasiswa kita bisa menggunakan perintah query select, untuk lebih jelasnya perhatikan query dibawah ini,

Tampilkan data mahasiswa berdasarkan nim salah satu mahasiswa. Sehingga yang muncul hanya salah satu data mahasiswa
pada perintah ini, kita diminta untuk menampilkan data salah seorang mahasiswa yang telah kita inputkan kedalam tabel mahasiswa dengan menggunakan syarat mahasiswa yang memiliki nim tertentu, didini saya ingin menampilkan data mahasiswa yang memiliki nim 13, jadi seperti dibawah ini:

Tampilkan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas
lagi-lagi, permintaan pertanyaan diatas mengharuskan menggunakan perintah select, tetapi perintah select disini diminta untuk menampilkan data yang ada di dalam dua tabel. nah loh untuk lebih jelasnya langsung intip gambar dibawah aja,

Hapus data mahasiswa yang memiliki nim : 13
untuk pertanyaan ini, kita cukup menggunakan perintah delete untuk menghapus, ingat jangan drop lo ya.. drop hanya digunakan pada database dan table saja.. untuk data kita menggunakan DELETE, berikut contoh query delete, "DELETE from mahasiswa where nim_mah=13;" setelah men_delete langsung kita cek dalam tabel mahasiswa, apakah data sudah benar-benar terhapus atau belum, dengan perintah select* from mahasiswa..

Ubah data berupa alamat : solo dan no.telp : 0857688788 yang memiliki nim 12
mengubah sama dengan mengupdate, kalau pada soal yang diminta adalah mengubah alamat dan no_telp salah satu mahasiswa, kita tinggal menggunakan query seperti ini:
"UPDATE mahasiswa set alamat_mah='solo', no_telp='0857688788' where nim_mah=12;"
lebih jelasnya langsung lihat gambar dibawah,

Tampilkan data mahasiswa dan urutkan dari besar ke kecil berdasarkan nim mahasiswa. Kemudian tampilkan data fakultas urutkan secara ascending berdasarkan kolom ke-2
untuk menampilkan urutan kita bisa menggunakan perintah select dengan tambahan ORDER BY,
perintah pertama kita diminta menampilkan urutan data mahasiswa dari nim terbesar ke nim terkecil, berikut query nya:

perintah kedua kita diminta menampilkan data fakultas berdasarkan kolom kedua, dimulai dari urutan abjad nama fakultasnya,, berikut query nya:

Tampilkan seluruh data mahasiswa beserta seluruh data fakultasnya
untuk pertanyaan yang satu ini, saya memiliki dua opsi jawaban, jawaban yang pertama dapat menampilkan semua data antar tabel mahasiswa dan tabel fakultas kecuali data yang ada pada kolom  id_fak, seperti dibawah ini:


jawaban yang kedua dapat menampilkan data dari tabel mahasiswa dan fakultas dengan dua kolom id_fak, seperti dibawah ini:

Tampilkan seluruh mahasiswa yang berada di fakultas “SAINTEK”
dari permintaan yang diajukan dalam pertanyaan, kita diminta menampilkan data mahasiswa yang berada di dalam fakultas saintek. jadi disini kita mengkombinasikan antara tabel fakultas dan tabel mahasiswa, perhatikan query dalam gambar di bawah ini,

Tampilkan seluruh mahasiswa yang tidak berada di fakultas “SAINTEK”
perintah SQL yang digunakan untuk menjawab pertanyaan dibawah ini sama persis seperti pertanyaan sebelumnya, hanya saja disini kita menggunakan operator relasi "!=" yang memiliki arti bukan. perhatikan gambar dibawah ini,,

Hapus data fakultas “SAINTEK”
seperti sebelumnya, untuk menghapus data yang ada di dalam suatu tabel dengan perintah DELETE. Delete yang diminta disini untuk menghapus semua data yang ada pada tabel fakultas khususnya untuk fakulas SAINTEK. karena tabel fakultas saintek berelasi dengan tabel mahasiswa, untuk menghapus data yang ada pada tabel fakultas, kita harus menghapus data yang ada pada tabel mahasiswa terlebih dahulu,

setelah data mahasiswa fakultas saintek dalam tabel mahasiswa saintek terhapus, dilanjutkan dengan menghapus tabel fakultas.  tidak lupa untuk langsung cek data pada tabel fakultas.

Evaluasi dari DBMS MySQL dan PostgreSQL dalam blog anda berdasarkan tugas praktikum 1-11. (evaluasi meliputi perbedaan atau kesamaan, kelebihan atau kekurangan, tambahan dari penulis).

Evaluasi awal tentang dua DBMS ini adalah terletak pada pengaktifan window nya. kalau pada PostgreSQL kita tinggal masuk pada sqlshell, namun belum ada cara lain selain itu. sedangkan pada MySQL banyak jalan menuju tampilan si/_hitam, bisa melalui Command Prompt, MySQL Client Server, bisa juga diakses melalui Xampp (shell).
Selanjutnya, Query yang digunakan pada 2 DBMS yang saya jadikan acuan yaitu PostgreSQL dan MySQL memiliki struktur Query yang hampir sama dalam struktur bahasa DML (Bahasa Manipulasi Data) nya.
Yang berbeda adalah pada pesan setelah query di eksekusi. Di MySQL lebih lengkap, terlebih pada query update dan insert. Terdapat pesan Query OK, Row Affected (pada semua query), dan tambahan seperti : row matched, changed, dan warning (pada query update), records, duplicates, dan warning (pada query insert). Sedangkan pada postgreSQL hanya tertera query dan jumlah yang dieksekusi.  
Perbedaannya lagi adalah terletak pada penentukan tipe data varchar tidak harus menggunakan batasan karakter jika pada PostgreSQL, sedangkan dalam MySQL harus menggunakan batasan karakter. Dampak dari batasan karakter tersebut adalah pada memory yang nantinya dipakai oleh database yang kita buat. Misalnya dalam PostgreSQL karena pembuat database tidak menentukan panjang karakter, pihak DBMS pasti menyediakan panjang karakter yang mungkin saja tidak terbatas sehinggan memory untuk database semakin besar, sedangkan pada MySQL pembuat database menentukan panjang karakter untuk data dalam tabel, membuat pengguna database tidak bisa leluasa memasukkan  karakter-karakter yang tidak perlu/penting, jadi bisa lebih hemat memori.
Nilai lebih lagi dari mysql adalah query yang digunakan untuk DDL nya lebih mudah untuk dipahami dan diingat, karena merupakan bahasa yang sudah biasa dipakai. seperti show, use, dll. juga pada UI nya yang tidak membuat bingung dan mudah dimengerti, terlebih untuk programmer database yang masih pemula. Sedangkan pada PostgreSQL struktur DDL nya masih terbilang terlalu rumit terlebih untuk seorang newbie.

Kesimpulan dan Saran
Kesimpulan
Dalam praktikum kali ini, saya dilatih untuk membiasakan diri terhadap struktur-struktur bahasa DML (Bahasa Manipulasi Data). Struktur DML dikhususkan untuk mengolah (mengakses) data-data yang ada pada sebuah tabel, jadi lebih ke data yang ada di dalam tabel seperti perintah menghapus data dalam tabel ( DELETE), menyisipkan data dalam tabel (INSERT), menampilkan data yang ada di dalam tabel (SELECT), serta memanipulasi/ mengedit data yang ada di dalam tabel (UPDATE).
Saya juga sedikit mereview beberapa struktur query dari praktikum sebelumnya, yaitu perintah menambahkan kolom dalam suatu tabel (ALTER), dan juga membuat suatu tabel (CREATE).
Dipraktikkan juga cara mereferens sebuah tabel, atau lebih mudahnya menghubungkan (membuat relasi) antar tabel yang satu dengan yang lainnya (REFERENCES) dengan berbekal sedikit ulasan tentang primary key dan foreign key.
Saran - Kritik
sebaiknya sebelum membuat suatu database, terlebih lagi sebuah tabel terutama di MySQL harus difikirkan terlebih dahulu tentang panjang karakter yang diberikan pembuat tabel untuk data yang nantinya diisikan di dalam sebuah kolom tabel.

Daftar Pustaka
http://catatanku.web.id/catatan/perintah-select-pada-mysql/
http://terusbelajar.wordpress.com/2009/11/13/foreign-key-di-mysql/
Nugroho, Bunafit. 2005. Administrasi Database MySQL. Yogyakarta:Graha Ilmu 
Modul Praktikum DBD 2014

Komentar

  1. bagus..
    tapi materinya masih bisa di tambah...
    trus untuk evaluasi di buat table aja bar mudah dipahami

    semangat... CHANGE...

    BalasHapus

Posting Komentar