SQL
-
Upload
wayan-wiadnyana -
Category
Documents
-
view
16 -
download
2
description
Transcript of SQL
Dasar-Dasar Structure Query Language(SQL)
SQL adalah sekumpulan perintah yang berfungsi untuk mendefinisikan struktur database,
menyimpan dan me-manage data di dalam database, serta berfungsi untuk mengontrol akses ke data
tersebut.
Ketika membuat sebuah SQL statement, diharapkan kita mengacu pada sintak-sintak perintah
yang tertera pada dokumentasinya. Sintaks ini memberikan sebuah pegangan bagaimana sebuah SQL
statement dapat dibuat sehingga RDBMS dapat mengartikan statement tersebut. Setiap perintah SQL
memiliki struktur tertentu, Elemen yang dibutuhkan pada setiap statement dan pilihan-pilihan yang
dapat digunakan pada statement tersebut.
Saat pertama kali melihat sintak yang lengkap dari sebuah statement mungkin kita akan melihat
sesuatu yang sangat membingungkan. Ada statement yang hanya memiliki sedikit elemen sehingga
lebih mudah dimengerti. Namun, ada juga statement yang memiliki elemen yang cukup panjang.
Latihan yang terus menerus akan membuat seseorang dapat mengerti seluruh sintak-sintak ini
walaupun sangat kompleks.
Berikut adalah contoh sintaks yang akan kita temukan pada dokumentasi MySQL.
Sintaks ini tidak memperlihatkan bagaiman membuat sebuah perintah CREATE TABLE secara
keseluruhan, namun hanya memperlihatkan komponen-komponen penting dalam sebuah pembuatan
tabel.
Keterangan untuk contoh di atas adalah sebagai berikut :
➢ Vertical Bar ( | ) : ini bisa diartikan sebagai atau, dimana kita bisa memilih salah satu
atau beberapa dari pilihan yang diberikan.
➢ Kurung kotak ( [ ] ) : ini berarti optional, jadi sintaks yang berada dalam kurung kotak ini
bisa digunakan bisa juga tidak.
<table definition>::= CREATE [TEMPORARAY] TABLE [IF NOT EXISTS] <table name> (<table element> [{, <table element>}...]) [ENGINE = {BDB | MEMORY | ISAM | INNODB | MERGE | MRG_MYISAM | MYISAM }]
<table element>::= {< column name> <type> [NOT NULL | NULL] [DEFAULT <value>] [AUTO_INCREMENT]} | {PRIMARY KEY (<column name> [{, <column name>}...])} | INDEX [<index name>] (<column name> [{, <column name>}...])}
➢ Kurung segitiga ( < > ) : sintaks yang berada dalam tanda kurung ini harus diberi sebuah
nilai.
➢ Kurung kurawal ({ } ) : segala sesuatu yang berada dalam kurung kurawal ini harus
diperlakukan sebagai sebuah kesatuan atau unit.
➢ Tiga titik ( . . . ) : artinya bahwa sintak yang sebelum tanda titik tiga ini dapat
diulangi sebanyak mungkin.
Untuk dapat lebih memahami perintah SQL ini, kita akan melihat sebuah contoh dalam
membuat sebuah tabel barang.
1. DDL (Data Definition Language)
2. DML (Data Manipulation Language)
Pertama sekali yang harus kita ingat bahwa CREATE TABLE adalah perintah tunggal yang
ditandai dengan sebuah titik koma ( ; ), yang apda umumnya dianggap sebagai akhir dari sebuah
statement.
/* membuat tabel barang */
Baris ini merupakan baris komentar dan tidak akan dieksekusi oleh MySQL. Bahkan, pada umumnya
komentar tidak akan dimasukkan ketika bekerja secara langsung dengan MySQL.
CREATE TABLE barang
Baris kedua ini adalah statement untuk membuat sebuah tabel dengan nama barang. Seperti yang kita
sebelumnya pada sintak dokumentasi mengenai pembuatan tabel yaitu
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] <table name>
/* membuat tabel barang */ CREATE TABLE barang (
id_barang INT NOT NULL,nama_barang VARCHAR(40) NOT NULL,id_cat INT NOT NULL,PRIMARY KEY (id_barang)
) ENGINE = MYISAM;
sehingga dapat ditarik kesimpulan bahwa TEMPORARY dan IF NOT EXISTS adalah bagian optional
dari sintaks ini dan dibolehkan untuk tidak digunakan. Jadi, dalam pembuatan tabel barang hanya
menggunakan element-elemen wajib saja. Baris berikutnya adalah definisi <table element> sebagai
berikut
(
id_barang INT NOT NULL,
nama_barang VARCHAR(40) NOT NULL,
id_cat INT NOT NULL,
PRIMARY KEY (id_barang)
)
pada bagian ini dapat kita lihat ada empat <table element> komponen. Untuk tiga yang pertama
merupakan definisi kolom dan yang terakhir adalah pembuatan primary key. Seluruh elemen berada
dalam tanda kurung dan setiap element dipisahkan oleh sebuah koma (,). dalam tiap terlihat adanya
pendefinisian kolom, contohnya adalah pada kolom id_barang seperti berikut
id_barang INT NOT NULL,
untuk contoh di atas, maka nama kolomnya adalah id_barang yang bertipe data INT (angka) dan tidak
dijinkan untuk memasukkan data kosong (NULL). Berikut adalah perbandingan dengan sintak pada
dokumentasi.
<column name> <type> [NOT NULL | NULL] [DEFAULT <value>] [AUTO_INCREMENT]
sehingga dapat disimpulkan bahwa id_barang adalah nilai untuk <column name> dan INT adalah
nilai dari <type>. Pada contoh di atas satu-satu nya pilihan optional yang digunakan adalah NOT NULL.
Untuk pendefinisian primary key pada contoh ini adalah sebagai berikut
PRIMARY KEY (id_barang)
Pada baris tersebut hanya terdapat satu kata kunci PRIMARY KEY dan sebuah nama kolom. Karena ini
merupakan <table element> yang terakhir maka tidak dibutuhkan koma (,) pada akhir baris.
Perbandingan dengan sintak pada dokumentasi adalah sebagai berikut
{PRIMARY KEY (<column name> [{, <column name>}...])
sehingga jelas terlihat bahwa tidak ada satu pun dari pilihan optional yang digunakan, hanya elemen
yang dibutuhkan saja.
TIPE-TIPE SQL STATEMENT
Setelah melihat berbagai perintah SQL, dapat dipahami bahwa perintah SQL dapat digunakan
untuk berbagai tipe perintah. Pada dasarnya perintah SQL dapat dikategorikan menjadi 3 kategori, yaitu
data definition language (DDL), data manipulation language (DML) dan data control language (DCL).
Data Definition Language (DDL)
Pada MySQL yang termasuk dalam perintah ini adalah membuat, merubah dan menghapus
struktur dalam database. Statement DDL mendefinisikan struktur dari MySQL database dan
menentukan tipe data apa saja yang dapat disimpan ke database serta bagaimana menyimpan data.
Secara khusus statement DDL berfungsi untuk :
1. Membuat dan menghapus database (CREATE DATABASE, DROP DATABASE)
2. Membuat, memperbaiki/merubah, dan menhapus tabel (CREATE TABLE, ALTER TABLE,
RENAME TABLE, DROP TABLE)
3. Membuat dan menghapus index (CREATE INDEX, DROP INDEX)
Berikut merupakan pengertian dasar dari database, tabel dan index
➢ Database : kumpulan dari data yang saling berhubungan yang memiliki struktur
tertentu.
➢ Tabel : tempat untuk menyimpan data yang memiliki kolom dan baris yang
merepresentasika sebuah entiti dalam sebuah database.
➢ Index : adalah list dari nilai-nilai yang diambil dari sebuah kolom tertentu. Index
digunakan untuk mempercepat proses pencarian data.
Data Manipulation Language (DML)
Perbedaan mendasar dari DDL dan DML adalah pada DML lebih menitikberatkan pada data
yang disimpan pada database daripada terhadap struktur database itu sendiri. Contohnya pada DML
kita dapat meminta informasi dari sebuah database, memasukkan data, mengedit/merubah data dan
menghapus data. Namun, kita tidak akan menggunakan DML untuk membuat dan merubah tabel yang
menyimpan data. Secara khusus statement DML berfungsi untuk :
➢ Meminta data yang khusus baik dari sebuah tabel atau beberapa tabel(SELECT)
➢ Menambahkan data ke dalam tabel(INSERT, REPLACE, LOAD DATA INFILE)
➢ Merubah/mengedit data dalam sebuah tabel(UPDATE)
➢ Menghapus data dari sebuah tabel(DELETE FROM, TRUNCATE TABLE)
SELECT biasanya merupakan perintah yang paling sering digunakan. Perintah SELECT ini dapat
digunakan untuk menarik/menampilkan data dari satu tabel atau lebih. SELECT bisa jadi sangat
sederhana dan bisa juga menjadi sangat rumit/kompleks tergantung pada informasi yang ingin ditarik
dari sebuah database.
Perintah SELECT berikut berfungsi untuk menampilkan/menarik data dari tabel barang yang
telah dibuat sebelumnya.
Data Control Language (DCL)
DCL berfungsi untuk mengontrol hak akses ke sebuah database. Secara khusus statement DCL
berfungsi untuk :
➢ Memberikan hak akses ke user (GRANT)
➢ Mengambil kembali hak akses dari user (REVOKE)
Pemberian hak akses ke seorang user, sehingga seorang user dapat memiliki hak akses untuk
tabel tertentu saja dan dapat juga diberikan hak akses untuk seluruh tabel dalam database.
SELECT nama_barang, id_barang, id_catFROM barangWHERE id_cat < 600ORDER BY nama_barang;
GRANT SELECT, INSERTON test.barangTO sayed@localhostIDENTIFIED BY 'password';
Statement di atas terbagi menjadi empat bagian, pada baris pertama GRANT statement memberikan
user hak untuk SELECT dan INSERT, sehingga user hanya dapat melakukan perintah SELECT dan
INSERT pada database tertentu. Statement berungsi untuk menentukan pada tabel atau database mana
saja user tersebut dapat melakukan perintah SELECT dan INSERT. TO statement menyatakan akun
user yang akan diberikan hak akses dan pada baris terakhir merupakan password dari si user.
L A T I H A N
1. Login ke MySQL
untuk dapat menggunakan MySQL kita harus terlebih dahulu login ke MySQL server sesuai
dengan username dan password kita. Apabila MySQL server berada pada localhost maka dapat
digunakan perintah sebagai berikut
Apabila MySQL server berada pada komputer yang lain dapat digunakan perintah sebagai
berikut :
tampilan dari perintah ini dapat dilihat pada gambar berikut ini, untuk username root dan berada
pada localhost.
jika login berhasil maka kita akan diberikan mysql command prompt seperti pada gambar di
atas.
2. Membuat Database
Setelah kita berada pada MySQL command prompt, maka sekarang kita dapat memasukkan
perintah SQL. Untuk latihan ini, kita akan membuat database yang bernama pemrograman
dengan perintah berikut.
mysql -u <username> -p
mysql -h <alamat_server> -u <username> -p
CREATE DATABASE pemrograman;
Adapun tampilan dari perintah ini adalah sebagai berikut,
Kalau perintah ini berhasil maka MySQL akan merespon dengan pesan
seperti pada gambar berikut
3. Membuat Tabel
Sebelum dapat membuat tabel kita harus memberitahukan kepada MySQL server tempat di
mana tabel ini akan diletakkan. Perintah yang digunakan adalah sebagai berikut
Query OK, x row affected (x.xx sec)
jika perintah ini berhasil, maka MySQL akan merespon dengan pernyataan bahwa database
telah berubah. Seperti berikut,
untuk lebih jelasnya dapat kita lihat pada screenshot berikut.
USE <nama_database>;
Database changed
Setelah proses ini kita dapat membuat tabel dalam database pemrograman. Dengan perintah
yang telah kita pelajari sebelumnya. Untuk proses pembuatan tabel ini, kita akan membuat
sebuah tabel yang bernama users dan terdiri dari 3 fields/kolom, yaitu kolom id yang bertipe
data integer, kolom username yang bertipe data string dan kolom password yang juga bertipe
data string. Panjang field untuk ketiga kolom tersebut secara beurutan adalah 3, 16 dan 255.
sebagai tambahan, semua kolom tidak boleh menerima data kosong (NULL) dan username
tidak boleh sama, serta untuk kolom id harus bersifat AUTO_INCREMENT.
Maka dari keterangan di atas, perintah SQL untuk membuat tabel tersebut adalah
tampilan layar ketika perintah ini dijalankan adalah sebagai berikut.
Jika perintah tersebut berhasil maka MySQL akan merespon seperti berikut
CREATE TABLE users (
id INT(3) NOT NULL AUTO_INCREMENT,username VARCHAR(16) NOT NULL,Password VARCHAR(255)NOT NULL,PRIMARY KEY (id),UNIQUE KEY username (username)
);
Query OK, x rows affected (x.xx sec)
dan dapat kita lihat pada gambar berikut ini
4. Memasukkan Data
untuk memasukkan data ke dalam sebuah tabel, kita menggunakan perintah INSERT seperti
pada contoh berikut ini.
kali ini kita akan mencoba memasukkan sebuah record dengan username=slank dan
password=virus. Sebelum password dimasukkan, terlebih dahulu kita enkrip dengan md5.
Sehingga perintahnya menjadi seperti berikut
berikut ini adalah tampilan dari perintah dan respon MySQL untuk perintah tersebut
INSERT INTO <table_name>(field_name, ...) VALUES(<values>, ...)
INSERT INTO users(username, password) VALUES(“ slank” , md5(“ virus” ));
5. Melihat Data
Untuk dapat melihat/menarik seluruh data yang telah kita masukkan, kita akan menggunakan
perintah seperti berikut ini.
Untuk tabel users yang kita gunakan pada latihan kali ini, maka perintahnya menjadi
dan tampilan dari screen capture adalah sebagai berikut
SELECT * FROM <table_name>;
SELECT * FROM users;
Jika perintah ini berhasil maka seluruh data akan ditampilkan ke layar seperti pada gambar
berikut
6. Mengubah Data
Untuk mengubah data, perintah yang digunakan adalah UPDATE dengan diikuti SET untuk field
yang nilainya mau diganti. Untuk sintak-nya adalah sebagai berikut
Sehingga perintah lengkapnya menjadi seperti berikut untuk perubahan password pada
username slank menjadi worm dari sebelumnya virus
untuk lebih jelasnya dapat kita lihat serangkain gambar berikut yang mengambarkan perubahan
pada field password setelah data dirubah. Untuk melihat perubahan tersebut kita menggunakan
perintah SELECT.
UPDATE <table_name> SET <field_name>=<new_value> WHERE <field_name>=<value>
UPDATE users SET password=md5(“ worm” ) WHERE username=” slank” ;
Pada rangkaian gambar berikut akan kita lihat, dimana data password yang sudah di ubah
menjadi worm, kita rubah kembali menjadi virus.
7. Menghapus Data
untuk menghapus data kita menggunakan perintah DELETE FROM <table_name>, perintah ini
akan menghapus sebuah record dari tabel. Sintak lengkapnya dari perintah ini adalah sebagai
berikut.
Sehingga untuk menghapus record yang memiliki username slank, maka perintahnya adalah
sebagai berikut :
adapun tampilan layar untuk SQL statement dan server respon adalah sebagai berikut.
DELETE FROM <table_name> WHERE <field_name>=<value>
DELETE FROM users WHERE username=” slank” ;
Sehingga ketika kita tampilkan data dari tabel users, maka tampilannya menjadi seperti berikut
PERTANYAAN :
1. Apa perbedaan antara perintah TRUNCATE dan DELETE pada sebuah tabel?
2. Apa Fungsi tanda * pada perintah SELECT?
3. Sebutkan perintah untuk menampilkan username saja dari tabel users di atas?
4. Sebutkan perintah untuk menampilakan username dan password saja pada users di atas?
5. Apakah perintah UPDATE bisa digunakan untuk memasukkan record baru?
6. Apa fungsi dari md5 pada perintah INSERT di atas?
7. Adakah fungsi enkripsi yang lain pada MySQL selain md5?
8. Bagaimana cara menghapus sebuah tabel?
9. Bagaimana cara menghapus sebuah database?
10. Bagaimana cara menggunakan perintah REPLACE?