SISTEM BASIS DATA STMIK - AUB SURAKARTA 1
Kunci komposit adalah kunci yang melibatkan lebih dari satu field Contoh tabel Tanggungan: NIP Nama Tgl_Lahir Pada contoh ini, kunci primer merupakan gabungan antara NIP dan Nama
Apa yang terjadi kalau kunci primer hanya berupa NIP?
2
Contoh: CREATE TABLE Tanggungan ( NIP CHAR(5) NOT NULL, Nama VARCHAR(35) NOT NULL, Tgl_lahir DATE NOT NULL, PRIMARY KEY(NIP, Nama));
Dengan cara seperti ini, tidak mungkin ada NIP dan Nama (secara berpasangan) yang kembar Untuk melihat struktur tabel, cobalah berikan perintah DESC Tanggungan 3
Berikan perintah agar bisa menampilkan informasi seperti berikut: NIP
Jumlah Tanggungan
NIP Nama Pegawai Jumlah Tanggungan
4
Contoh: SELECT NIP, Gaji FROM Pekerjaan;
Bandingkan dengan: SELECT NIP, Gaji * 1.1 FROM Pekerjaan;
5
Cobalah: SELECT 'Gaji' , Nip, 'sebesar', Gaji FROM Pekerjaan;
Bandingkan dengan: SELECT Concat('Gaji ' , Nip, ' sebesar'), Gaji FROM Pekerjaan;
6
Contoh: SELECT 1 + 1; SELECT 1 > 2; SELECT 3 > 2;
7
Contoh untuk mengambil tanggal sistem SELECT CurDate();
Contoh untuk mengambil jam sistem SELECT CurTime();
Contoh untuk mengambil tanggal dan jam sistem SELECT Now(); 8
DATE_FORMAT(Tanggal, format) Format: %d (tanggal 1-31) %c (bulan 1-12) %Y (tahun 4 digit) %k (Jam 0-23) %i (Menit 0-59) %s (detik 0-59)
Contoh: SELECT Date_Format(Now(), %d/%c/%Y ); 9
Contoh lain: SELECT Day(Now()); SELECT Month(Now()); SELECT Year(Now()); SELECT Hour(Now()); SELECT Minute(Now()); SELECT Second(Now()); 10
WeekDay(Tanggal) menghasilkan kode hari 0 = Senin 1 = Selasa 2 = Rabu Dst
Contoh: SELECT WeekDay(Now());
11
SELECT Nama, Round(DateDiff(Now(),Tgl_Lahir)/365,0) FROM Pribadi;
12
Siapa saja pegawai yang berusia di atas 35 tahun? mysql> SELECT nama, Round(DateDiff(Now(),Tgl_Lahir)/365,0) FROM Pribadi where round(DateDiff(Now(),Tgl_Lahir)/365,0) >35; Siapa saja yang lahir pada tahun 1971 (dengan menggunakan fungsi waktu)? 13
Bentuk umum: CASE nilai_ekspresi WHEN nilai_ekspresi THEN nilai_ekspresi [ [ WHEN nilai_ekspresi THEN nilai_ekspresi ] ] [ ELSE nilai_ekspresi ] END
Bentuk ini dapat dimanfaatkan untuk mengubah keluaran yang berbeda dengan data asalnya 14
Contoh SELECT NIP, CASE Kota WHEN 'Yogya' THEN 'Jogjakarta' END FROM Pribadi; Contoh hasil: +-------+----------------------------------------------+ | NIP | CASE Kota WHEN 'Yogya' THEN 'Jogjakarta' END | +-------+----------------------------------------------+ | 12345 | Jogjakarta | | 12346 | NULL | | 12347 | NULL | | 12348 | NULL | | 12349 | NULL | | 12350 | Jogjakarta | | 12351 | NULL | | 12352 | NULL | | 12353 | Jogjakarta | | 12354 | Jogjakarta | | 12370 | NULL | +-------+----------------------------------------------+ 11 rows in set (0.00 sec)
15
Cobalah pula SELECT NIP, CASE Kota WHEN 'Yogya' THEN 'Jogjakarta' ELSE Bukan Jogjakarta END FROM Pribadi; Cobalah pula SELECT NIP, CASE Kota WHEN 'Yogya' THEN 'Jogjakarta' ELSE Kota END FROM Pribadi; 16
Bentuk umum: IF (ekspresi1, ekspresi2, ekspresi3) Hasil berupa: ekspresi2 kalau ekspresi1 bernilai True ekspresi3 kalau ekspresi1 bernilai False
17
Contoh: SELECT Nama, Kelamin FROM Pribadi; Bandingkan dengan: SELECT Nama, IF(Kelamin='P','Pria','Wanita') FROM Pribadi; 18
Tambahkan field Agama bertipe CHAR(1) pada Tabel Pribadi. Isikan data: 1 untuk ISLAM 2 untuk KRISTEN 3 untuk KATHOLIK 4 untuk BUDHA 5 untuk HINDU 6 untuk KONGHUTCU
Pastikan semua kode tsb digunakan 19
Tampilkan NIP, Nama, dan nama agamanya dengan memanfaatkan WHEN
20
Buatlah Tabel bernama SKOR Struktur: NIP : CHAR(5) sebagai KUNCI PRIMER Skor: SMALLINT
Isikan data sesuai dengan NIP pada Pribadi. Pastikan ada nilai-nilai seperti berikut: 90, 85, 80, 75, 63, 53, 86, 70, dan 95 21
Tampilkan informasi NIP, Nama, dan Kondisi Kondisi ditentukan oleh tabel berikut: Nilai > 90 : Prima 80 < Nilai < 90 : Bagus 70 < Nilai < 80 : Cukup 60 < Nilai < 70 : Biasa Nilai < 60 : Kurang
22
Subquery (kadangkala juga disebut subselect) merupakan bentuk query yang terletak dalam query yang lain. Contoh: SELECT NIP, Gaji FROM Pekerjaan WHERE gaji = ( SELECT MAX(gaji) FROM Pekerjaan);
23
Contoh: SELECT Nama FROM Pribadi WHERE Nip IN (SELECT DISTINCT Nip FROM Tanggungan);
Apa maknanya? Bandingkan dengan: SELECT Nama FROM Pribadi WHERE Nip NOT IN (SELECT DISTINCT Nip FROM Tanggungan); 24
Contoh: SELECT nip, kode_bag, CASE WHEN kode_bag = (SELECT kode_bag FROM bagian WHERE nama_bag = 'Produksi') THEN 'Produksi' ELSE 'Non-Produksi' END AS 'produksi?' FROM pekerjaan; 25
Contoh: SELECT nip, (SELECT nama_bag FROM bagian WHERE kode_bag = pekerjaan.kode_bag) AS 'nama bagian' FROM pekerjaan;
26
Contoh: SELECT nip, nama FROM infoprib ORDER BY (SELECT kode_bag FROM pekerjaan WHERE nip = infoprib.nip);
27
Tampilkan semua NIP yang ada pada Pribadi tetapi tidak ada pada tabel Pekerjaan Siapa saja yang gajinya paling rendah dan berapa gajinya? Siapa saja yang gajinya di atas ratarata? 28
Perhatikan empat tabel berikut. Pada BUKU2, Kode_Rinci menyatakan kode untuk masing-masing buku dengan judul yang sama, yang dalam kenyataan akan dinyatakan dengan identitas seperti C-1 yang berarti buku pertama, C-2 buku kedua dan seterusnya. Perlu juga diketahui, satu buku bisa ditulis oleh lebih dari seorang pengarang. 29
30
1.
2.
3.
Bagaimana perintah SQL-nya? Menampilkan isi tabel PENERBIT khusus untuk kode penerbit dan nama penerbit Menampilkan isi semua field milik tabel BUKU1 Menampilkan nama penerbit yang terletak di Solo 31
1.
2.
3.
4.
Menampilkan daftar judul buku beserta nama pengarangnya Menampilkan daftar nama penerbit yang tidak terletak di Solo Menampilkan judul buku yang diterbitkan Gramedia Menampilkan judul buku yang masuk ke perpustakaan setelah tahun 1997. Jika ada buku yang namanya sama ditampilkan satu kali saja.
32
1.
2.
3.
4.
5.
Menampilkan judul buku, nama pengarang, dan nama penerbit yang jumlah bukunya lebih dari satu. Menampilkan judul buku edisi pertama yang diterbitkan oleh Gramedia. Menampilkan nama penerbit yang bukunya tidak tercatat pada tabel BUKU1 Sebutkan lokasi penerbit yang penerbitnya lebih dari satu Sebutkan judul buku yang ditulis hanya oleh satu pengarang 33
1. 2.
3.
Sebutkan buku-buku manajemen Sebutkan buku dan penerbitnya yang ditulis oleh pengarang yang berawalan D Judul buku beserta jumlahnya yang ditulis oleh Dian Puspa
34