SQL

SQL (Structured Query Language) adalah bahasa komputer yang ditujukan untuk menyimpan, memanipulasi, dan query data disimpan dalam database relasional. Reinkarnasi pertama dari SQL muncul di tahun 1974, ketika sebuah kelompok di IBM mengembangkan prototipe pertama dari sebuah database relasional. Database relasional komersial pertama dirilis oleh Relational Software (kemudian menjadi Oracle). Standar untuk SQL ada. Namun, SQL yang dapat digunakan pada masing-masing RDBMS utama saat ini adalah dalam rasa yang berbeda. Hal ini disebabkan dua alasan: 1) standar perintah SQL ini cukup rumit, dan tidak praktis untuk menerapkan seluruh standar, dan 2) masing-masing vendor database memerlukan cara untuk membedakan produk dari orang lain. 


Perintah SQL berikut, yang sering digunakan dalam query SQL di dalam menyusun database.

SQL SELECT Statement
SQL DISTINCT
SQL WHERE
SQL AND OR
SQL IN
SQL BETWEEN
SQL Wildcard
SQL LIKE
SQL ORDER BY
SQL Aggregate Functions
SQL Average
SQL COUNT
SQL MAX
SQL MIN
SQL SUM
SQL GROUP BY
SQL HAVING
SQL ALIAS
SQL JOIN
SQL OUTER JOIN
SQL CONCATENATE Function
SQL SUBSTRING Function
SQL TRIM Function






Perintah – Perintah SQL

Berikut ini adalah perintah-perintah SQL atau yang lebih dikenal dengan sebutan query. Adapun project yang dijadikan sebagai acuan adalah proyek database sederhana penilaian mahasiswa.

Struktur dan Skema
CREATE DATABASE kuliah;
USE kuliah;

CREATE TABLE tbl_mahasiswa ( nim varchar(6) NOT NULL, nama varchar(20) NOT NULL,
alamat varchar(30) default NULL,
telepon varchar(12) default NULL, kd_jurusan varchar(4) default NULL, tgl_masuk datetime default NULL, PRIMARY KEY          (nim),
KEY FK_tbl_mahasiswa (kd_jurusan),
CONSTRAINT FK_tbl_mahasiswa FOREIGN KEY (kd_jurusan) REFERENCES
tbl_jurusan(kd_jurusan)

CREATE TABLE tbl_dosen ( kd_dosen varchar(4) NOT NULL, nama_dosen varchar(20) NOT NULL, alamat varchar(30) default NULL, telepon varchar(12) default NULL, PRIMARY KEY  (kd_dosen)

CREATE TABLE tbl_jurusan ( kd_jurusan varchar(4) NOT NULL, nama_jurusan varchar(20) default NULL, ketua_jurusan varchar(4) default NULL, PRIMARY KEY   (kd_jurusan)

CREATE TABLE tbl_krs (
kd_krs varchar(5) NOT NULL,
nim varchar(6) NOT NULL, semester tinyint(4) NOT NULL, dsn_wali varchar(4) NOT NULL, PRIMARY KEY             (kd_krs),
KEY FK_tbl_dsnwali (dsn_wali), KEY FK_tbl_krsmhs (nim),
CONSTRAINT FK_tbl_krsmhs FOREIGN KEY (nim) REFERENCES
tbl_mahasiswa(nim),
CONSTRAINT FK_tbl_dsnwali FOREIGN KEY (dsn_wali) REFERENCES
tbl_dosen (kd_dosen)

CREATE TABLE tbl_krsdetail ( kd_krs varchar(5) NOT NULL, kdmk varchar(6) default NULL,
kd_dosen varchar(4) default NULL, nilai_angka float default '0', nilai_huruf varchar(2) default 'E',
KEY FK_tbl_krsdetail(kd_krs), KEY FK_tbl_krsmk(kdmk),
KEY FK_tbl_krsdosen(kd_dosen),
CONSTRAINT FK_tbl_krsdosen FOREIGN KEY (kd_dosen) REFERENCES
tbl_dosen(kd_dosen),
CONSTRAINT FK_tbl_krsdetail FOREIGN KEY (kd_krs) REFERENCES
tbl_krs(kd_krs),
CONSTRAINT FK_tbl_krsmk FOREIGN KEY (kdmk) REFERENCES
tbl_matakuliah (kdmk)


Entry Data dengan perintah INSERT

Sintaks :

INSERT INTO nama_tabel(field1,field2,field3)
values(value1,value2,value3),(value4,value5,value6),(value7,value
8,value9);

Jika diuraikan perintah INSERT diatas adalah seperti ini

INSERT INTO nama_tabel(field1,field2,field3)
values(value1,value2,value3);

INSERT INTO nama_tabel(field1,field2,field3)
values(value4,value5,value6);

INSERT INTO nama_tabel(field1,field2,field3)
values(value7,value8,value9);



Data yang pertama sekali diisi yaitu data pada tabel master data.

Entry tabel jurusan. (2 Rekord)



INSERT INTO tbl_jurusan(kd_jurusan,nama_jurusan,ketua_jurusan) VALUES ('J001', 'Ilmu Komputer', 'DS05'),('J002', 'Sistem Informasi', 'DS09');


Entry tabel Matakuliah (12 Rekord)

INSERT INTO tbl_matakuliah (kdmk,nama_mk,semester,sks) VALUES ('KOMP00', 'Dasar-dasar Pemrograman', 1, 2),
('KOMP02', 'Teknik Kompilasi', 1, 2), ('KOMP03', 'Pemrograman Pascal', 1, 2), ('KOMP04', 'Praktek Pemrograman Pasca', 1, 1), ('KOMP05', 'Praktek Teknik Kompilasi', 1, 1), ('KOMP06', 'Bahasa Inggris 1', 1, 2),
('KOMP07', 'Matematika Dasar ', 1, 2), ('KOMP08', 'Bahasa Indonesia ', 1, 2), ('KOMP09', 'Agama', 1, 2),
('KOMP10', 'Analisa Numerik', 3, 2),
('KOMP11', 'Analisa Algoritma', 3, 2), ('KOMP12', 'Perancangan System', 3, 2);

Entry Tabel Mahasiswa (5 Rekord)

INSERT INTO tbl_mahasiswa(nim,nama,alamat,telepon,kd_jurusan, tgl_masuk) VALUES
('070201', 'Abdul G', 'Jl. Melati no 45', '061-8445212', 'J001',
'2007-08-01'),
('070202', 'Sugimin', 'Jl. Gatot Subroto no 44', '061-5651211',
'J002', '2007-08-01'),
('080201', 'Abu Bakar', 'Jl. Kapt Muslim no 45', '061-8457881',
'J001', '2008-08-01'),
('080202', 'Dessy N', 'Jl. Imam bonjol no 125', '061-4511221',
'J002', '2008-08-01'),
('080203', 'Charles S', 'Jl. Sisingamangaraja no 12', '061-
7861245', 'J001', '2008-08-01');

Entry Pada Tabel Dosen (12 Record)

INSERT INTO tbl_dosen(kd_dosen,nama_dosen,alamat,telepon) VALUES ('DS01', 'Asrul Sani', 'Jl.Matahari Raya no 10', '061-8245126'), ('DS02', 'Benny G', 'Jl.Sutomo no 10 Medan', '061-452153'), ('DS03', 'Christy N', 'Jl.Merdeka Barat No 45', '061-584545'), ('DS04', 'Syamsul B', 'Jl.Irian Barat No 67', '061-451285'), ('DS05', 'Tanoto S', 'Jl.Palang Merah N0 67', '061-458412'), ('DS06', 'Syamsudin N', 'Jl. Tridarma No 10', '061-849958'), ('DS07', 'Mangihut Sihite', 'Jl. Jamin Ginting no 350', '061-
823451'),
('DS08', 'James Gurning', 'Jl. Krakatu No 250', '061-685799'),
('DS09', 'Usman G', 'Jl. Kemuning No 115', '061-844215'), ('DS10', 'Sahala S', 'Jl. Sumarsono Kapt No 55', '061-845456'), ('DS11', 'Susi S', 'Jl. Gaperta No 457', '061-844248'),
('DS12', 'Ramlan S', 'Jl. Monginsidi No 120', '061-824526'),
('DS13', 'Dedi D', 'Jl. Iskandar Muda No 215', '061-857126');




Entry pada Tabel KRS (5 Rekord)

INSERT INTO tbl_krs(kd_krs,nim,semester,dsn_wali) VALUES ('KRS01', '080201', 1, 'DS01'),
('KRS02', '080203', 1, 'DS01'),
('KRS03', '080202', 1, 'DS05'), ('KRS04', '070201', 1, 'DS06'), ('KRS05', '080201', 1, 'DS06');

Entry pada Tabel KRS Detail (38 Rekord)

INSERT INTO tbl_krsdetail(kd_krs,kdmk,kd_dosen,nilai_angka, nilai_huruf) VALUES
('KRS01', 'KOMP00', 'DS01', 95, 'A'),
('KRS01', 'KOMP02', 'DS02', 84.6, 'B+'), ('KRS01', 'KOMP03', 'DS03', 85.5, 'B+'), ('KRS01', 'KOMP04', 'DS03', 95, 'A'), ('KRS01', 'KOMP05', 'DS02', 95, 'A'), ('KRS01', 'KOMP10', 'DS10', 75, 'B'), ('KRS01', 'KOMP11', 'DS09', 70, 'C'), ('KRS01', 'KOMP12', 'DS08', 75, 'C+'), ('KRS02', 'KOMP00', 'DS01', 90, 'B+'), ('KRS02', 'KOMP02', 'DS02', 85, 'B+'), ('KRS02', 'KOMP03', 'DS03', 85, 'B+'), ('KRS02', 'KOMP04', 'DS03', 95, 'A'), ('KRS02', 'KOMP05', 'DS02', 80, 'B'), ('KRS02', 'KOMP10', 'DS10', 50, 'D'), ('KRS02', 'KOMP11', 'DS09', 50, 'D'), ('KRS02', 'KOMP12', 'DS08', 60, 'C'), ('KRS04', 'KOMP00', 'DS01', 90, 'B+'), ('KRS04', 'KOMP02', 'DS02', 90, 'B+'), ('KRS04', 'KOMP03', 'DS03', 84, 'B+'), ('KRS04', 'KOMP04', 'DS03', 80, 'B'), ('KRS04', 'KOMP05', 'DS02', 75, 'B'), ('KRS04', 'KOMP10', 'DS10', 75, 'B'), ('KRS04', 'KOMP11', 'DS09', 78, 'B'), ('KRS04', 'KOMP12', 'DS08', 80, 'B'), ('KRS05', 'KOMP00', 'DS01', 90, 'B+'), ('KRS05', 'KOMP02', 'DS02', 84, 'B+'), ('KRS05', 'KOMP03', 'DS03', 86, 'B+'), ('KRS05', 'KOMP04', 'DS03', 95, 'A'), ('KRS05', 'KOMP05', 'DS02', 95, 'A'), ('KRS05', 'KOMP10', 'DS10', 78, 'B'), ('KRS05', 'KOMP11', 'DS09', 65, 'C+'), ('KRS05', 'KOMP12', 'DS08', 55, 'C'), ('KRS05', 'KOMP06', 'DS06', 98, 'A'), ('KRS05', 'KOMP07', 'DS07', 94, 'A'), ('KRS04', 'KOMP09', 'DS09', 84, 'B+'), ('KRS03', 'KOMP06', 'DS06', 78.5, 'B'), ('KRS03', 'KOMP07', 'DS07', 90.5, 'A'), ('KRS03', 'KOMP08', 'DS08', 85.4, 'E');
Setelah semua data telah dimasukkan, sekarang bagaimana menampilkan data yang sudah ada dengan perintah SELECT.

SELECT

Sintaks
SELECT  field1,field2,field3 FROM nama_tabel;

Contoh : Menampilkan  nama,alamat,telepon dari tabel mahasiswa

mysql> select nama,alamat,telepon from tbl_mahasiswa;
+-----------+----------------------------+-------------+
| nama      | alamat                    | telepon     |
+-----------+----------------------------+-------------+
| Abdul G   | Jl. Melati no 45          | 061-8445212 |
| Sugimin   | Jl. Gatot Subroto no 44   | 061-5651211 |
| Abu Bakar | Jl. Kapt Muslim no 45     | 061-8457881 |
| Dessy N   | Jl. Imam bonjol no 125    | 061-4511221 |
| Charles S | Jl. Sisingamangaraja no 12 | 061-7861245 |
+-----------+----------------------------+-------------+
5 rows in set (0.00 sec)

SELECT LIMIT

Select  Limit digunakan untuk menentukan record yang ditampilkan mulai dari record yang keberapa hingga record yang keberapa.

Sintaks :

SELECT jumlah_rekord field1,field2,field3 FROM nama_tabel LIMIT
record_awal,record_akhir;

Contoh : Menampilkan record awal (0) hingga record ke 3

mysql> select nama,alamat,telepon from tbl_mahasiswa limit 0,3;
+-----------+-------------------------+-------------+
| nama      | alamat                 | telepon     |
+-----------+-------------------------+-------------+
| Abdul G   | Jl. Melati no 45       | 061-8445212 |
| Sugimin   | Jl. Gatot Subroto no 44 | 061-5651211 |
| Abu Bakar | Jl. Kapt Muslim no 45  | 061-8457881 |
+-----------+-------------------------+-------------+
3 rows in set (0.00 sec)




SELECT AS

Select As digunakan untuk mengganti nama tabel pada hasil query, nama tabel ini tidak mempengaruhi nama tabel aslinya.

Sintaks :

Select  nama_field as nama_fieldbaru FROM nama_tabel;Contoh : Mengganti tampilan field nama dengan nama_mahasiswa pada query sebelumnya.

mysql> select nama as nama_mahasiswa,alamat,telepon from tbl_mahasiswa limit 0,3;
+----------------+-------------------------+-------------+
| nama_mahasiswa | alamat                 | telepon     |
+----------------+-------------------------+-------------+
| Abdul G        | Jl. Melati no 45       | 061-8445212 |
| Sugimin        | Jl. Gatot Subroto no 44 | 061-5651211 |
| Abu Bakar      | Jl. Kapt Muslim no 45  | 061-8457881 |
+----------------+-------------------------+-------------+
3 rows in set (0.00 sec)

WHERE

Where digunakan untuk memilih record mana yang ditampilkan dengan criteria tertentu.

Sintaks :
SELECT field1,field2,field3 FROM nama_tabel WHERE namafield =
kriteria;

Contoh : Menampilkan nim,nama,alamat,telepon dari tabel mahasiswa yang miliki nim
070201.

mysql> select nim,nama,alamat,telepon from tbl_mahasiswa where nim='070201';
+--------+---------+------------------+-------------+
| nim    | nama    | alamat           | telepon     |
+--------+---------+------------------+-------------+
| 070201 | Abdul G | Jl. Melati no 45 | 061-8445212 |
+--------+---------+------------------+-------------+
1 row in set (0.00 sec)



WHERE .. LIKE

Kriteria pada WHERE dapat diseleksi dengan kata kunci LIKE. Sintaks :
SELECT field1,field2,field3 FROM nama_tabel WHERE namafield LIKE katakunci; Pada MySQL dikenal tanda % yang artinya  mewakili semua karakter.

Conth : Menampilkan nama dosen yang diawali dengan huruf S.

mysql> select kd_dosen,nama_dosen,alamat from tbl_dosen where nama_dosen like 'S%';
+----------+-------------+--------------------------+
| kd_dosen | nama_dosen | alamat                  |
+----------+-------------+--------------------------+
| DS04     | Syamsul B   | Jl.Irian Barat No 67    |
| DS06     | Syamsudin N | Jl. Tridarma No 10      |
| DS10     | Sahala S    | Jl. Sumarsono Kapt No 55 |
| DS11     | Susi S      | Jl. Gaperta No 457      |
+----------+-------------+--------------------------+
4 rows in set (0.00 sec)


ORDER BY

Order by digunakan untuk mengurutkan hasil query berdasarkan field yang dipilih.
ASC    = diurutkan mulai dari nilai paling kecil; DESC = diurutkan mulai dari nilai tertinggi.

Syntaks : SELECT field1,field2,field3 FROM nama_tabel order by nama_field
DESC/ASC.

Jika DESC/ASC tidak disebutkan maka secara default system akan menggunakan ASC. Contoh : Menampilkan nama dosen diurutkan berdasarkan nama.
mysql> select kd_dosen,nama_dosen from tbl_dosen order by nama_dosen limit 0,5;
+----------+---------------+
| kd_dosen | nama_dosen   |
+----------+---------------+
| DS01     | Asrul Sani    |
| DS02     | Benny G       |
| DS03     | Christy N     |
| DS13     | Dedi D        |
| DS08     | James Gurning |
+----------+---------------+
5 rows in set (0.00 sec)


IN

Query IN digunakan untuk memilih record yang memiliki nilai yang disebutkan dalam criteria IN.

Syntaks : SELECT nama_field FROM nama_table WHERE nama_field IN (Kriteria1,Kriteria2,Kriteria3)

Contoh : Pilih mahasiswa yang memiliki nim 070201, 080201, 080202 dengan IN.

mysql> select nim,nama as nama_mahasiswa,telepon from tbl_mahasiswa where nim IN ('070201','080201','080202');
+--------+----------------+-------------+
| nim    | nama_mahasiswa | telepon    |
+--------+----------------+-------------+
| 070201 | Abdul G       | 061-8445212 |
| 080201 | Abu Bakar     | 061-8457881 |
| 080202 | Dessy N       | 061-4511221 |
+--------+----------------+-------------+
3 rows in set (0.00 sec)

COUNT

Count digunakan untuk menghitung record, count  juga dapat digabungkan dengan seleksi criteria WHERE.

Sintaks :

SELECT COUNT(nama_field) FROM nama_tabel;

Contoh : Menampilkan Jumlah Seluruh Matakuliah pada semester 1;

mysql> select count(*) from tbl_matakuliah  where semester='1';
+----------+
| count(*) |
+----------+
|        9 |
+----------+
1 row in set (0.00 sec)

SUM

Sum digunakan untuk menjumlahkan record-record yang dipilih, sum hanya dapat dilakukan pada field yang bernilai angka.
Sintaks :

SELECT Sum(nama_field)  FROM nama_tabel;
Contoh : Menghitung total sks yang ada pada matakuliah semester 1.
mysql> select sum(sks) as total_sks from tbl_matakuliah where semester='1';


+-----------+
| total_sks |
+-----------+
|        16 |
+-----------+
1 row in set (0.08 sec)

AVG

AVG digunakan untuk menghitung nilai rata-rata. Sintaks : SELECT avg(nama_field) FROM nama_tabel; Contoh : Hitung nilai rata-rata mahasiswa untuk tiap kode krs.
mysql> select kd_krs,avg(nilai_angka) as rata_rata from tbl_krsdetail group by k
d_krs;
+--------+-----------------+
| kd_krs | rata_rata      |
+--------+-----------------+
| KRS01  | 84.387499809265 |
| KRS02  |          74.375 |
| KRS03  | 84.800000508626 |
| KRS04  | 81.777777777778 |
| KRS05  |              84 |
+--------+-----------------+
5 rows in set (0.00 sec)



Query bersarang (Nested Query)

Dalam SQL dikenal query bersarang, dimana query ada dalam query.

Contoh : Pilih mahasiswa yang memiliki jurusan J001 degan query bersarang.

mysql> select nim,nama,kd_jurusan from tbl_mahasiswa where kd_jurusan IN (select
kd_jurusan from tbl_jurusan where kd_jurusan='J001');
+--------+-----------+------------+
| nim    | nama      | kd_jurusan |
+--------+-----------+------------+
| 070201 | Abdul G  | J001       |
| 080201 | Abu Bakar | J001      |
| 080203 | Charles S | J001      |
+--------+-----------+------------+
3 rows in set (0.00 sec)


JOIN

Join digunakan untuk menggabungkan dua atau lebih tabel, dengan syarat tabel yang digabungkan memiliki setidaknya satu field yang sama.

INNER JOIN

Inner  join digunakan  untuk menggabungkan  dua  atau  lebih  tabel  dimana  field  yang dijadikan sebagai referensi join memiliki nilai yang sama pada tabel sebelah kiri dan pada tabel sebelah kanan.

Syntaks : SELECT tabel1.field,tabel2.field2 From Tabel1 Inner Join Tabel2 on tabel1.field=tabel2.field1

Contoh 1 : Gabungkan tabel mahasiswa dengan tabel jurusan

mysql> select t1.nim,t1.nama,t2.nama_jurusan from tbl_mahasiswa t1 inner join tb
l_jurusan t2 on t1.kd_jurusan=t2.kd_jurusan;
+--------+-----------+------------------+
| nim    | nama      | nama_jurusan     |
+--------+-----------+------------------+
| 070201 | Abdul G  | Ilmu Komputer    |
| 080201 | Abu Bakar | Ilmu Komputer   |
| 080203 | Charles S | Ilmu Komputer   |
| 070202 | Sugimin  | Sistem Informasi |
| 080202 | Dessy N  | Sistem Informasi |
+--------+-----------+------------------+
5 rows in set (0.00 sec)




Contoh 2 : Gabungankan tabel mahasiswa dengan krs dan dosen wali.


mysql> select t1.nim,t1.nama,t2.kd_krs,t2.semester,t3.nama_dosen from tbl_mahasiswa t1 inner join tbl_krs t2 on t1.nim=t2.nim inner join tbl_dosen t3 on t2.dsn_wali=t3.kd_dosen;
+--------+-----------+--------+----------+-------------+
| nim    | nama      | kd_krs | semester | nama_dosen |
+--------+-----------+--------+----------+-------------+
| 080201 | Abu Bakar | KRS01 |        1 | Asrul Sani  |
| 080203 | Charles S | KRS02 |        1 | Asrul Sani  |
| 080202 | Dessy N  | KRS03  |        1 | Tanoto S    |
| 070201 | Abdul G  | KRS04  |        1 | Syamsudin N |
| 080201 | Abu Bakar | KRS05 |        1 | Syamsudin N |
+--------+-----------+--------+----------+-------------+
5 rows in set (0.00 sec)


LEFT JOIN
Syntaks : SELECT tabel1.field,tabel2.field2 From Tabel1 LEFT JOIN Tabel2 on tabel1.field=tabel2.field1

Left join digunakan untuk menggabungkan dua atau lebih tabel dimana field yang digunakan sebagai referensi pada tabel sebelah kiri akan ditampilkan walaupun tidak hadir pada tabel sebelah kanan.

Contoh : Tampilkan semua mahasiswa dengan kode krs. Pada kasus ini ada satu mahasiswa yang tidak memiliki krs, maka kode krs pada mahasiswa ini akan dibuat NULL.

mysql> select t1.nim,t1.nama,t2.kd_krs from tbl_mahasiswa t1 left join tbl_krs t
2 on t1.nim=t2.nim;
+--------+-----------+--------+
| nim    | nama      | kd_krs |
+--------+-----------+--------+
| 070201 | Abdul G  | KRS04  |
| 070202 | Sugimin  | NULL   |
| 080201 | Abu Bakar | KRS01 |
| 080201 | Abu Bakar | KRS05 |
| 080202 | Dessy N  | KRS03  |
| 080203 | Charles S | KRS02 |
+--------+-----------+--------+
6 rows in set (0.00 sec)

RIGHT JOIN

Right join adalah kebalikan left join, dimana semua item pada tabel sebelah kanan akan ditampilkan  walaupun  tidak  memiliki  nilai  yang  sama  dengan  referensi  pada  tabel sebelah kiri.

Syntaks : SELECT tabel1.field,tabel2.field2 From Tabel1 RIGHT JOIN Tabel2 on tabel1.field=tabel2.field1

Contoh : Tampilkan semua dosen yang menjadi dosen wali dan yang tidak berdasarkan tabel krs.

mysql> select t1.nim,t1.nama,t2.kd_krs,t3.nama_dosen from tbl_mahasiswa t1 inner join tbl_krs t2 right join tbl_dosen t3 on t2.dsn_wali=t3.kd_dosen group by t2.kd_krs;
+--------+---------+--------+-------------+
| nim    | nama    | kd_krs | nama_dosen  |
+--------+---------+--------+-------------+
| NULL   | NULL    | NULL   | Benny G     |
| 070201 | Abdul G | KRS01 | Asrul Sani  |
| 070201 | Abdul G | KRS02 | Asrul Sani  |
| 070201 | Abdul G | KRS03 | Tanoto S    |
| 070201 | Abdul G | KRS04 | Syamsudin N |
| 070201 | Abdul G | KRS05 | Syamsudin N |

+--------+---------+--------+-------------+
6 rows in set (0.00 sec)

Membuat View

View adalah tabel virtual yang dibuatkan sebagai solusi untuk menghindari pengulangan query.

Syntak : CREATE View nama_view AS (query);

Contoh : Buatkan view yang menampung gabungan tabel mahasiswa dan jurusan.

mysql> create view view_mhsjur as select t1.nim,t1.nama,t1.kd_jurusan,t2.nama_ju
rusan from tbl_mahasiswa t1 inner join tbl_jurusan t2 on
t1.kd_jurusan=t2.kd_jurusan;
Query OK, 0 rows affected (0.00 sec)

Menampilkan isi view.

mysql> select * from view_mhsjur;
+--------+-----------+------------+------------------+
| nim    | nama      | kd_jurusan | nama_jurusan    |
+--------+-----------+------------+------------------+
| 070201 | Abdul G  | J001       | Ilmu Komputer    |
| 080201 | Abu Bakar | J001      | Ilmu Komputer    |
| 080203 | Charles S | J001      | Ilmu Komputer    |
| 070202 | Sugimin  | J002       | Sistem Informasi |
| 080202 | Dessy N  | J002       | Sistem Informasi |
+--------+-----------+------------+------------------+
5 rows in set (0.00 sec)

Contoh2 : Membuat view yang menampung gabungan mahasiswa, krs,detail krs,dosen wali, dosen mata kuliah.

mysql> create view view_mhskrs as select t1.nim,t1.nama,t2.kd_krs,t2.semester as krs_semester,t5.semester asmk_semester,t3.nama_dosen as
dosen_wali,t4.kdmk,t4.nilai_angka,t4.nilai_huruf,t5.nama_mk,
t5.sks,t6.nama_dosen from tbl_mahasiswa t1 inner join tbl_krs t2 on t1.nim=t2.nim inner join tbl_dosen t3 on t2.dsn_wali=t3.kd_dosen inner join tbl_krsdetail t4 on t2.kd_krs=t4.kd_krs inner join tbl_matakuliah t5 on t4.kdmk=t5.kdmk inner join tbl_dosen t6 on t4.kd_dosen=t6.kd_dosen;

Query OK, 0 rows affected (0.02 sec)

Melihat hasil view.

mysql> select nim,nama,kdmk,asmk_semester as mk_sem,sks,nilai_huruf from view_mhskrs where nim='080201';
+--------+-----------+--------+--------+-----+-------------+
| nim    | nama      | kdmk   | mk_sem | sks | nilai_huruf |
+--------+-----------+--------+--------+-----+-------------+
| 080201 | Abu Bakar | KOMP00 |     1 |   2 | A           |
| 080201 | Abu Bakar | KOMP02 |     1 |   2 | B+          |
| 080201 | Abu Bakar | KOMP03 |     1 |   2 | B+          |
| 080201 | Abu Bakar | KOMP04 |     1 |   1 | A           |
| 080201 | Abu Bakar | KOMP05 |     1 |   1 | A           |
| 080201 | Abu Bakar | KOMP10 |     3 |   2 | B           |
| 080201 | Abu Bakar | KOMP11 |     3 |   2 | C           |
| 080201 | Abu Bakar | KOMP12 |     3 |   2 | C+          |
+--------+-----------+--------+--------+-----+-------------+
8 rows in set (0.02 sec)

Melihat nilai rata-rata tertinggi dari view_mhskrs

mysql> select nim,nama,avg(nilai_angka) nilai_rata2 from view_mhskrs group by nim;
+--------+-----------+-----------------+
| nim    | nama      | nilai_rata2     |
+--------+-----------+-----------------+
| 070201 | Abdul G  | 81.777777777778 |
| 070202 | Sugimin  |              84 |
| 080201 | Abu Bakar | 84.387499809265 |
| 080202 | Dessy N  | 84.800000508626 |
| 080203 | Charles S |         74.375 |
+--------+-----------+-----------------+
5 rows in set (0.00 sec)


Melihat jumlah sks yang diambil oleh tiap mahasiswa;

mysql> select nim,nama,sum(sks) as total_sks from view_mhskrs group by nim;
+--------+-----------+-----------+
| nim    | nama      | total_sks |
+--------+-----------+-----------+
| 070201 | Abdul G  |        16 |
| 070202 | Sugimin  |        18 |
| 080201 | Abu Bakar |       14 |
| 080202 | Dessy N  |         6 |
| 080203 | Charles S |       14 |
+--------+-----------+-----------+
5 rows in set (0.00 sec)



<a href="http://www.1keydata.com/sql/alter-table-add-column.html">SQL ALTER TABLE ADD COLUMN Syntax</a>