SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
JOBSHEET SQL Tingkat Dasar
Kenapa MySQL?
        MySQL adalah database manajemen sistem (DBMS).DBMS merupakan paket
software yang didesain untuk menyimpan dan mengelola basis data. DBMS juga merupakan
salah satu system dalam mengakses database yang menggunakan bahasa SQL. SQL (
Structured Query Language ) adalah bahasa stndart yang digunakan untuk mengakses server
database
Kenapa menggunakan MySQL?
        MySQL software open source. Open source artinya memungkinkan untuk semua
orang untuk menggunakan dan memodifikasi software. Database MySQL sangat cepat,
reliable, dan mudah untuk digunakan, selain itu MySQL telah banyak menangani pembuatan
software besar.

Pengertian Database Relasional
       Secara umum, database berarti koleksi data yang saling terkait. Secara praktis basis
data dapat dianggap sebagai suatu penyusuanan data yang terstruktur yang disimpan dalam
media pengingat (hard disk) yang tujuannya adalah agar data tersebut dapat diakses dengan
mudah dan cepat.
       Sesungguhnya ada beberapa macam database, antara lain yaitu database hierarkis,
database jaringan dan database relasional. Database relasional merupakan database yang
popular saat ini dan telah diterapkan pada berbagai platform, dari PC hingga minicomputer.
Sebuah database relasional tersusun atas sejumlah tabel. Sebagai contoh database
akademis mencakup tabel-tabel seperti guru, siswa, KRS,nilai dan lain-lain. Gambar berikut
memperlihatkan sample data mengenai databse akademis.
t. matapel
Kode          Nama
M001          Matematika
P001          Produktif
B001          B.Inggris

T siswa
Nis             Nama       Alamat           Telp               Kelas
11060011        Rian       Cimahi           66521364           11 RPL 1
11060012        Dewi       Bandung          22354698           11 RPL 2
11060013        Yani       Bandung          225698741          11 RPL 3

t. nilai (tabel relasi)
Nis             Kode       Nilai
11060011 M001              80
11060011 B001              90
11060013 P001              85




                                                                                         1
Memahami Normalisasi

       Normalisasi merupakan suatu proses untuk mengubah suatu tabel yang memiliki
masalah tertentu ke dalam dua buah tabel atau lebih yang tidak lagi memiliki masalah
tersebut. Normalisasi bisa dipakai oleh para perancang database untuk melakukan verifikasi
terhadap tabel-tabel yang telah dibuat, sehingga tidak menimbulkan suatu permasalahan
saat data ditambah, diperbarui ataupun dihapus.

Kesalahan Perancangan Tabel
       Gambaran tentang kesalahan perancangan tabel diperlihatkan di bawah ini. Sebagai
contoh, terdapat tabel dengan kolom-kolom sebagai berikut :

                          T=(kode_buku, judul, halaman, topic)

Yang secara berturut-turut menyatakan kode buku, judul buku, jumlah halaman dan topic
buku. Jika sebuah buku memiliki lebih dari sebuah topic, tabel tersebut memiliki masalah,
yakni data kode buku, judul dan halaman harus di duplikasi. Sebagai contoh diperlihatkan
pada tabel berikut :

Tabel : Contoh satu buku dengan dua buah topic
Kode_buku Judul         Halaman         Topic
001          Java       451             Pemrograman
001          Java       451             Internet

       Duplikasi data seperti di atas (dinyatakan dengan cetakan tebal) harus dihindari
karena berpotensi menimbulkan masalah. Sekarang perhatikan tabel berikut :

Tabel : Contoh Data tentang pemasok
Pemasok Kota          Barang           jumlah
Kartika    Jakarta    Monitor GGG      10
Citra      Bandung Hardisk             4
Candra     Jakarta    Keyboard         5
Citra      Bandung Mouse               25

     Seandainya pemasok Citra berpindah ke kota lain, misalnya ke Bogor, dan pengubahan
hanya dilakukan pada data pertama (data pemasok Citra pada tabel tersebut ada dua buah),
maka hasilnya adalah seperti berikut :

Tabel : Keadaan yang menunjukkan adanya ketidak konsistenan
Pemasok Kota          Barang         jumlah
Kartika    Jakarta    Monitor GGG    10
Citra      Bogor      Hardisk        4
Candra     Jakarta    Keyboard       5
Citra      Bandung Mouse             25

      Terlihat bahwa terdapat ketidakkonsistenan. Fakta pertama menyatakan bahwa
pemasok Citra belokasi di Bogor, tetapi fakta kedua menyatakan bahwa pemasok Citra

                                                                                        2
berada di Bandung. Jadi mana yang benar ? Keadaan inilah yang menyatakan adanya
ketidak-konsistenan.

Kasus tabel buku dapat dipecahkan ke dalam beberapa tabel seperti berikut :

Tabel Buku (kode_buku, judul, halaman)
Tabel buku_topik (kode_buku, id_topik)
Tabel topic (id_topik, nama_topik)

Tabel-tabel berikut memperlihatkan sample data untuk masing-masing tabel di atas. :
Tabel Buku
Kode_buku Judul        Halaman
001          Java      451

Tabel Buku_topik
Kode_buku Id_topik
001         P05
001         I01

Tabel topic
Kode_buku Judul
P05         Pemrograman
I01         Internet

Adapun permasalahan pada tabel pemasok dapat diuraikan menjadi seperti berikut :

Tabel Pemasok (kode_pemasok, pemasok, kota)
Tabel Barang (kode_barang, nama_barang)
Tabel Pemasok_barang (kode_pemasok, kode_barang, jumlah)

Tabel-tabel berikut memperlihatkan sample data untuk masing-masing tabel di depan.

Tabel Pemasok
Kode_pemasok     pemasok      kota
C-01             Citra        Jakarta
C-02             Candra       Bogor
K-01             Kartika      Jakarta

Tabel Barang
Kode_barang     Barang
MON-13          Monitor GGG
ZIP-01          Hardisk
KEY-01          Keyboard
MOU-23          Mouse




                                                                                      3
Tabel Pemasok_barang
Kode_pemasok Barang                     jumlah
K-01           MON-13                   10
C-01           ZIP-01                   4
C_02           KEY-01                   5
C-01           MOU-23                   25

        Dengan menggunakan tabel-tabel sebagaimana terlihat pada tabel-tabel di atas,
permasalahan duplikasi data dan ketidak-konsistenan dihapuskan. Sebagai contoh, jika
katakanlah topic pemrograman hendak diganti menjadi Programming, perubahan cukup
dilakukan di satu tempat yaitu tabel topic.
Didalam MySQL terdapat sebuah database yang ada sejak awal setelah anda menginstall
MySQL, nama database tersebut adalah mysql dan pada database tersebut tersimpan nama-
nama pengguna yang dapat menggunakan MySQL lengkap dengan opsi otoritas yang dapat
dilakukan oleh pengguna tersebut. Secara default user dengan nama root adalah pengguna
yang menguasai secara utuh dan dapat membuat user lainnya (termasuk membatasi user -
user lain). Untuk dapat menggunakan MySQL anda harus memasukan user dan password
yang sama dengan apa yang dideklarasikan dalam database (mysql).
Untuk dapat menjalankan MySQL adan harus menjalankan service atau layanan MySQL.
Berikut cara mengakses MySQL (dilakukan pada DOS (C:program filesmysqlbin)
atau mode text).
➢ Masuk ke Server MySql
mysql -u root -h localhost -p
Enter password:************
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 2 to server version: 4.0.11a-gamma
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
Keterangan :
-h : menunjukkan nama Host (dapat juga dengan alamat IP, ex :
184.36.25.1)
-u : menunjukkan nama User
-p : MySQL akan menanyakan password jika anda menggunakan opsi ini.

Jika user yang anda gunakan tidak menggunakan password anda tidak perlu menggunakan
opsi -p ini. -p dapat juga digunakan untuk mendeklarasikan nama database yang anda
gunakan (ex: mysql -u root - loclhost -p latihan)
➢ Keluar dari MySql
mysql> q
Bye

Database adalah kumpulan dari tabel-tabel, dan tabel biasa juga disebut relasi menyatakan
bentuk berdimensi dua yang mewakili suatu kelompok data yang sejenis yang terdiri dari
kumpulan dari beberapa Field atau column. Untuk membuat suatu table maka seorang user
harus membuat database terlebih dahulu. Dengan mengaktifkan database yang dibuat
tersebut.
➢ Membuat database
BU : CREATE Database Nm_Database;
Contoh :

                                                                                       4
mysql> create database akademik;
Query OK, 1 row affected (0.11 sec)
➢ Melihat
        seluruh daftar database dalam server MySql
BU: SHOW Databases;
mysql> show databases;
+--------------+
| Database |
+--------------+
| mysql        |
| akademik |
| test         |
+--------------+
3 rows in set (0.27 sec)
➢ Mengaktifkan/Menggunakan Database
Sebelum pembuatan tabel dan operasi-operasi yang berhubungan dengan tabel maka
database harus di aktifkan/digunakan.
BU : USE Nm_Database
Contoh :
mysql> use akademik;
Database changed

 Menghapus Database dari Server
BU : Drop Database Nm_Database
Contoh :
mysql> drop database akademik;
Query OK, 0 rows affected (0.11 sec)

Aturan penamaan dalam pembuatan database :
1. Jangan menggunakan spasi dan spesial karakter dalam pembuatan nama database
2. Jangan menggunkan angka pada awal pembuatan nama database

Secara umum bahasa SQL dibagi menjadi dua bagian:
1. DDL (Data Definition Language) yang digunakan untuk membangun objek-objek dalam
   database seperti tabel.
2. DML (Data Manipulation Language) yang digunakan dalam memanipulasi suatu tabel
   didalam database (menambah, mengedit, mencari dan menghapus)

Kedua komponen ini bisa digunakan setelah suatu database di aktifkan.
1. DDL (Data Definition Language)
Terdiri atas : Create, Alter, Drop
Membuat Tabel
Setelah menciptakan suatu database dan mengaktifkan database tersebut maka
dapat dilakukan perintah pembuatan tabel
BU : CREATE TABLE Nm_Tabel (Nm_Kolom1 tipe data([ukuran]),nm_kolom2
tipe data (*ukuran+)….. nm_kolom_n tipe data (*ukuran+));
Contoh :
create table siswa (nis varchar(10),nama varchar(30),jk char(2),alamat varchar(50));
Melihat Struktur Tabel
Perintah describe nama_tabel; digunakan untuk melihat struktur tabel yang telah
dibuat. Namun sebelumnya, sudah berada pada database yang mempunyai

                                                                                       5
tabel tersebut.
Contoh :




Mengetahui Daftar Tabel dalam Database
BU: SHOW Tables, SHOW Tables from nama_database;
mysql> show tables;
+-----------------------------+
| Tables_in_akademik |
+-----------------------------+
| siswa                       |
| matpel                      |
| nilai                       |
+-----------------------------+

Mengubah Struktur Tabel
Ada empat macam perubahan dalam struktur tabel, yaitu :
a. Perubahan nama field/kolom
   Perubahan yang terjadi hanya pada nama field/kolom saja. Nama field/kolom lama
   diganti dengan nama field/kolom yang baru.
Struktur penulisan :
alter table nama_tabel change nama_field_lama nama_field_baru tipe_data;
Contoh :
mysql>alter table siswa change jk jenis_kelamin char(2);

b. Perubahan tipe data
   Perubahan yang terjadi hanya pada tipe data yang digunakan oleh field/kolom tertentu.
   Tipe data baru langsung disebutkan dibelakang nama field/kolom, tanpa harus
   menyebutkan tipe data lama.
Struktur penulisan :
Alter table nama_tabel modify nama_field tipe_data_baru;
Contoh :
mysql>alter table siswa modify nama longtext;
c. Penambahan field
    Struktur tabel akan berubah dengan bertambahnya field/kolom baru didalamnya.
Struktur penulisan :
Alter table nama_tabel add nama_field tipe_data_baru;
Contoh :
mysql>alter table siswa add kelas varchar(10);

d. Penghapusan field
   Struktur tabel mengalami perubahan akibat berkurangnya field/kolom tertentu.
Struktur penulisan :
Alter table nama_tabel drop column nama_field;

                                                                                      6
Contoh :
mysql>alter table siswa drop column kelas;
Mengganti Nama Tabel
Penggantian nama tabel meliputi nama tabel itu sendiri.
Struktur penulisan :
Alter table nama_tabel_lama rename nama_tabel_baru;
Contoh :
mysql>alter table siswa rename t_siswa;

Menghapus Tabel
Tabel dapat saja dihapus karena sudah tidak dibutuhkan lagi,atau terjadi kesalahan.
Struktur penulisan :
Drop table nama_tabel;
Contoh :
mysql>drop table t_siswa;

KEKANGAN NILAI PADA DATA
Menentukan Kunci Primer (Primary Key)
Secara sederhan kunci primer digunakan untuk menyatakan bahwa suatu nilai tidak boleh
ada yang sama dan nilai tersebut harus diisi (NOT NULL). Penetapan kunci primer dibuat
pada saat pembuatan tabel:
mysql> create table siswa (nis varchar(10) not null primary key,nama
varchar(30),jk char(2),alamat varchar(50));

Memberikan nilai bawaan (Default)
Jika tidak memberikan suatu nilai dalam kolom tertentu maka oleh system secara otomatis
diisi dengan nilai NULL. Oleh karena itu pada saat perancangan table field tersebut
defaultnya diisi dengan tetapan yang dikehendaki.
mysql> create table matpel (kode_matpel varchar(10) not null primary
key,nama_matpel varchar(20),kelompok varchar(20) default null);

Mengenal Auto_Increment
MySQL menyediakan atribut AUTO_INCREMENT yang dapat diletakkan pada pendefinisian
kolom. Atribut ini berguna untuk membentuk kolom yang memiliki baris-baris dengan nilai
yang urut. Dalam hal ini kolom yang diberi atribut AUTO_INCREMENT harus bertinadak
sebagai kunci primer.
mysql> create table nilai (no int primary key AUTO_INCREMENT, nis char(10) not null, kode_mp char(10) not
null , nilai double);

2. DML (Data Manipulation Language)
Terdiri dari SELECT, INSERT, UPDATE dan DELETE
Memasukkan Data (Insert)
Ada tiga cara yang dapat digunakan untuk memasukkan data kedalam tabel, yaitu:
1. insert into nama_tabel values (isi_field_2,…,isi_field_n);
Contoh :
insert into siswa values (‘0001’,’Asep’,’L’,’Bandung’);
2. insert into nama_tabel (nama_field_1, nama_field_2,…,nama_ field_n) values
(isi_field_1, isi_field_2,…,isi_field_n);
Contoh :

                                                                                                       7
Insert into siswa (nis,nama,jk,alamat) values (‘0001’,’Asep’,’L’,’Bandung’);
3. Memasukkan data lebih dari satu record
Contoh :
Insert into siswa values(‘0002’,’Dina’,’P’,’Cimahi’),(‘0003’,’Wahyu’,’L’,’Cimahi’),(‘0004’,’Ridwan’,’L’,’Bandung’);

Menampilkan Data (Select)
Berikut ini perintah untuk menampilkan data :
Struktur Penulisan :
Select [fields] from [nama_tabel]
Where [kondisi]
Order by [nama_field]
Group by [nama_field] asc / desc
Contoh :
Select nis from siswa;
Select nis,nama from siswa;
Select * from siswa;
Note :
Setelah penulisan select, [fields] dapat diganti dengan menyebutkan satu nama field saja
atau beberapa field sekaligus yang dipisah dengan tanda koma (,). Penulisan field-field
tersebut digunakan untuk memunculkan data dari kolom mana saja yang akan ditampilkan.
Jika seluruh kolom akan ditampilkan dapat menggunakan tanda asterik (*) untuk
mewakilinya.

Mengurutkan Tampilan
Klausa ORDER BY digunakan untuk mengurutkan hasil. Jika menginginkan data ditampilkan
urut berdasarkan pada urutan terkecil ke besar, dapat menggunakan ASC (ascending).
Sedangkan untuk mengurutkan data berdasarkan yang terbesar ke kecil, dapat
menggunakan DESC (descending).




Mengubah Data (Update)
Jika data sudah kadaluarsa atau ada yang salah dengan data, berikut perintah yang
digunakan untuk merubah data.
Struktur penulisan :
Update nama_tabel set nama_field_1=isi_baru_1, nama_field_2=
isi_baru_2,…, nama_field_n=isi_baru_n
Where kriteria;
Contoh :
- mengubah sebuah kolom untuk baris tertentu
Update siswa set alamat=’Jakarta’ where nama=’Wahyu’;
- mengubah beberapa kolom sekaligus untuk baris tertentu
Update siswa set nama=’Reni’,alamat=’Bandung’ where nis=’0004’;
- mengubah beberapa baris

                                                                                                                      8
Update siswa set alamat=’Solo’ where nis=’0001’ or nis=’0003’;
- mengubah semua baris
Update siswa set alamat=’Bandung’;

Menghapus Data (Delete)
Jika terdapat kesalahan data atau data sudah tidak digunakan lagi, hapus dengan
perintah delete.
Struktur penulisan :
Delete from nama_tabel where kriteria;
Contoh :
Delete from siswa where nama=’Wahyu’;

OPERATOR RELASIONAL
Operator yang digunakan yntuk perbandingan antara dua buah nilai. Jenis dari operator ini
adalah = , >, <, >=, <=, <>




Operator Logika : OR,AND,XOR,NOT




Operator BETWEEN dan NOT BETWEEN
Operator between ini untuk menangani operasi “jangkauan” atau menampilkan suatu range
data.




Operator IN dan NOT IN
Operator IN digunakan untuk mencocokkan dengan salah satu yang ada pada suatu daftar
nilai. Sebagai contoh :




                                                                                       9
Operator LIKE dan NOT LIKE
Operator LIKE atau NOT LIKE sangat bermanfaat dalam mencari suatu data. Operasi ini
digunakan dengan menyebutkan tanda wildcard berupa garis bawah (_) atau (%)

<. Tanda garis bawah (_) berarti sebuah karakter apa saja. Contoh a_u cocok dengan
anu,aku,alu,abu dan tidak cocok untuk andu,ambu ataupun allu
<. Tanda % berarti cocok dengan kata apa saja dan berapapun panjangnya
contoh:




Pengelompokkan Data
Hasil dari SELECT juga dapat dikelompokkan dengan menggunakan kalusa GROUP BY
Contoh :




Klausa Having
Pemakaian klausa HAVING terkait dengan klausa GROUP BY. Kegunaannya adalah untuk
menentukan kondisi bagi GROUP BY. Kelompok yang memenuhi having saja yang dihasilkan.
Contoh :




DISTINCT
menyebabkan fungsi hanya menganggap nilai non-duplikat
Contoh :


                                                                                      10
FUNGSI AGREGAT
Adalah fungsi yang disediakan untuk menghasilkan sebuah nilai berdasarkan sejumlah data.
Fungsi sendiri adalah suatu kumpulan instruksi yang menghasilkan sebuah nilai jika
dipanggil. Adapun fungsi aggregate yang disediakan oleh MySQL dapat dilihat pada table
berikut :




Contoh :
mysql> select avg(nilai) from nilai;
+------------+
| avg(nilai)|
+------------+
| 82.5       |
+------------+
1 row in set (0.05 sec)
mysql> select count(nama) from siswa;
+------------------+
| count(nama) |
+------------------+
|5                 |
+------------------+
1 row in set (0.00 sec)
mysql> select max(nilai),min(nilai) from nilai;
+---------------+--------------+
| max(nilai) | min(nilai) |
+---------------+--------------+
| 90            | 75           |
+---------------+--------------+
1 row in set (0.05 sec)
14
mysql> select sum(nilai) from nilai;
+--------------+
| sum(nilai) |
+--------------+
| 330          |
+--------------+
1 row in set (0.05 sec)

                                                                                     11
Ekspresi Pada Query
Ekspresi pada query memungkinkan untuk mengubah judul kolom keluaran, melakukan
perhitungan pada kolom keluaran, dan mengubah tipe data keluaran.
- Memberi nama lain terhadap kolom keluaran
  Untuk memberi nama lain terhadap suatu kolom keluaran dengan klausa AS.




- Ekpresi berkondisi
BU : CASE nilai_ekspresi WHEN nilai_ekspresi THEN nilai_ekspresi
ELSE nilai_ekspresi END




- Ekspresi tentang Waktu
Pernyataan berikut akan menampilkan identitas sisa yang tanggal lahirnya lebih dari tanggal
31 desember 1993




                                                                                    -

FUNGSI NILAI
CURRENT_DATE : Menghasilkan tanggal sekarang
CURRENT_TIME : Menghasilkan Waktu sekarang

                                                                                        12
mysql> select current_date as Tgl_Sekarang;
+-------------------+
| Tgl_Sekarang |
+-------------------+
| 2010-02-14 |
+-------------------+
1 row in set (0.06 sec)

mysql> select current_time as Waktu_Sekarang;
+------------------------+
| Waktu_Sekarang |
+------------------------+
| 20:53:14              |
+------------------------+
1 row in set (0.06 sec)


Penggabungan Data / Query Antar Table
Query yang akan dibahas pada bagian ini melibatkan lebih dari satu tabel
Struktur table siswa




Isi dari tabel siswa




Struktur Tabel Matpel (Mata Pelajaran)




Struktur Tabel Nilai




                                                                           13
MySQL mempunyai kemampuan untuk menggabungkan dua tabel atau lebih untuk
mendapatkan informasi yang diinginkan. Proses yang dilakukan dengan nama JOIN. Dalam
penggabungan dari beberapa tabel (join) ada beberapa hal yang perlu diperhatian, antara
lain :
1. Setiap kolom disebutkan dengan bentuk,
2. tabel-tabel yang dilibatkan dalam query perlu disebutkan dalam Klausa FROM dengan
   antar tabel dipisah oleh koma.
3. Kondisi dalam WHERE menetukan macam join yang terbentuk

Macam-macam bentuk Penggabungan (Join)
1. Natural Join
   Adalah penggabungan data dari dua buah table yang didasarkan pada kolom dengan
   nama sama pada kedua table . Penggabungan ini mencerminkan hubungan antara kunci
   tamu dan kunci primer dalam dua buah table
   Contoh:




2. CROSS JOIN
Cross Join merupakan bentuk penggabungan yang paling sederhana dari dua buah tabel.
BU : SELECT field1,field2 FROM Tabel1 CROSS JOIN tabel2;
Contoh :




3. INNER JOIN
Hampir sama dengan cross join tetapi diikuti dengan kondisi
BU : SELECT Field FROM tabel1 INNER JOIN tabel 2 ON kondisi
Contoh :




4 LEFT (OUTER) JOIN



                                                                                      14
Akan menampilkan tabel disebelah kanannya (dalam hal ini tabel nilai) dengan NULL jika
tidak terdapat hubungan antara tabel disebelah kiri (dalam hal ini tabel siswa)
BU : SELECT field FROM tabel1 LEFT JOIN tabel2 ON kondisi
Contoh




5. RIGHT/OUTER JOIN
Kebalikan dari LEFT JOIN, jika idak menemukan hubungan dengan tabel disebelah kiri maka
akan ditampilkan NULL
BU : SELECT field FROM tabel1 RIGHT JOIN tabel2 ON kondisi
Contoh :




Pembuatan VIEW
View merupakan bentuk representasi data yang dapat dibuat dengan melibatkan data yang
ada pada satu atau beberapa table. Dengan menggunakan view, dimungkinkan untuk
membuat hanya bagian tertentu dalam suatu table yang akan muncul. Sebagai contoh suatu
view bias berupa data nis dan alamat siswa tanpa melibatkan data nama . View juga bias
mencakup data yang berasal dari dua table atau bahkan lebih. Mengingat sifatnya yang
demikian, view dapat dianggap sebagai query tersimpan atau sebagai table semu.

Secara internal view akan disimpan sebagai kamus data. Data yang sesungguhnya tidak ikut
dicatat secara eksplisit, melainkan tetap megacu pada table basisnya.

Membuat View
Untuk membuat view MySQL menyediakan perintah CREATE VIEW :
Create view nama_view as select nama_field1,nama_field2 from nama_tabel
Contoh :




                                                                                     15
Memperoleh Informasi pada View
Setelah view diciptakan, view dapat diakses sebagaimana mengakses table yaitu dengan
menggunakan perintah SELECT.
Select * from nama_view
Contoh :




Mengubah View
Untuk mengubah view bias dilakukan dengan perintah Alter View
Alter view nama_view as select nama_field1,nama_field2 from nama_table
Contoh :




Menghapus View
Untuk menghapus view dapat dilakukan dengan perintah DROP VIEW.
Drop view nama_view
Contoh :
Drop view Data_Nilai;

Penggunaan Indeks
Pernahkah anda memanfaatkan indeks buku ?Jika ya, mungkin anda telah menyadari
manfaat indeks. Melalui indeks buku anda bias mencari letak item tertentu dalam buku
dengan mudah dan cepat berapapun tebal buku tersebut. Keberadaan indeks dalam
database antara lain adalah untuk mempercepat pencarian data berdasarkan kolom
tertentu. Misal anda memberikan perintah :
Select * from siswa where nis=’0005’;

Jika nis tidak dijadikan sebagai indeks, pencarian data akan dilakukan terhadap seluruh
table, sama seperti kalau anda mencari sesuatu dalam buku tetapi buku tersebut tidak
dilengkapi dengan indeks. Namun, jika indeks yang berkaitan dengan nis ada, system akan


                                                                                    16
menemukannya dengan cepat. Tentu saja pengaruh indeks akan terasa jika jumlah data
sangat banyak, missal ada jutaan baris.

Menciptakan Indeks
Untuk menciptakan indeks bisa dilakukan dengan perintah :
Create index nama_index on nama_tabel(nama_kolom)
Contoh :




Menghapus Indeks
Untuk menghapus indeks bisa dilakukan dengan perintah DROP INDEX
Drop index nama_index on nama_table
Contoh :
Drop index kode on siswa;

Membuat Indeks yang Unik
Pada contoh create index yang pertama, indeks yang terbentuk bisa menerima nilai yang
kembar (duplikat). Jika anda tak menghendaki hal ini. Anda bisa menciptakan indeks yang
unik. Caranya dengan memberikan kata UNIQUE di antara CREATE dan INDEX
Create unique index nama_index on nama_tabel(nama_kolom)
Contoh :
Create unique index nama_siswa on siswa(nama);

Membuat indeks berdasarkan beberapa kolom
Create index nama_index on nama_tabel(nama_kolom1,nama_kolom2)
Contoh :
Create index kode_nilai on nilai(nis,kode_matpel);




                                                                                    17

Weitere ähnliche Inhalte

Was ist angesagt?

Tutorial membuat form dalam netbeans versi2
Tutorial membuat form dalam netbeans versi2Tutorial membuat form dalam netbeans versi2
Tutorial membuat form dalam netbeans versi2zuckcruel
 
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLLaporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLShofura Kamal
 
Membuat Tabel Relasi
Membuat Tabel RelasiMembuat Tabel Relasi
Membuat Tabel Relasiikikazuya
 
Modul Praktikum Basis Data
Modul Praktikum Basis DataModul Praktikum Basis Data
Modul Praktikum Basis DataMuslim Jogja
 
SQL database client server
SQL database client serverSQL database client server
SQL database client serverDesty Yani
 
Part 7 ddl dan dml lant..retriving data up
Part 7  ddl dan dml lant..retriving data upPart 7  ddl dan dml lant..retriving data up
Part 7 ddl dan dml lant..retriving data upDenny Yahya
 
Part 6 ddl dan dml (case studiies)
Part 6  ddl dan dml (case studiies)Part 6  ddl dan dml (case studiies)
Part 6 ddl dan dml (case studiies)Denny Yahya
 
Laporan Praktikum Basis Data Modul III-Manipulasi Data
Laporan Praktikum Basis Data Modul III-Manipulasi DataLaporan Praktikum Basis Data Modul III-Manipulasi Data
Laporan Praktikum Basis Data Modul III-Manipulasi DataShofura Kamal
 
Laporan Praktikum Basis Data Modul II-Primary Key
Laporan Praktikum Basis Data Modul II-Primary KeyLaporan Praktikum Basis Data Modul II-Primary Key
Laporan Praktikum Basis Data Modul II-Primary KeyShofura Kamal
 
T modul 5 mysql
T modul 5 mysqlT modul 5 mysql
T modul 5 mysqljafra
 
Laporan praktikum modul 6
Laporan praktikum modul 6Laporan praktikum modul 6
Laporan praktikum modul 6Devi Apriansyah
 
Modul Praktikum Sistem Basis Data
Modul Praktikum Sistem Basis Data Modul Praktikum Sistem Basis Data
Modul Praktikum Sistem Basis Data Wahyu Widodo
 
Laporan praktikum modul 8 (dml part 2)
Laporan praktikum modul 8 (dml part 2)Laporan praktikum modul 8 (dml part 2)
Laporan praktikum modul 8 (dml part 2)Devi Apriansyah
 
Basis Data 2 Sesi 1
Basis Data 2 Sesi 1Basis Data 2 Sesi 1
Basis Data 2 Sesi 1ikikazuya
 

Was ist angesagt? (20)

Tutorial membuat form dalam netbeans versi2
Tutorial membuat form dalam netbeans versi2Tutorial membuat form dalam netbeans versi2
Tutorial membuat form dalam netbeans versi2
 
DDL dan DML
DDL dan DMLDDL dan DML
DDL dan DML
 
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLLaporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
 
Membuat Tabel Relasi
Membuat Tabel RelasiMembuat Tabel Relasi
Membuat Tabel Relasi
 
Pengantar SQL
Pengantar SQLPengantar SQL
Pengantar SQL
 
Sql
SqlSql
Sql
 
Modul Praktikum Basis Data
Modul Praktikum Basis DataModul Praktikum Basis Data
Modul Praktikum Basis Data
 
SQL database client server
SQL database client serverSQL database client server
SQL database client server
 
Part 7 ddl dan dml lant..retriving data up
Part 7  ddl dan dml lant..retriving data upPart 7  ddl dan dml lant..retriving data up
Part 7 ddl dan dml lant..retriving data up
 
Konsep basis data pengantar my sql
Konsep basis data pengantar  my sqlKonsep basis data pengantar  my sql
Konsep basis data pengantar my sql
 
Part 6 ddl dan dml (case studiies)
Part 6  ddl dan dml (case studiies)Part 6  ddl dan dml (case studiies)
Part 6 ddl dan dml (case studiies)
 
Modul mysql
Modul mysqlModul mysql
Modul mysql
 
Laporan Praktikum Basis Data Modul III-Manipulasi Data
Laporan Praktikum Basis Data Modul III-Manipulasi DataLaporan Praktikum Basis Data Modul III-Manipulasi Data
Laporan Praktikum Basis Data Modul III-Manipulasi Data
 
Laporan Praktikum Basis Data Modul II-Primary Key
Laporan Praktikum Basis Data Modul II-Primary KeyLaporan Praktikum Basis Data Modul II-Primary Key
Laporan Praktikum Basis Data Modul II-Primary Key
 
Bab. 4
Bab. 4Bab. 4
Bab. 4
 
T modul 5 mysql
T modul 5 mysqlT modul 5 mysql
T modul 5 mysql
 
Laporan praktikum modul 6
Laporan praktikum modul 6Laporan praktikum modul 6
Laporan praktikum modul 6
 
Modul Praktikum Sistem Basis Data
Modul Praktikum Sistem Basis Data Modul Praktikum Sistem Basis Data
Modul Praktikum Sistem Basis Data
 
Laporan praktikum modul 8 (dml part 2)
Laporan praktikum modul 8 (dml part 2)Laporan praktikum modul 8 (dml part 2)
Laporan praktikum modul 8 (dml part 2)
 
Basis Data 2 Sesi 1
Basis Data 2 Sesi 1Basis Data 2 Sesi 1
Basis Data 2 Sesi 1
 

Andere mochten auch

Andere mochten auch (6)

Modul MySQL TIngkat Lanjut
Modul MySQL TIngkat LanjutModul MySQL TIngkat Lanjut
Modul MySQL TIngkat Lanjut
 
Modul MySQL
Modul MySQLModul MySQL
Modul MySQL
 
tugas PKN
tugas PKNtugas PKN
tugas PKN
 
Web dinamis
Web dinamisWeb dinamis
Web dinamis
 
apa sih komponen elektronika
apa sih komponen elektronika apa sih komponen elektronika
apa sih komponen elektronika
 
Fis 03-pembacaan-besar-besaran-listrik
Fis 03-pembacaan-besar-besaran-listrikFis 03-pembacaan-besar-besaran-listrik
Fis 03-pembacaan-besar-besaran-listrik
 

Ähnlich wie OPTIMASI SQL DASAR

Modul praktikum basis data
Modul praktikum basis dataModul praktikum basis data
Modul praktikum basis datahairul anwar
 
Dasar Perintah SQL
Dasar Perintah SQLDasar Perintah SQL
Dasar Perintah SQLmuhamadilvan
 
Praktikum 01 Sistem Basis Data
Praktikum 01 Sistem Basis DataPraktikum 01 Sistem Basis Data
Praktikum 01 Sistem Basis DataAditya Nugroho
 
Sim, lintang kejora, hapzi ali, sistem manajemen database , universitas mercu...
Sim, lintang kejora, hapzi ali, sistem manajemen database , universitas mercu...Sim, lintang kejora, hapzi ali, sistem manajemen database , universitas mercu...
Sim, lintang kejora, hapzi ali, sistem manajemen database , universitas mercu...Lintang Kejora
 
SIM, Gagas Bintang, Hapzi Ali, Sistem manajemen database, Universitas Mercu B...
SIM, Gagas Bintang, Hapzi Ali, Sistem manajemen database, Universitas Mercu B...SIM, Gagas Bintang, Hapzi Ali, Sistem manajemen database, Universitas Mercu B...
SIM, Gagas Bintang, Hapzi Ali, Sistem manajemen database, Universitas Mercu B...GagasBintang
 
Laporan praktikum modul 9 (review ddl dan dml)
Laporan praktikum modul 9 (review ddl dan dml)Laporan praktikum modul 9 (review ddl dan dml)
Laporan praktikum modul 9 (review ddl dan dml)Devi Apriansyah
 
SIM,Ivan fadhila, Hapzi Ali, Sistem manajemen database, Universitas Mercu Bua...
SIM,Ivan fadhila, Hapzi Ali, Sistem manajemen database, Universitas Mercu Bua...SIM,Ivan fadhila, Hapzi Ali, Sistem manajemen database, Universitas Mercu Bua...
SIM,Ivan fadhila, Hapzi Ali, Sistem manajemen database, Universitas Mercu Bua...ivanfadhila18
 
SIM,Aryo Prawiro,Hapzi Ali,Sistem Manajemen Database,Universitas Mercubuana,...
SIM,Aryo Prawiro,Hapzi Ali,Sistem  Manajemen Database,Universitas Mercubuana,...SIM,Aryo Prawiro,Hapzi Ali,Sistem  Manajemen Database,Universitas Mercubuana,...
SIM,Aryo Prawiro,Hapzi Ali,Sistem Manajemen Database,Universitas Mercubuana,...Aryowardoyo
 
Sim, fina melinda jm, hapzi ali,sistem manajemen database, s1 akuntansi, univ...
Sim, fina melinda jm, hapzi ali,sistem manajemen database, s1 akuntansi, univ...Sim, fina melinda jm, hapzi ali,sistem manajemen database, s1 akuntansi, univ...
Sim, fina melinda jm, hapzi ali,sistem manajemen database, s1 akuntansi, univ...Fina Melinda Jumrotul Mu'minin
 
Laporan praktikum modul 1 (dbms)
Laporan praktikum modul 1 (dbms)Laporan praktikum modul 1 (dbms)
Laporan praktikum modul 1 (dbms)Devi Apriansyah
 
Sim, alya zulfa oktaviana putri, hapzi ali,sistem manajemen database,universi...
Sim, alya zulfa oktaviana putri, hapzi ali,sistem manajemen database,universi...Sim, alya zulfa oktaviana putri, hapzi ali,sistem manajemen database,universi...
Sim, alya zulfa oktaviana putri, hapzi ali,sistem manajemen database,universi...Alya Zulfa Oktaviana Putri
 
Modul Dbms mysql dan perintah dasar SQL
Modul Dbms mysql dan perintah dasar SQLModul Dbms mysql dan perintah dasar SQL
Modul Dbms mysql dan perintah dasar SQLDeka M Wildan
 

Ähnlich wie OPTIMASI SQL DASAR (20)

Forum 6
Forum 6Forum 6
Forum 6
 
Modul praktikum basis data
Modul praktikum basis dataModul praktikum basis data
Modul praktikum basis data
 
Dasar Perintah SQL
Dasar Perintah SQLDasar Perintah SQL
Dasar Perintah SQL
 
Praktikum 01 Sistem Basis Data
Praktikum 01 Sistem Basis DataPraktikum 01 Sistem Basis Data
Praktikum 01 Sistem Basis Data
 
Sim, lintang kejora, hapzi ali, sistem manajemen database , universitas mercu...
Sim, lintang kejora, hapzi ali, sistem manajemen database , universitas mercu...Sim, lintang kejora, hapzi ali, sistem manajemen database , universitas mercu...
Sim, lintang kejora, hapzi ali, sistem manajemen database , universitas mercu...
 
SIM, Gagas Bintang, Hapzi Ali, Sistem manajemen database, Universitas Mercu B...
SIM, Gagas Bintang, Hapzi Ali, Sistem manajemen database, Universitas Mercu B...SIM, Gagas Bintang, Hapzi Ali, Sistem manajemen database, Universitas Mercu B...
SIM, Gagas Bintang, Hapzi Ali, Sistem manajemen database, Universitas Mercu B...
 
Basis data 2
Basis data 2Basis data 2
Basis data 2
 
Laporan praktikum modul 9 (review ddl dan dml)
Laporan praktikum modul 9 (review ddl dan dml)Laporan praktikum modul 9 (review ddl dan dml)
Laporan praktikum modul 9 (review ddl dan dml)
 
SIM,Ivan fadhila, Hapzi Ali, Sistem manajemen database, Universitas Mercu Bua...
SIM,Ivan fadhila, Hapzi Ali, Sistem manajemen database, Universitas Mercu Bua...SIM,Ivan fadhila, Hapzi Ali, Sistem manajemen database, Universitas Mercu Bua...
SIM,Ivan fadhila, Hapzi Ali, Sistem manajemen database, Universitas Mercu Bua...
 
SIM,Aryo Prawiro,Hapzi Ali,Sistem Manajemen Database,Universitas Mercubuana,...
SIM,Aryo Prawiro,Hapzi Ali,Sistem  Manajemen Database,Universitas Mercubuana,...SIM,Aryo Prawiro,Hapzi Ali,Sistem  Manajemen Database,Universitas Mercubuana,...
SIM,Aryo Prawiro,Hapzi Ali,Sistem Manajemen Database,Universitas Mercubuana,...
 
Forum 6
Forum 6Forum 6
Forum 6
 
Pratikum sistem basis data 2
Pratikum sistem basis data 2Pratikum sistem basis data 2
Pratikum sistem basis data 2
 
Pratikum sistem basis data 2
Pratikum sistem basis data 2Pratikum sistem basis data 2
Pratikum sistem basis data 2
 
Mysql rahmat
Mysql rahmatMysql rahmat
Mysql rahmat
 
Mysql rahmat
Mysql rahmatMysql rahmat
Mysql rahmat
 
Konsep dasar sistem basis data
Konsep dasar sistem basis dataKonsep dasar sistem basis data
Konsep dasar sistem basis data
 
Sim, fina melinda jm, hapzi ali,sistem manajemen database, s1 akuntansi, univ...
Sim, fina melinda jm, hapzi ali,sistem manajemen database, s1 akuntansi, univ...Sim, fina melinda jm, hapzi ali,sistem manajemen database, s1 akuntansi, univ...
Sim, fina melinda jm, hapzi ali,sistem manajemen database, s1 akuntansi, univ...
 
Laporan praktikum modul 1 (dbms)
Laporan praktikum modul 1 (dbms)Laporan praktikum modul 1 (dbms)
Laporan praktikum modul 1 (dbms)
 
Sim, alya zulfa oktaviana putri, hapzi ali,sistem manajemen database,universi...
Sim, alya zulfa oktaviana putri, hapzi ali,sistem manajemen database,universi...Sim, alya zulfa oktaviana putri, hapzi ali,sistem manajemen database,universi...
Sim, alya zulfa oktaviana putri, hapzi ali,sistem manajemen database,universi...
 
Modul Dbms mysql dan perintah dasar SQL
Modul Dbms mysql dan perintah dasar SQLModul Dbms mysql dan perintah dasar SQL
Modul Dbms mysql dan perintah dasar SQL
 

Kürzlich hochgeladen

Modul Ajar Matematika Kelas 2 Fase A Kurikulum Merdeka
Modul Ajar Matematika Kelas 2 Fase A Kurikulum MerdekaModul Ajar Matematika Kelas 2 Fase A Kurikulum Merdeka
Modul Ajar Matematika Kelas 2 Fase A Kurikulum MerdekaAbdiera
 
1.3.a.8 KONEKSI ANTAR MATERI MODUL 1.3 (Heriyanto).pdf
1.3.a.8  KONEKSI ANTAR MATERI MODUL 1.3 (Heriyanto).pdf1.3.a.8  KONEKSI ANTAR MATERI MODUL 1.3 (Heriyanto).pdf
1.3.a.8 KONEKSI ANTAR MATERI MODUL 1.3 (Heriyanto).pdfHeriyantoHeriyanto44
 
5. HAK DAN KEWAJIBAN JEMAAH indonesia.pdf
5. HAK DAN KEWAJIBAN JEMAAH indonesia.pdf5. HAK DAN KEWAJIBAN JEMAAH indonesia.pdf
5. HAK DAN KEWAJIBAN JEMAAH indonesia.pdfWahyudinST
 
Materi Struktur Jaringan Tumbuhan(1).pdf
Materi Struktur Jaringan Tumbuhan(1).pdfMateri Struktur Jaringan Tumbuhan(1).pdf
Materi Struktur Jaringan Tumbuhan(1).pdfKamboja16
 
PPT Hukum Adat Keberadaan Hukum Adat Di Kehidupan Masyarakat.pdf
PPT Hukum Adat Keberadaan Hukum Adat Di Kehidupan Masyarakat.pdfPPT Hukum Adat Keberadaan Hukum Adat Di Kehidupan Masyarakat.pdf
PPT Hukum Adat Keberadaan Hukum Adat Di Kehidupan Masyarakat.pdfSBMNessyaPutriPaulan
 
Elemen Jurnalistik Ilmu Komunikasii.pptx
Elemen Jurnalistik Ilmu Komunikasii.pptxElemen Jurnalistik Ilmu Komunikasii.pptx
Elemen Jurnalistik Ilmu Komunikasii.pptxGyaCahyaPratiwi
 
SANG BUAYA DI TIMPA POKOK CERITA KANAK-KANAK
SANG BUAYA DI TIMPA POKOK CERITA KANAK-KANAKSANG BUAYA DI TIMPA POKOK CERITA KANAK-KANAK
SANG BUAYA DI TIMPA POKOK CERITA KANAK-KANAKArifinAmin1
 
Estetika Humanisme Diskusi Video Sesi Ke-1.pdf
Estetika Humanisme Diskusi Video Sesi Ke-1.pdfEstetika Humanisme Diskusi Video Sesi Ke-1.pdf
Estetika Humanisme Diskusi Video Sesi Ke-1.pdfHendroGunawan8
 
rpp bangun-ruang-sisi-datar kelas 8 smp.pdf
rpp bangun-ruang-sisi-datar kelas 8 smp.pdfrpp bangun-ruang-sisi-datar kelas 8 smp.pdf
rpp bangun-ruang-sisi-datar kelas 8 smp.pdfGugunGunawan93
 
Diagram Fryer Pembelajaran Berdifferensiasi
Diagram Fryer Pembelajaran BerdifferensiasiDiagram Fryer Pembelajaran Berdifferensiasi
Diagram Fryer Pembelajaran BerdifferensiasiOviLarassaty1
 
Gandum & Lalang (Matius......13_24-30).pptx
Gandum & Lalang (Matius......13_24-30).pptxGandum & Lalang (Matius......13_24-30).pptx
Gandum & Lalang (Matius......13_24-30).pptxHansTobing
 
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pdf
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pdfAKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pdf
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pdfHeriyantoHeriyanto44
 
SBM_Kelompok-7_Alat dan Media Pembelajaran.pptx
SBM_Kelompok-7_Alat dan Media Pembelajaran.pptxSBM_Kelompok-7_Alat dan Media Pembelajaran.pptx
SBM_Kelompok-7_Alat dan Media Pembelajaran.pptxFardanassegaf
 
Tidak ada abstraksi dalam memori sistem operasi .pdf
Tidak ada abstraksi dalam memori sistem operasi .pdfTidak ada abstraksi dalam memori sistem operasi .pdf
Tidak ada abstraksi dalam memori sistem operasi .pdfAnggaaBaraat
 
Modul persamaan perakaunan prinsip akaun
Modul persamaan perakaunan prinsip akaunModul persamaan perakaunan prinsip akaun
Modul persamaan perakaunan prinsip akaunnhsani2006
 
Sejarah Perkembangan Teori Manajemen.ppt
Sejarah Perkembangan Teori Manajemen.pptSejarah Perkembangan Teori Manajemen.ppt
Sejarah Perkembangan Teori Manajemen.pptssuser940815
 
Mata Kuliah Etika dalam pembelajaran Kristen.pptx
Mata Kuliah Etika dalam pembelajaran Kristen.pptxMata Kuliah Etika dalam pembelajaran Kristen.pptx
Mata Kuliah Etika dalam pembelajaran Kristen.pptxoperatorsttmamasa
 
PLaN & INTERVENSI untuk sekolah yang memerlukan
PLaN & INTERVENSI untuk sekolah yang memerlukanPLaN & INTERVENSI untuk sekolah yang memerlukan
PLaN & INTERVENSI untuk sekolah yang memerlukanssuserc81826
 
slide presentation bab 2 sain form 2.pdf
slide presentation bab 2 sain form 2.pdfslide presentation bab 2 sain form 2.pdf
slide presentation bab 2 sain form 2.pdfNURAFIFAHBINTIJAMALU
 
PAMPHLET PENGAKAP aktiviti pengakap 2024
PAMPHLET PENGAKAP aktiviti pengakap 2024PAMPHLET PENGAKAP aktiviti pengakap 2024
PAMPHLET PENGAKAP aktiviti pengakap 2024MALISAAININOORBINTIA
 

Kürzlich hochgeladen (20)

Modul Ajar Matematika Kelas 2 Fase A Kurikulum Merdeka
Modul Ajar Matematika Kelas 2 Fase A Kurikulum MerdekaModul Ajar Matematika Kelas 2 Fase A Kurikulum Merdeka
Modul Ajar Matematika Kelas 2 Fase A Kurikulum Merdeka
 
1.3.a.8 KONEKSI ANTAR MATERI MODUL 1.3 (Heriyanto).pdf
1.3.a.8  KONEKSI ANTAR MATERI MODUL 1.3 (Heriyanto).pdf1.3.a.8  KONEKSI ANTAR MATERI MODUL 1.3 (Heriyanto).pdf
1.3.a.8 KONEKSI ANTAR MATERI MODUL 1.3 (Heriyanto).pdf
 
5. HAK DAN KEWAJIBAN JEMAAH indonesia.pdf
5. HAK DAN KEWAJIBAN JEMAAH indonesia.pdf5. HAK DAN KEWAJIBAN JEMAAH indonesia.pdf
5. HAK DAN KEWAJIBAN JEMAAH indonesia.pdf
 
Materi Struktur Jaringan Tumbuhan(1).pdf
Materi Struktur Jaringan Tumbuhan(1).pdfMateri Struktur Jaringan Tumbuhan(1).pdf
Materi Struktur Jaringan Tumbuhan(1).pdf
 
PPT Hukum Adat Keberadaan Hukum Adat Di Kehidupan Masyarakat.pdf
PPT Hukum Adat Keberadaan Hukum Adat Di Kehidupan Masyarakat.pdfPPT Hukum Adat Keberadaan Hukum Adat Di Kehidupan Masyarakat.pdf
PPT Hukum Adat Keberadaan Hukum Adat Di Kehidupan Masyarakat.pdf
 
Elemen Jurnalistik Ilmu Komunikasii.pptx
Elemen Jurnalistik Ilmu Komunikasii.pptxElemen Jurnalistik Ilmu Komunikasii.pptx
Elemen Jurnalistik Ilmu Komunikasii.pptx
 
SANG BUAYA DI TIMPA POKOK CERITA KANAK-KANAK
SANG BUAYA DI TIMPA POKOK CERITA KANAK-KANAKSANG BUAYA DI TIMPA POKOK CERITA KANAK-KANAK
SANG BUAYA DI TIMPA POKOK CERITA KANAK-KANAK
 
Estetika Humanisme Diskusi Video Sesi Ke-1.pdf
Estetika Humanisme Diskusi Video Sesi Ke-1.pdfEstetika Humanisme Diskusi Video Sesi Ke-1.pdf
Estetika Humanisme Diskusi Video Sesi Ke-1.pdf
 
rpp bangun-ruang-sisi-datar kelas 8 smp.pdf
rpp bangun-ruang-sisi-datar kelas 8 smp.pdfrpp bangun-ruang-sisi-datar kelas 8 smp.pdf
rpp bangun-ruang-sisi-datar kelas 8 smp.pdf
 
Diagram Fryer Pembelajaran Berdifferensiasi
Diagram Fryer Pembelajaran BerdifferensiasiDiagram Fryer Pembelajaran Berdifferensiasi
Diagram Fryer Pembelajaran Berdifferensiasi
 
Gandum & Lalang (Matius......13_24-30).pptx
Gandum & Lalang (Matius......13_24-30).pptxGandum & Lalang (Matius......13_24-30).pptx
Gandum & Lalang (Matius......13_24-30).pptx
 
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pdf
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pdfAKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pdf
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pdf
 
SBM_Kelompok-7_Alat dan Media Pembelajaran.pptx
SBM_Kelompok-7_Alat dan Media Pembelajaran.pptxSBM_Kelompok-7_Alat dan Media Pembelajaran.pptx
SBM_Kelompok-7_Alat dan Media Pembelajaran.pptx
 
Tidak ada abstraksi dalam memori sistem operasi .pdf
Tidak ada abstraksi dalam memori sistem operasi .pdfTidak ada abstraksi dalam memori sistem operasi .pdf
Tidak ada abstraksi dalam memori sistem operasi .pdf
 
Modul persamaan perakaunan prinsip akaun
Modul persamaan perakaunan prinsip akaunModul persamaan perakaunan prinsip akaun
Modul persamaan perakaunan prinsip akaun
 
Sejarah Perkembangan Teori Manajemen.ppt
Sejarah Perkembangan Teori Manajemen.pptSejarah Perkembangan Teori Manajemen.ppt
Sejarah Perkembangan Teori Manajemen.ppt
 
Mata Kuliah Etika dalam pembelajaran Kristen.pptx
Mata Kuliah Etika dalam pembelajaran Kristen.pptxMata Kuliah Etika dalam pembelajaran Kristen.pptx
Mata Kuliah Etika dalam pembelajaran Kristen.pptx
 
PLaN & INTERVENSI untuk sekolah yang memerlukan
PLaN & INTERVENSI untuk sekolah yang memerlukanPLaN & INTERVENSI untuk sekolah yang memerlukan
PLaN & INTERVENSI untuk sekolah yang memerlukan
 
slide presentation bab 2 sain form 2.pdf
slide presentation bab 2 sain form 2.pdfslide presentation bab 2 sain form 2.pdf
slide presentation bab 2 sain form 2.pdf
 
PAMPHLET PENGAKAP aktiviti pengakap 2024
PAMPHLET PENGAKAP aktiviti pengakap 2024PAMPHLET PENGAKAP aktiviti pengakap 2024
PAMPHLET PENGAKAP aktiviti pengakap 2024
 

OPTIMASI SQL DASAR

  • 1. JOBSHEET SQL Tingkat Dasar Kenapa MySQL? MySQL adalah database manajemen sistem (DBMS).DBMS merupakan paket software yang didesain untuk menyimpan dan mengelola basis data. DBMS juga merupakan salah satu system dalam mengakses database yang menggunakan bahasa SQL. SQL ( Structured Query Language ) adalah bahasa stndart yang digunakan untuk mengakses server database Kenapa menggunakan MySQL? MySQL software open source. Open source artinya memungkinkan untuk semua orang untuk menggunakan dan memodifikasi software. Database MySQL sangat cepat, reliable, dan mudah untuk digunakan, selain itu MySQL telah banyak menangani pembuatan software besar. Pengertian Database Relasional Secara umum, database berarti koleksi data yang saling terkait. Secara praktis basis data dapat dianggap sebagai suatu penyusuanan data yang terstruktur yang disimpan dalam media pengingat (hard disk) yang tujuannya adalah agar data tersebut dapat diakses dengan mudah dan cepat. Sesungguhnya ada beberapa macam database, antara lain yaitu database hierarkis, database jaringan dan database relasional. Database relasional merupakan database yang popular saat ini dan telah diterapkan pada berbagai platform, dari PC hingga minicomputer. Sebuah database relasional tersusun atas sejumlah tabel. Sebagai contoh database akademis mencakup tabel-tabel seperti guru, siswa, KRS,nilai dan lain-lain. Gambar berikut memperlihatkan sample data mengenai databse akademis. t. matapel Kode Nama M001 Matematika P001 Produktif B001 B.Inggris T siswa Nis Nama Alamat Telp Kelas 11060011 Rian Cimahi 66521364 11 RPL 1 11060012 Dewi Bandung 22354698 11 RPL 2 11060013 Yani Bandung 225698741 11 RPL 3 t. nilai (tabel relasi) Nis Kode Nilai 11060011 M001 80 11060011 B001 90 11060013 P001 85 1
  • 2. Memahami Normalisasi Normalisasi merupakan suatu proses untuk mengubah suatu tabel yang memiliki masalah tertentu ke dalam dua buah tabel atau lebih yang tidak lagi memiliki masalah tersebut. Normalisasi bisa dipakai oleh para perancang database untuk melakukan verifikasi terhadap tabel-tabel yang telah dibuat, sehingga tidak menimbulkan suatu permasalahan saat data ditambah, diperbarui ataupun dihapus. Kesalahan Perancangan Tabel Gambaran tentang kesalahan perancangan tabel diperlihatkan di bawah ini. Sebagai contoh, terdapat tabel dengan kolom-kolom sebagai berikut : T=(kode_buku, judul, halaman, topic) Yang secara berturut-turut menyatakan kode buku, judul buku, jumlah halaman dan topic buku. Jika sebuah buku memiliki lebih dari sebuah topic, tabel tersebut memiliki masalah, yakni data kode buku, judul dan halaman harus di duplikasi. Sebagai contoh diperlihatkan pada tabel berikut : Tabel : Contoh satu buku dengan dua buah topic Kode_buku Judul Halaman Topic 001 Java 451 Pemrograman 001 Java 451 Internet Duplikasi data seperti di atas (dinyatakan dengan cetakan tebal) harus dihindari karena berpotensi menimbulkan masalah. Sekarang perhatikan tabel berikut : Tabel : Contoh Data tentang pemasok Pemasok Kota Barang jumlah Kartika Jakarta Monitor GGG 10 Citra Bandung Hardisk 4 Candra Jakarta Keyboard 5 Citra Bandung Mouse 25 Seandainya pemasok Citra berpindah ke kota lain, misalnya ke Bogor, dan pengubahan hanya dilakukan pada data pertama (data pemasok Citra pada tabel tersebut ada dua buah), maka hasilnya adalah seperti berikut : Tabel : Keadaan yang menunjukkan adanya ketidak konsistenan Pemasok Kota Barang jumlah Kartika Jakarta Monitor GGG 10 Citra Bogor Hardisk 4 Candra Jakarta Keyboard 5 Citra Bandung Mouse 25 Terlihat bahwa terdapat ketidakkonsistenan. Fakta pertama menyatakan bahwa pemasok Citra belokasi di Bogor, tetapi fakta kedua menyatakan bahwa pemasok Citra 2
  • 3. berada di Bandung. Jadi mana yang benar ? Keadaan inilah yang menyatakan adanya ketidak-konsistenan. Kasus tabel buku dapat dipecahkan ke dalam beberapa tabel seperti berikut : Tabel Buku (kode_buku, judul, halaman) Tabel buku_topik (kode_buku, id_topik) Tabel topic (id_topik, nama_topik) Tabel-tabel berikut memperlihatkan sample data untuk masing-masing tabel di atas. : Tabel Buku Kode_buku Judul Halaman 001 Java 451 Tabel Buku_topik Kode_buku Id_topik 001 P05 001 I01 Tabel topic Kode_buku Judul P05 Pemrograman I01 Internet Adapun permasalahan pada tabel pemasok dapat diuraikan menjadi seperti berikut : Tabel Pemasok (kode_pemasok, pemasok, kota) Tabel Barang (kode_barang, nama_barang) Tabel Pemasok_barang (kode_pemasok, kode_barang, jumlah) Tabel-tabel berikut memperlihatkan sample data untuk masing-masing tabel di depan. Tabel Pemasok Kode_pemasok pemasok kota C-01 Citra Jakarta C-02 Candra Bogor K-01 Kartika Jakarta Tabel Barang Kode_barang Barang MON-13 Monitor GGG ZIP-01 Hardisk KEY-01 Keyboard MOU-23 Mouse 3
  • 4. Tabel Pemasok_barang Kode_pemasok Barang jumlah K-01 MON-13 10 C-01 ZIP-01 4 C_02 KEY-01 5 C-01 MOU-23 25 Dengan menggunakan tabel-tabel sebagaimana terlihat pada tabel-tabel di atas, permasalahan duplikasi data dan ketidak-konsistenan dihapuskan. Sebagai contoh, jika katakanlah topic pemrograman hendak diganti menjadi Programming, perubahan cukup dilakukan di satu tempat yaitu tabel topic. Didalam MySQL terdapat sebuah database yang ada sejak awal setelah anda menginstall MySQL, nama database tersebut adalah mysql dan pada database tersebut tersimpan nama- nama pengguna yang dapat menggunakan MySQL lengkap dengan opsi otoritas yang dapat dilakukan oleh pengguna tersebut. Secara default user dengan nama root adalah pengguna yang menguasai secara utuh dan dapat membuat user lainnya (termasuk membatasi user - user lain). Untuk dapat menggunakan MySQL anda harus memasukan user dan password yang sama dengan apa yang dideklarasikan dalam database (mysql). Untuk dapat menjalankan MySQL adan harus menjalankan service atau layanan MySQL. Berikut cara mengakses MySQL (dilakukan pada DOS (C:program filesmysqlbin) atau mode text). ➢ Masuk ke Server MySql mysql -u root -h localhost -p Enter password:************ Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 2 to server version: 4.0.11a-gamma Type 'help;' or 'h' for help. Type 'c' to clear the buffer. Keterangan : -h : menunjukkan nama Host (dapat juga dengan alamat IP, ex : 184.36.25.1) -u : menunjukkan nama User -p : MySQL akan menanyakan password jika anda menggunakan opsi ini. Jika user yang anda gunakan tidak menggunakan password anda tidak perlu menggunakan opsi -p ini. -p dapat juga digunakan untuk mendeklarasikan nama database yang anda gunakan (ex: mysql -u root - loclhost -p latihan) ➢ Keluar dari MySql mysql> q Bye Database adalah kumpulan dari tabel-tabel, dan tabel biasa juga disebut relasi menyatakan bentuk berdimensi dua yang mewakili suatu kelompok data yang sejenis yang terdiri dari kumpulan dari beberapa Field atau column. Untuk membuat suatu table maka seorang user harus membuat database terlebih dahulu. Dengan mengaktifkan database yang dibuat tersebut. ➢ Membuat database BU : CREATE Database Nm_Database; Contoh : 4
  • 5. mysql> create database akademik; Query OK, 1 row affected (0.11 sec) ➢ Melihat seluruh daftar database dalam server MySql BU: SHOW Databases; mysql> show databases; +--------------+ | Database | +--------------+ | mysql | | akademik | | test | +--------------+ 3 rows in set (0.27 sec) ➢ Mengaktifkan/Menggunakan Database Sebelum pembuatan tabel dan operasi-operasi yang berhubungan dengan tabel maka database harus di aktifkan/digunakan. BU : USE Nm_Database Contoh : mysql> use akademik; Database changed  Menghapus Database dari Server BU : Drop Database Nm_Database Contoh : mysql> drop database akademik; Query OK, 0 rows affected (0.11 sec) Aturan penamaan dalam pembuatan database : 1. Jangan menggunakan spasi dan spesial karakter dalam pembuatan nama database 2. Jangan menggunkan angka pada awal pembuatan nama database Secara umum bahasa SQL dibagi menjadi dua bagian: 1. DDL (Data Definition Language) yang digunakan untuk membangun objek-objek dalam database seperti tabel. 2. DML (Data Manipulation Language) yang digunakan dalam memanipulasi suatu tabel didalam database (menambah, mengedit, mencari dan menghapus) Kedua komponen ini bisa digunakan setelah suatu database di aktifkan. 1. DDL (Data Definition Language) Terdiri atas : Create, Alter, Drop Membuat Tabel Setelah menciptakan suatu database dan mengaktifkan database tersebut maka dapat dilakukan perintah pembuatan tabel BU : CREATE TABLE Nm_Tabel (Nm_Kolom1 tipe data([ukuran]),nm_kolom2 tipe data (*ukuran+)….. nm_kolom_n tipe data (*ukuran+)); Contoh : create table siswa (nis varchar(10),nama varchar(30),jk char(2),alamat varchar(50)); Melihat Struktur Tabel Perintah describe nama_tabel; digunakan untuk melihat struktur tabel yang telah dibuat. Namun sebelumnya, sudah berada pada database yang mempunyai 5
  • 6. tabel tersebut. Contoh : Mengetahui Daftar Tabel dalam Database BU: SHOW Tables, SHOW Tables from nama_database; mysql> show tables; +-----------------------------+ | Tables_in_akademik | +-----------------------------+ | siswa | | matpel | | nilai | +-----------------------------+ Mengubah Struktur Tabel Ada empat macam perubahan dalam struktur tabel, yaitu : a. Perubahan nama field/kolom Perubahan yang terjadi hanya pada nama field/kolom saja. Nama field/kolom lama diganti dengan nama field/kolom yang baru. Struktur penulisan : alter table nama_tabel change nama_field_lama nama_field_baru tipe_data; Contoh : mysql>alter table siswa change jk jenis_kelamin char(2); b. Perubahan tipe data Perubahan yang terjadi hanya pada tipe data yang digunakan oleh field/kolom tertentu. Tipe data baru langsung disebutkan dibelakang nama field/kolom, tanpa harus menyebutkan tipe data lama. Struktur penulisan : Alter table nama_tabel modify nama_field tipe_data_baru; Contoh : mysql>alter table siswa modify nama longtext; c. Penambahan field Struktur tabel akan berubah dengan bertambahnya field/kolom baru didalamnya. Struktur penulisan : Alter table nama_tabel add nama_field tipe_data_baru; Contoh : mysql>alter table siswa add kelas varchar(10); d. Penghapusan field Struktur tabel mengalami perubahan akibat berkurangnya field/kolom tertentu. Struktur penulisan : Alter table nama_tabel drop column nama_field; 6
  • 7. Contoh : mysql>alter table siswa drop column kelas; Mengganti Nama Tabel Penggantian nama tabel meliputi nama tabel itu sendiri. Struktur penulisan : Alter table nama_tabel_lama rename nama_tabel_baru; Contoh : mysql>alter table siswa rename t_siswa; Menghapus Tabel Tabel dapat saja dihapus karena sudah tidak dibutuhkan lagi,atau terjadi kesalahan. Struktur penulisan : Drop table nama_tabel; Contoh : mysql>drop table t_siswa; KEKANGAN NILAI PADA DATA Menentukan Kunci Primer (Primary Key) Secara sederhan kunci primer digunakan untuk menyatakan bahwa suatu nilai tidak boleh ada yang sama dan nilai tersebut harus diisi (NOT NULL). Penetapan kunci primer dibuat pada saat pembuatan tabel: mysql> create table siswa (nis varchar(10) not null primary key,nama varchar(30),jk char(2),alamat varchar(50)); Memberikan nilai bawaan (Default) Jika tidak memberikan suatu nilai dalam kolom tertentu maka oleh system secara otomatis diisi dengan nilai NULL. Oleh karena itu pada saat perancangan table field tersebut defaultnya diisi dengan tetapan yang dikehendaki. mysql> create table matpel (kode_matpel varchar(10) not null primary key,nama_matpel varchar(20),kelompok varchar(20) default null); Mengenal Auto_Increment MySQL menyediakan atribut AUTO_INCREMENT yang dapat diletakkan pada pendefinisian kolom. Atribut ini berguna untuk membentuk kolom yang memiliki baris-baris dengan nilai yang urut. Dalam hal ini kolom yang diberi atribut AUTO_INCREMENT harus bertinadak sebagai kunci primer. mysql> create table nilai (no int primary key AUTO_INCREMENT, nis char(10) not null, kode_mp char(10) not null , nilai double); 2. DML (Data Manipulation Language) Terdiri dari SELECT, INSERT, UPDATE dan DELETE Memasukkan Data (Insert) Ada tiga cara yang dapat digunakan untuk memasukkan data kedalam tabel, yaitu: 1. insert into nama_tabel values (isi_field_2,…,isi_field_n); Contoh : insert into siswa values (‘0001’,’Asep’,’L’,’Bandung’); 2. insert into nama_tabel (nama_field_1, nama_field_2,…,nama_ field_n) values (isi_field_1, isi_field_2,…,isi_field_n); Contoh : 7
  • 8. Insert into siswa (nis,nama,jk,alamat) values (‘0001’,’Asep’,’L’,’Bandung’); 3. Memasukkan data lebih dari satu record Contoh : Insert into siswa values(‘0002’,’Dina’,’P’,’Cimahi’),(‘0003’,’Wahyu’,’L’,’Cimahi’),(‘0004’,’Ridwan’,’L’,’Bandung’); Menampilkan Data (Select) Berikut ini perintah untuk menampilkan data : Struktur Penulisan : Select [fields] from [nama_tabel] Where [kondisi] Order by [nama_field] Group by [nama_field] asc / desc Contoh : Select nis from siswa; Select nis,nama from siswa; Select * from siswa; Note : Setelah penulisan select, [fields] dapat diganti dengan menyebutkan satu nama field saja atau beberapa field sekaligus yang dipisah dengan tanda koma (,). Penulisan field-field tersebut digunakan untuk memunculkan data dari kolom mana saja yang akan ditampilkan. Jika seluruh kolom akan ditampilkan dapat menggunakan tanda asterik (*) untuk mewakilinya. Mengurutkan Tampilan Klausa ORDER BY digunakan untuk mengurutkan hasil. Jika menginginkan data ditampilkan urut berdasarkan pada urutan terkecil ke besar, dapat menggunakan ASC (ascending). Sedangkan untuk mengurutkan data berdasarkan yang terbesar ke kecil, dapat menggunakan DESC (descending). Mengubah Data (Update) Jika data sudah kadaluarsa atau ada yang salah dengan data, berikut perintah yang digunakan untuk merubah data. Struktur penulisan : Update nama_tabel set nama_field_1=isi_baru_1, nama_field_2= isi_baru_2,…, nama_field_n=isi_baru_n Where kriteria; Contoh : - mengubah sebuah kolom untuk baris tertentu Update siswa set alamat=’Jakarta’ where nama=’Wahyu’; - mengubah beberapa kolom sekaligus untuk baris tertentu Update siswa set nama=’Reni’,alamat=’Bandung’ where nis=’0004’; - mengubah beberapa baris 8
  • 9. Update siswa set alamat=’Solo’ where nis=’0001’ or nis=’0003’; - mengubah semua baris Update siswa set alamat=’Bandung’; Menghapus Data (Delete) Jika terdapat kesalahan data atau data sudah tidak digunakan lagi, hapus dengan perintah delete. Struktur penulisan : Delete from nama_tabel where kriteria; Contoh : Delete from siswa where nama=’Wahyu’; OPERATOR RELASIONAL Operator yang digunakan yntuk perbandingan antara dua buah nilai. Jenis dari operator ini adalah = , >, <, >=, <=, <> Operator Logika : OR,AND,XOR,NOT Operator BETWEEN dan NOT BETWEEN Operator between ini untuk menangani operasi “jangkauan” atau menampilkan suatu range data. Operator IN dan NOT IN Operator IN digunakan untuk mencocokkan dengan salah satu yang ada pada suatu daftar nilai. Sebagai contoh : 9
  • 10. Operator LIKE dan NOT LIKE Operator LIKE atau NOT LIKE sangat bermanfaat dalam mencari suatu data. Operasi ini digunakan dengan menyebutkan tanda wildcard berupa garis bawah (_) atau (%) <. Tanda garis bawah (_) berarti sebuah karakter apa saja. Contoh a_u cocok dengan anu,aku,alu,abu dan tidak cocok untuk andu,ambu ataupun allu <. Tanda % berarti cocok dengan kata apa saja dan berapapun panjangnya contoh: Pengelompokkan Data Hasil dari SELECT juga dapat dikelompokkan dengan menggunakan kalusa GROUP BY Contoh : Klausa Having Pemakaian klausa HAVING terkait dengan klausa GROUP BY. Kegunaannya adalah untuk menentukan kondisi bagi GROUP BY. Kelompok yang memenuhi having saja yang dihasilkan. Contoh : DISTINCT menyebabkan fungsi hanya menganggap nilai non-duplikat Contoh : 10
  • 11. FUNGSI AGREGAT Adalah fungsi yang disediakan untuk menghasilkan sebuah nilai berdasarkan sejumlah data. Fungsi sendiri adalah suatu kumpulan instruksi yang menghasilkan sebuah nilai jika dipanggil. Adapun fungsi aggregate yang disediakan oleh MySQL dapat dilihat pada table berikut : Contoh : mysql> select avg(nilai) from nilai; +------------+ | avg(nilai)| +------------+ | 82.5 | +------------+ 1 row in set (0.05 sec) mysql> select count(nama) from siswa; +------------------+ | count(nama) | +------------------+ |5 | +------------------+ 1 row in set (0.00 sec) mysql> select max(nilai),min(nilai) from nilai; +---------------+--------------+ | max(nilai) | min(nilai) | +---------------+--------------+ | 90 | 75 | +---------------+--------------+ 1 row in set (0.05 sec) 14 mysql> select sum(nilai) from nilai; +--------------+ | sum(nilai) | +--------------+ | 330 | +--------------+ 1 row in set (0.05 sec) 11
  • 12. Ekspresi Pada Query Ekspresi pada query memungkinkan untuk mengubah judul kolom keluaran, melakukan perhitungan pada kolom keluaran, dan mengubah tipe data keluaran. - Memberi nama lain terhadap kolom keluaran Untuk memberi nama lain terhadap suatu kolom keluaran dengan klausa AS. - Ekpresi berkondisi BU : CASE nilai_ekspresi WHEN nilai_ekspresi THEN nilai_ekspresi ELSE nilai_ekspresi END - Ekspresi tentang Waktu Pernyataan berikut akan menampilkan identitas sisa yang tanggal lahirnya lebih dari tanggal 31 desember 1993 - FUNGSI NILAI CURRENT_DATE : Menghasilkan tanggal sekarang CURRENT_TIME : Menghasilkan Waktu sekarang 12
  • 13. mysql> select current_date as Tgl_Sekarang; +-------------------+ | Tgl_Sekarang | +-------------------+ | 2010-02-14 | +-------------------+ 1 row in set (0.06 sec) mysql> select current_time as Waktu_Sekarang; +------------------------+ | Waktu_Sekarang | +------------------------+ | 20:53:14 | +------------------------+ 1 row in set (0.06 sec) Penggabungan Data / Query Antar Table Query yang akan dibahas pada bagian ini melibatkan lebih dari satu tabel Struktur table siswa Isi dari tabel siswa Struktur Tabel Matpel (Mata Pelajaran) Struktur Tabel Nilai 13
  • 14. MySQL mempunyai kemampuan untuk menggabungkan dua tabel atau lebih untuk mendapatkan informasi yang diinginkan. Proses yang dilakukan dengan nama JOIN. Dalam penggabungan dari beberapa tabel (join) ada beberapa hal yang perlu diperhatian, antara lain : 1. Setiap kolom disebutkan dengan bentuk, 2. tabel-tabel yang dilibatkan dalam query perlu disebutkan dalam Klausa FROM dengan antar tabel dipisah oleh koma. 3. Kondisi dalam WHERE menetukan macam join yang terbentuk Macam-macam bentuk Penggabungan (Join) 1. Natural Join Adalah penggabungan data dari dua buah table yang didasarkan pada kolom dengan nama sama pada kedua table . Penggabungan ini mencerminkan hubungan antara kunci tamu dan kunci primer dalam dua buah table Contoh: 2. CROSS JOIN Cross Join merupakan bentuk penggabungan yang paling sederhana dari dua buah tabel. BU : SELECT field1,field2 FROM Tabel1 CROSS JOIN tabel2; Contoh : 3. INNER JOIN Hampir sama dengan cross join tetapi diikuti dengan kondisi BU : SELECT Field FROM tabel1 INNER JOIN tabel 2 ON kondisi Contoh : 4 LEFT (OUTER) JOIN 14
  • 15. Akan menampilkan tabel disebelah kanannya (dalam hal ini tabel nilai) dengan NULL jika tidak terdapat hubungan antara tabel disebelah kiri (dalam hal ini tabel siswa) BU : SELECT field FROM tabel1 LEFT JOIN tabel2 ON kondisi Contoh 5. RIGHT/OUTER JOIN Kebalikan dari LEFT JOIN, jika idak menemukan hubungan dengan tabel disebelah kiri maka akan ditampilkan NULL BU : SELECT field FROM tabel1 RIGHT JOIN tabel2 ON kondisi Contoh : Pembuatan VIEW View merupakan bentuk representasi data yang dapat dibuat dengan melibatkan data yang ada pada satu atau beberapa table. Dengan menggunakan view, dimungkinkan untuk membuat hanya bagian tertentu dalam suatu table yang akan muncul. Sebagai contoh suatu view bias berupa data nis dan alamat siswa tanpa melibatkan data nama . View juga bias mencakup data yang berasal dari dua table atau bahkan lebih. Mengingat sifatnya yang demikian, view dapat dianggap sebagai query tersimpan atau sebagai table semu. Secara internal view akan disimpan sebagai kamus data. Data yang sesungguhnya tidak ikut dicatat secara eksplisit, melainkan tetap megacu pada table basisnya. Membuat View Untuk membuat view MySQL menyediakan perintah CREATE VIEW : Create view nama_view as select nama_field1,nama_field2 from nama_tabel Contoh : 15
  • 16. Memperoleh Informasi pada View Setelah view diciptakan, view dapat diakses sebagaimana mengakses table yaitu dengan menggunakan perintah SELECT. Select * from nama_view Contoh : Mengubah View Untuk mengubah view bias dilakukan dengan perintah Alter View Alter view nama_view as select nama_field1,nama_field2 from nama_table Contoh : Menghapus View Untuk menghapus view dapat dilakukan dengan perintah DROP VIEW. Drop view nama_view Contoh : Drop view Data_Nilai; Penggunaan Indeks Pernahkah anda memanfaatkan indeks buku ?Jika ya, mungkin anda telah menyadari manfaat indeks. Melalui indeks buku anda bias mencari letak item tertentu dalam buku dengan mudah dan cepat berapapun tebal buku tersebut. Keberadaan indeks dalam database antara lain adalah untuk mempercepat pencarian data berdasarkan kolom tertentu. Misal anda memberikan perintah : Select * from siswa where nis=’0005’; Jika nis tidak dijadikan sebagai indeks, pencarian data akan dilakukan terhadap seluruh table, sama seperti kalau anda mencari sesuatu dalam buku tetapi buku tersebut tidak dilengkapi dengan indeks. Namun, jika indeks yang berkaitan dengan nis ada, system akan 16
  • 17. menemukannya dengan cepat. Tentu saja pengaruh indeks akan terasa jika jumlah data sangat banyak, missal ada jutaan baris. Menciptakan Indeks Untuk menciptakan indeks bisa dilakukan dengan perintah : Create index nama_index on nama_tabel(nama_kolom) Contoh : Menghapus Indeks Untuk menghapus indeks bisa dilakukan dengan perintah DROP INDEX Drop index nama_index on nama_table Contoh : Drop index kode on siswa; Membuat Indeks yang Unik Pada contoh create index yang pertama, indeks yang terbentuk bisa menerima nilai yang kembar (duplikat). Jika anda tak menghendaki hal ini. Anda bisa menciptakan indeks yang unik. Caranya dengan memberikan kata UNIQUE di antara CREATE dan INDEX Create unique index nama_index on nama_tabel(nama_kolom) Contoh : Create unique index nama_siswa on siswa(nama); Membuat indeks berdasarkan beberapa kolom Create index nama_index on nama_tabel(nama_kolom1,nama_kolom2) Contoh : Create index kode_nilai on nilai(nis,kode_matpel); 17