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
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;
"SELECT kolom1, kolom2 FROM nama_tabel ORDER BY nama_kolom asc/desc;"
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
,
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;"
Hasil Percobaanmenghapus 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
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,,
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
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
bagus..
BalasHapustapi materinya masih bisa di tambah...
trus untuk evaluasi di buat table aja bar mudah dipahami
semangat... CHANGE...
ok mas !
Hapus