Bab 3 SQL Server
Bab 3 SQL Server
17
18
3. Left Outer Join Outer Join kiri menghasilkan semua baris dari table di sebelah kiri pernyataan, dan baris-baris bersesuaian dari table sebelah kanan pernyataan. 4. Right Outer Join Ouer Join kanan menghasilkan semua baris dari table di sebelah kanan pernyataan, dan baris-baris yang bersesuaian dari table di sebelah kiri pernyataan. 5. UNION Union dipergunakan untuk menggabungkan dua buah operasi query ke dalam satu buah cursor. 3.4.3 INSERT Perintah INSERT dipergunakan untuk memasukkan data ke dalam tabel. Dengan syntax sebagai berikut :
INSERT [ INTO] { table_name WITH ( < table_hint_limited > [ ...n ] ) | view_name | rowset_function_limited } { [ ( column_list ) ] { VALUES ( { DEFAULT | NULL | expression } [ ,...n] ) | derived_table | execute_statement }
3.4.4 UPDATE Perintah UPDATE dipergunakan untuk memperbaharui data yang ada di table. Dengan syntax sebagai berikut :
Syntax UPDATE { table_name WITH ( < table_hint_limited > [ ...n ] ) | view_name | rowset_function_limited } SET { column_name = { expression | DEFAULT | NULL } | @variable = expression | @variable = column = expression } [ ,...n ]
19
{ { [ FROM { < table_source > } [ ,...n ] ] [ WHERE < search_condition > ] } | [ WHERE CURRENT OF { { [ GLOBAL ] cursor_name } | cursor_variable_name } ] } [ OPTION ( < query_hint > [ ,...n ] ) ]
3.4.5 DELETE Perintah DELETE dipergunakan untuk menghapus data yang ada di table. Syntaxnya adalah sebagai berikut :
Syntax DELETE [ FROM ] { table_name WITH ( < table_hint_limited > [ ...n ] ) | view_name | rowset_function_limited } [ FROM { < table_source > } [ ,...n ] ] [ WHERE { < search_condition > | { [ CURRENT OF { { [ GLOBAL ] cursor_name } | cursor_variable_name } ] } } ] [ OPTION ( < query_hint > [ ,...n ] ) ]
20
3.5 Latihan Pernyataan pada DML dari bahasa SQL juga dikenal dengan istilah query, terdapat dua jenis query yaitu selection query dan action query. Selection query mengambil informasi dari database dan tidak memodifikasinya. Semua selection query diawali dengan pernyataan SELECT. Action Query memodifikasi data pada tabel-tabel database dan diawali dengan pernyataan INSERT, UPDATE atau DELETE. Pernyataan SELECT mempunyai syntax sebagai berikut : SELECT select_list [ INTO new_table ] FROM table_source [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ] [ ORDER BY order_expression [ ASC | DESC ] ]
Untuk mencoba SQL statement di bawah ini jalankan dulu bagian program/utility dari SQL Server Query Analyzer dan aktifkan database DBAkademik anda.
3.5.1
Menjalankan Query Analyzer 1. Start Program Microsof SQL Server Service Manager. 2. Jalankan SQL Query Analyzer, Start Program Microsof SQL Server Query Analyzer. Tentukan alamat server dan User serta password untuk login, kemudian tekan tombol OK. Seperti tampilan di bawah ini :
21
Gambar 3.2 Window SQL Query Analizer 3.5.2 Bekerja dengan SQL di Query Analyzer Untuk menjalankan Query Analyzer dengan menekan tanda seru (!) atau menekan tombol F5. 1. Ketikkan perintah-perintah berikut :
SELECT * FROM rMahasiswa
Akan menampilkan data NPM dan Nama dari table mahasiswa. Klausa SELECT biasanya diikuti oleh klausa sebagai berikut : Klausa Penjelasan AVG sama dengan COUNT menghitung jumlah record MAX mengetahui nilai maximal MIN mengetahui nilai minimum SUM menghitung jumlah data DISTINCT mengambil hanya satu data dari record kembar TOP mengambil baris teratas AS mengganti caption dari field Contoh : - Menampilkan jumlah mahasiswa di table mahasiswa.
SELECT COUNT(*) AS jumlahMHS FROM rMahasiswa -
22
2. Menggungakan klausa WHERE Klausa WHERE biasanya diikuti oleh operator sebagai berikut : Operator Penjelasan = sama dengan <>, != tidak sama dengan < kurang dari > lebih besar dari <= kurang dari atau sama dengan >= lebih besar dari atau sama dengan !> tidak lebih besar dari !< tidak kurang dari BETWEEN antara dua nilai yang ditentukan LIKE menyusaikan nilai yang ditentukan IS NULL Nilainya adalah NULL IN nilainya ditentukan dalam sebuah daftar NOT negasi dari sebuah oprator perbandingan AND merangkai criteria pencarian OR memastikan bahwa criteria pencarian adalah ekslusif Contoh : - Menampilkan data mahasiswa yang NPM nya 03030065
SELECT * FROM rMahasiswa WHERE NPM=03030065 -
Menampilkan data dosen yang NIK nya antara 080505051 sampai 080505054
SELECT * FROM rDosen WHERE NIK BETWEEN '080505051' AND '080505054'
Menampilkan data dosen yang gelarnya S. Kom dan berjenis kelamin laki-laki
SELECT * FROM rDosen WHERE Nama LIKE '%S. Kom%' AND sex='L'
23
3.5.3
JOIN 1. INNER JOIN - Menampilkan data Jurusan yang ada di seluruh fakultas
SELECT rFakultas.Fakultas, rJurusan.Jurusan FROM rFakultas,rJurusan WHERE rFakultas.IDFakultas=rJurusan.IDFakultas AND rFakultas.Fakultas=STMIK
Catatan Penting : Perhatikan kunci relasi antar table, karena dua table akan bisa direlasikan jika mempunyai kunci yang sama, dan kunci table mana yang dipilih sebagai penentuan kondisi nilainya.
2. LEFT JOIN - Menampilkan data dosen dan mata kuliah yang diampu
SELECT rDosen.NIK, rDosen.Nama, tAmpu.IDMK FROM rDosen LEFT JOIN tAmpu ON rDosen.NIK=tAmpu.NIK -
24
Akan terlihat bahwa data dari table sebebelah kanan akan diisi dengan NULL karena mahasiswa yang bersangkutan belum KRS, sementara data dari table sebelah kiri akan ditampilkan seluruhnya.
Gambar 3.3 Hasil Perintah Left Join 3. RIGHT JOIN - Menampilkan data mata kuliah yang didistribusikan untuk diampu oleh dosen.
SELECT tKRS.thAkademik, tKRS.smtAkademik, rMatakuliah.IDMK, rMatakuliah.NamaMK FROM tKRS RIGHT JOIN rMatakuliah ON tKRS.IDMK=rMataKuliah.IDMK
Akan terlihat bahwa data dari table sebebelah kiri akan diisi dengan NULL karena mata kuliah yang bersangkutan belum didistribusikan, sementara seluruh data dari table sebelah kanan (rMataKuliah) akan ditampilkan seluruhnya.
25
4. FULL JOIN - Menampilkan seluruh data mata kuliah baik yang telah didistribusikan atau belum.
SELECT tKRS.thAkademik, tKRS.smtAkademik, rMatakuliah.IDMK, rMatakuliah.NamaMK FROM tKRS FULL JOIN rMatakuliah ON tKRS.IDMK=rMataKuliah.IDMK
3.5.4
UNION - Menampilkan seluruh data mahasiswa yang telah KRS atau belum.
SELECT rMahasiswa.NPM, rMahasiswa.Nama FROM rMahasiswa INNER JOIN tKRS ON rMahasiswa.NPM=tKRS.NPM UNION SELECT rMahasiswa.NPM, rMahasiswa.Nama FROM rMahasiswa FULL JOIN tKRS ON rMahasiswa.NPM=tKRS.NPM ORDER BY rMahasiswa.NPM
3.5.5
SUB QUERY - Menampilkan data seluruh mahasiswa yang ada di Jurusan Manajemen Informatika.
SELECT rMahasiswa.* FROM rMahasiswa WHERE rMahasiswa.IDJurusan IN (SELECT IDJurusan FROM rJurusan WHERE Jurusan='Manajemen Informatika')
3.6 Tugas 1. Tampilkan jumlah jurusan yang ada di fakultas STMIK dengan INNER JOIN. 2. Tampilkan jumlah jurusan yang ada di fakultas STMIK dengan SUB QUERY. 3. Tampilkan jumlah jurusan yang ada di fakultas STIE dengan INNER JOIN. 4. Tampilkan jumlah jurusan yang ada du fakultas STIE dengan SUB QUERY. 5. Tampilkan seluruh mahasiswa yang ada di Fakultas SMIK dengan INNER JOIN. 6. Tampilkan seluruh mahasiswa yang ada di Fakultas SMIK dengan SUB QUERY. 7. Tampilkan seluruh data mahasiswa yang ada di Fakultas STIE dengan INNER JOIN.
26
8. Tampilkan seluruh data mahasiswa yang ada di Fakultas STIE dengan SUB QUERY. 9. Tampilkan seluruh data nama mata kuliah, NIK dosen, nama dosen yang yang mengampu mata kuliah dengan LEFT JOIN. 10. Tampilkan seluruh data nama mata kuliah, NIK dosen, nama dosen yang yang mengampu mata kuliah dengan RIGHT JOIN. 11. Tampilkan seluruh data nama mata kuliah, NIK dosen, nama dosen yang yang mengampu mata kuliah dengan FULL JOIN. 12. Tampilkan seluruh data mahasiswa yang sudah KRS.