34
1 SISTEM BASIS DATA STMIK - AUB SURAKARTA

SISTEM BASIS DATA STMIK -AUB SURAKARTA · 4 Berikan perintah agar bisa menampilkan informasi seperti berikut: NIP Jumlah Tanggungan NIP NamaPegawaiJumlah Tanggungan

Embed Size (px)

Citation preview

1

SISTEM BASIS DATA

STMIK - AUB SURAKARTA

2

Kunci komposit adalah kunci yang melibatkan lebih dari satu fieldContoh tabel Tanggungan:

NIPNamaTgl_Lahir

Pada contoh ini, kunci primer merupakan gabungan antara NIP dan Nama

Apa yang terjadi kalau kunci primer hanya berupa NIP?

3

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 kembarUntuk melihat struktur tabel, cobalah berikan perintah DESC Tanggungan

4

Berikan perintah agar bisa menampilkan informasi seperti berikut:

NIP Jumlah Tanggungan

NIP Nama Pegawai JumlahTanggungan

5

Contoh:SELECT NIP, Gaji FROM Pekerjaan;

Bandingkan dengan:SELECT NIP, Gaji * 1.1 FROM Pekerjaan;

6

Cobalah:SELECT 'Gaji' , Nip, 'sebesar', Gaji FROM

Pekerjaan;

Bandingkan dengan:SELECT Concat('Gaji ' , Nip, ' sebesar'), Gaji FROM Pekerjaan;

7

Contoh:SELECT 1 + 1;

SELECT 1 > 2;

SELECT 3 > 2;

8

Contoh untuk mengambil tanggal sistemSELECT CurDate();

Contoh untuk mengambil jam sistemSELECT CurTime();

Contoh untuk mengambil tanggal dan jam sistemSELECT Now();

9

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 );

10

Contoh lain:SELECT Day(Now());SELECT Month(Now());SELECT Year(Now());

SELECT Hour(Now());SELECT Minute(Now());SELECT Second(Now());

11

WeekDay(Tanggal) menghasilkan kode hari

0 = Senin1 = Selasa2 = RabuDst

Contoh:SELECT WeekDay(Now());

12

SELECT Nama, Round(DateDiff(Now(),Tgl_Lahir)/365,0) FROM Pribadi;

13

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)?

14

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

15

ContohSELECT 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)

16

Cobalah pulaSELECT NIP, CASE Kota WHEN 'Yogya'

THEN 'Jogjakarta' ELSE Bukan Jogjakarta END FROM Pribadi;

Cobalah pulaSELECT NIP, CASE Kota WHEN 'Yogya'

THEN 'Jogjakarta' ELSE Kota END FROM Pribadi;

17

Bentuk umum:IF (ekspresi1, ekspresi2, ekspresi3)Hasil berupa:

ekspresi2 kalau ekspresi1 bernilai Trueekspresi3 kalau ekspresi1 bernilai False

18

Contoh:

SELECT Nama, Kelamin FROM Pribadi;

Bandingkan dengan:

SELECT Nama, IF(Kelamin='P','Pria','Wanita') FROM Pribadi;

19

Tambahkan field Agama bertipe CHAR(1) pada Tabel Pribadi.Isikan data:

1 untuk ISLAM2 untuk KRISTEN3 untuk KATHOLIK4 untuk BUDHA5 untuk HINDU6 untuk KONGHUTCU

Pastikan semua kode tsb digunakan

20

Tampilkan NIP, Nama, dan nama agamanya dengan memanfaatkan WHEN

21

Buatlah Tabel bernama SKORStruktur:

NIP : CHAR(5) sebagai KUNCI PRIMERSkor: SMALLINT

Isikan data sesuai dengan NIP pada Pribadi. Pastikan ada nilai-nilai seperti berikut:

90, 85, 80, 75, 63, 53, 86, 70, dan 95

22

Tampilkan informasi NIP, Nama, dan KondisiKondisi ditentukan oleh tabel berikut:

Nilai > 90 : Prima80 < Nilai < 90 : Bagus70 < Nilai < 80 : Cukup60 < Nilai < 70 : BiasaNilai < 60 : Kurang

23

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);

24

Contoh:SELECT Nama FROM PribadiWHERE Nip IN (SELECT DISTINCT Nip

FROM Tanggungan);

Apa maknanya?Bandingkan dengan:SELECT Nama FROM PribadiWHERE Nip NOT IN (SELECT DISTINCT

Nip FROM Tanggungan);

25

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;

26

Contoh:SELECT nip, (SELECT nama_bag

FROM bagianWHERE kode_bag =

pekerjaan.kode_bag)AS 'nama bagian'

FROM pekerjaan;

27

Contoh:SELECT nip, nama FROM infopribORDER BY (SELECT kode_bag

FROM pekerjaanWHERE nip = infoprib.nip);

28

Tampilkan semua NIP yang ada pada Pribadi tetapi tidak ada pada tabel PekerjaanSiapa saja yang gajinya paling rendah dan berapa gajinya?Siapa saja yang gajinya di atas rata-rata?

29

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.

30

31

Bagaimana perintah SQL-nya? 1. Menampilkan isi tabel PENERBIT

khusus untuk kode penerbit dan nama penerbit

2. Menampilkan isi semua field milik tabel BUKU1

3. Menampilkan nama penerbit yang terletak di Solo

32

1. Menampilkan daftar judul buku beserta nama pengarangnya

2. Menampilkan daftar nama penerbit yang tidak terletak di Solo

3. Menampilkan judul buku yang diterbitkan Gramedia

4. Menampilkan judul buku yang masuk ke perpustakaan setelah tahun 1997. Jika ada buku yang namanya sama ditampilkan satu kali saja.

33

1. Menampilkan judul buku, nama pengarang, dan nama penerbit yang jumlah bukunya lebih dari satu.

2. Menampilkan judul buku edisi pertama yang diterbitkan oleh Gramedia.

3. Menampilkan nama penerbit yang bukunya tidak tercatat pada tabel BUKU1

4. Sebutkan lokasi penerbit yang penerbitnya lebih dari satu

5. Sebutkan judul buku yang ditulis hanya oleh satu pengarang

34

1. Sebutkan buku-buku manajemen2. Sebutkan buku dan penerbitnya yang

ditulis oleh pengarang yang berawalan D

3. Judul buku beserta jumlahnya yang ditulis oleh Dian Puspa