DATA MANIPULATION
LANGUAGE
PRAKTIKUM
BERKAS DAN BASIS DATA 2010/2011
Rizki Arif Firdaus
Memasukkan Data
Kasus
Memasukkan data untuk tabel fakultas:
kode_fakultas nama
PA Matematika dan Ilmu Pengetahuan Alam
INSERT
INSERT INTO fakultas VALUES('PA',
'Matematika dan Ilmu Pengetahuan Alam'); atau:
INSERT INTO fakultas(nama, kode_fakultas) VALUES('Teknik', 'TK');
atau:
INSERT INTO fakultas SET nama = 'Teknik', kode_fakultas = 'TK';
Rizki Arif Firdaus
Latihan
Masukkan data berikut ke tabel jurusan dan program_studi:
kode_jurusan nama kode_fakultas
MAT Matematika PA
IKE Ilmu Komputer dan Elektronika PA
TET
Teknik Elektro dan Teknologi
Informasi TK
kode_prodi nama kode_jurusan
IKP Ilmu Komputer MAT
Latihan
Rizki Arif Firdaus
http://haniki.wordpress.com/praktikum/
nif nama tempat_lahir tanggal_lahir jns_kelamin angkatan kode_prodi
1 Andi Sleman 01-01-1991 Pria 2009 IKP 2 Budi Bantul 02-02-1992 Pria 2010 IKP 3 Cici Wates 03-03-1991 Wanita 2009 MAT 4 Dian Wonosari 04-04-1992 Pria 2010 STA 1 Eni Yogyakarta 05-05-1991 Wanita 2009 TEK 2 Fadil Magelang 06-06-1992 Pria 2010 TEI 3 Gozi Solo 07-07-1992 Pria 2010 TEI
Latihan
kode_mk nama sifat sks kode_prodi semester
MMS1101 Kalkulus W 3 MAT GANJIL-GENAP MMS2401 Metode Statistik W 2 STA GANJIL-GENAP MMS2602 Basis Data W 3 IKP GENAP
MMS1801 Alpro W 3 IKP GANJIL MMS3701 Bioinformatika P 2 IKP GENAP TKE1105 Teknik Digital W 3 TEK GANJIL TKE3351 Sistem Operasi P 3 TEI GENAP
UPDATE
UPDATE nama_tabel SET nama_kolom = nilai_kolom [WHERE kondisi]
Rizki Arif Firdaus
Contoh
Prodi Ilmu Komputer sekarang berada dalam jurusan Ilmu Komputer dan Elektronika,
update-lah basis datanya!
Bedakanlah kode prodi Matematika dengan kode jurusan Matematika dengan mengganti kode jurusan Matematika menjadi MTK!
Contoh
UPDATE program_studi SET
kode_jurusan='IKE' WHERE kode_prodi='IKP'; UPDATE jurusan SET kode_jurusan='MTK'
WHERE nama= 'Matematika‘;
Rizki Arif Firdaus
Ingat!!!
Jika klausa WHERE tidak diberikan, maka
seluruh baris pada tabel akan ter-update.
DELETE
DELETE FROM nama_tabel [WHERE kondisi] Cobalah hapus record mahasiswa dengan
nama 'Gozi' dari tabel mahasiswa. DELETE FROM mahasiswa WHERE
nama='Gozi';
Rizki Arif Firdaus
Ingat!!!
Jika klausa WHERE tidak diberikan, maka seluruh baris pada tabel akan terhapus.
TRUNCATE
TRUNCATE TABLE nama_tabel
Digunakan untuk mengosongkan isi tabel. Kolom AUTO_INCREMENT akan di-reset.
Rizki Arif Firdaus
SELECT
SELECT nama_kolom1, nama_kolom2, ...
FROM nama_tabel [WHERE kondisi] [ORDER BY nama_kolom, ...]
Contoh 1
Tampilkan data niu, nama, dan angkatan di tabel mahasiswa!
Tampilkan data mahasiswa untuk semua kolom!
Rizki Arif Firdaus
Contoh 1
Tampilkan data niu, nama, dan angkatan di tabel mahasiswa!
SELECT niu, nama, angkatan FROM mahasiswa;
Tampilkan data mahasiswa untuk semua kolom!
Contoh 2
Tampilkan data niu, nama, dan angkatan untuk mahasiswa angkatan 2009 di tabel mahasiswa!
Rizki Arif Firdaus
Contoh 2
Tampilkan data niu, nama, dan angkatan untuk mahasiswa angkatan 2009 di tabel mahasiswa!
SELECT niu, nama, angkatan FROM mahasiswa WHERE angkatan='2009';
Contoh 3
Tampilkan data niu, nama, dan tahun lahir
mahasiswa yang angkatannya 2009 dari tabel mahasiswa!
Rizki Arif Firdaus
Contoh 3
Tampilkan data niu, nama, dan tahun lahir
mahasiswa yang angkatannya 2009 dari tabel mahasiswa!
SELECT niu, nama, YEAR(tanggal_lahir)
Latihan
Tampilkan niu, nama, dan umur dari mahasiswa yang angkatannya 2009!
Rizki Arif Firdaus
Latihan
Tampilkan niu, nama, dan umur dari mahasiswa yang angkatannya 2009!
SELECT niu, nama, YEAR(NOW())
-YEAR(tanggal_lahir) FROM mahasiswa WHERE angkatan='2009';
SELECT niu, nama, DATEDIFF(CURDATE(), tanggal_lahir) DIV 365 FROM mahasiswa
Alias untuk Kolom dengan AS
SELECT niu, nama, YEAR(NOW()) -YEAR(tanggal_lahir) AS umur FROM mahasiswa WHERE angkatan='2009';
SELECT niu, nama, DATEDIFF(CURDATE(), tanggal_lahir) DIV 365 AS umur FROM
mahasiswa WHERE angkatan='2009';
Rizki Arif Firdaus
Contoh 4
Tampilkan data niu, nama, dan kode_prodi dari tabel mahasiswa diurutkan berdasarkan namanya!
Contoh 4
Tampilkan data niu, nama, dan kode_prodi dari tabel mahasiswa diurutkan berdasarkan namanya!
ASCENDING
SELECT niu, nama, kode_prodi FROM mahasiswa ORDER BY nama;
DESCENDING
SELECT niu, nama, kode_prodi FROM mahasiswa ORDER BY nama DESC;
Rizki Arif Firdaus
Latihan
Tampilkan data niu, nama, dan kode_prodi mahasiswa angkatan 2009 dari tabel
mahasiswa diurutkan berdasarkan kode_prodi!
Latihan
Tampilkan data niu, nama, dan kode_prodi mahasiswa angkatan 2009 dari tabel
mahasiswa diurutkan berdasarkan kode_prodi!
SELECT niu, nama, kode_prodi FROM
mahasiswa WHERE angkatan='2009' ORDER BY kode_prodi ASC;
Rizki Arif Firdaus
Contoh 5
Tampilkan 3 mahasiswa tertua dari tabel mahasiswa!
Tampilkan niu dan nama dari mahasiswa tertua ketiga dan keempat dari tabel
Contoh 5
Tampilkan 3 mahasiswa tertua dari tabel mahasiswa!
SELECT niu, nama, tanggal_lahir FROM
mahasiswa ORDER BY tanggal_lahir LIMIT 3; Tampilkan niu dan nama dari mahasiswa
tertua ketiga dan keempat dari tabel mahasiswa!
SELECT niu, nama FROM mahasiswa ORDER BY tanggal_lahir LIMIT 2, 2;
Rizki Arif Firdaus
Latihan
Tampilkan niu dan nama mahasiswa yang tanggal lahirnya di atas 3 Maret 1991 dan kode prodinya IKP atau TEI diurutkan
berdasarkan kode prodinya (ASCENDING) lalu berdasarkan namanya (DESCENDING)
Latihan
Tampilkan niu dan nama mahasiswa yang tanggal lahirnya di atas 3 Maret 1991 dan kode prodinya IKP atau TEI diurutkan
berdasarkan kode prodinya (ASCENDING) lalu berdasarkan namanya (DESCENDING)
SELECT niu, nama FROM mahasiswa WHERE tanggal_lahir > 1991-03-03 AND
kode_prodi='IKP' OR kode_prodi='TEI' ORDER BY kode_prodi ASC, nama DESC;
Rizki Arif Firdaus
Latihan
Tampilkan niu dan nama mahasiswa yang namanya diakhiri dengan 'di'
Latihan
Tampilkan niu dan nama mahasiswa yang namanya diakhiri dengan 'di'
SELECT niu, nama FROM mahasiswa WHERE nama LIKE '%di';
Rizki Arif Firdaus
DISTINCT
SELECT DISTINCT nama_kolom FROM
nama_tabel [WHERE kondisi] [ORDER BY ...] [LIMIT [offset, ] number]
Digunakan untuk menghilangkan duplikasi baris dengan nilai yang sama pada kolom ‘nama_kolom’.
Contoh
Tampilkan daftar angkatan mahasiswa yang terdapat di tabel mahasiswa.
Rizki Arif Firdaus
Contoh
Tampilkan daftar angkatan mahasiswa yang terdapat di tabel mahasiswa.
SELECT DISTINCT angkatan FROM mahasiswa;
GROUP BY
SELECT nama_kolom1, nama kolom2, ... FROM nama_tabel [WHERE kondisi] [GROUP BY
nama_kolom_a [, nama_kolom_b] [HAVING kondisi]] [ORDER BY ...] [LIMIT [offset, ]
number]
Mengelompokkan baris hasil query berdasarkan kolom tertentu
Berbeda dengan DISTINCT, klausa SELECT pada GROUP BY bisa menggunakan AGGREGATE
FUNCTION Rizki Arif Firdaus
Contoh
Contoh:
SELECT angkatan FROM mahasiswa GROUP BY angkatan;
HAVING digunakan untuk memfilter baris
setelah dilakukan GROUPING
Untuk memfilter baris sebelum dilakukan GROUPING gunakan WHERE
AGGREGATE FUNCTION
COUNT: mencacah SUM: menjumlah
AVG: menghitung rata-rata
MAX: mencari nilai maksimum MIN: mencari nilai minimum dsb. (STDEV, VARIANCE, ...)
Rizki Arif Firdaus
Contoh 1
Tampilkan jumlah mahasiswa yang ada di tabel mahasiswa!
Contoh 1
Tampilkan jumlah mahasiswa yang ada di tabel mahasiswa!
SELECT COUNT(*) FROM mahasiswa;
Rizki Arif Firdaus
Contoh 2
Contoh 2
Tampilkan jumlah mahasiswa per angkatan! SELECT angkatan, COUNT(*) FROM
mahasiswa GROUP BY angkatan;
Rizki Arif Firdaus
Contoh 3
Tampilkan jumlah mahasiswa per angkatan di mana yang jumlah mahasiswanya lebih dari 3!
Contoh 3
Tampilkan jumlah mahasiswa per angkatan di mana yang jumlah mahasiswanya lebih dari 3!
SELECT angkatan, COUNT(*) FROM
mahasiswa GROUP BY angkatan HAVING COUNT(*) > 3;
Rizki Arif Firdaus
Latihan
Tampilkan mata kuliah yang disediakan oleh prodi Ilmu Komputer pada semester genap!
Tampilkan mata kuliah wajib yang disediakan oleh
prodi Ilmu Komputer pada semester genap diurutkan sesuai abjad berdasarkan namanya!
Tampilkan jumlah sks mata kuliah yang disediakan oleh prodi Ilmu Komputer!
Latihan
Tampilkan kode mata kuliah yang diambil oleh mahasiswa dengan niu 2!
Dapatkan jumlah mata kuliah yang sudah diambil mahasiswa dengan niu 1!
Dapatkan jumlah mata kuliah yang diambil
mahasiswa dengan niu 1 pada semester genap tahun ajaran 2010/2011!
Tampilkan niu dan jumlah mata kuliah yang diambil oleh tiap-tiap mahasiswa pada semester genap
tahun ajaran 2010/2011!
Rizki Arif Firdaus
Latihan
Dapatkan jumlah sks yang sudah diambil mahasiswa dengan niu 1!
Dapatkan jumlah sks yang diambil mahasiswa dengan niu 1 pada semester genap tahun ajaran 2010/2011! Tampilkan niu dan jumlah sks yang diambil oleh
tiap-tiap mahasiswa pada semester genap tahun ajaran 2010/2011!