CONTOH 1

Gratis

0
8
5
2 years ago
Preview
Full text
KISI KISI Basis Data Untuk Dipelajari STMIK BANDUNG Buatlah Perintah Query SQL untuk soal soal dibawah ini !!!! 1. Buatlah Database dengan nama Kepegawaian. CREATE DATABASE Kepegawaian 2. Buatlah tabel pada database kepegawaian - Nama tabel : tbDepartemen Nama Field NO_DEPT NM_DEPT Type INT VARCHAR Size Key PK 20 USE Kepegawaian CREATE TABLE tbDepartemen ( NO_Dept INT, NM_Dept VARCHAR(20), CONSTRAINT PK_tbDepartemen PRIMARY KEY CLUSTERED (NO_Dept)) Penjelasan : - Perintah USE pada USE Kepegawaian, untuk memastikan bahwa tabel yang akan dibuat berada pada database “Kepegawaian”. - Untuk tipe data number (tinyint, int, float, decimal, currency dll) atau datetime tidak perlu ditambahkan kurung buka kurung tutup. NO_Dept INT(), seperti ini adalah salah. Yang benar adalah seperti di diatas. - Pembuatan primary key adalah seperti contoh di atas. - Pembuatan Primary key diatas tidak identity, sehingga NO_Dept sebagai Primary Key tetap datanya harus diisi secara manual. 3. Isikan data data berikut pada tabel tbDepartemen NO_DEPT 10 20 30 40 50 60 NM_DEPT Administration Engineering Business Education & Consultance HRD & GA Inormation System INSERT INTO dbo.tbDepartemen( NO_Dept, NM_Dept ) VALUES (10, 'Administration') INSERT INTO dbo.tbDepartemen( NO_Dept, NM_Dept ) VALUES (20, 'Engineering') dst. Penjelasan : - Untuk menginput data seperti perintah di atas, maka lakukan insert satu persatu, tidak boleh di gabungkan dalam 1 perintah insert. - Untuk mengisi data yang bertipe data number tidak boleh memakai tanda kutip (‘’). 4. Buat tabel baru pada database Kepegawaian - Nama Tabel : tbKaryawan Nama Field NO_KAR NM_KAR TGL_MSK JABATAN KOMISI GAJI NO_MANAJER NO_DEPT_KAR Type INT VARCHAR DATE VARCHAR INT Float INT INT Size Key PK 25 30 CREATE TABLE dbo.tbKaryawan( NO_KAR int IDENTITY(1,1) NOT NULL, NM_KAR varchar(20) NOT NULL, TGL_MSK date NULL, JABATAN varchar(30) NULL, KOMISI int NULL, GAJI float NULL, NO_MANAJER int NULL, NO_DEPT_KAR int NULL, CONSTRAINT PK_tbKaryawan PRIMARY KEY CLUSTERED (NO_KAR ASC) Penjelasan : - Perhatikan perbedaan-nya dengan cara pembuatan di table TbDepartemen, yang ini saya buat [NO_Kar] identity, sehingga ini akan otomatis diisi oleh system bila kita ingin menginputkan data. - NOT NULL itu artinya data tidak boleh kosong, bila NULL maka data diperbolehkan kosong . 5. Isikan data data data berikut pada tbKaryawan NO_ KAR 1 2 3 4 5 6 NM_KAR TGL_MSK JABATAN KOMISI GAJI Hari Sakinah Yana S Jodi Sekar Aminah 1990-08-15 1990-08-20 1990-09-18 1990-11-17 1991-2-28 1992-05-18 Direktur Wa. Direktur Engineering Mg HRD ang GA Mg Education Mg Business Mg 10 10 10 5000 4500 2500 2500 2500 2500 10 10 NO_ MANAJER 1 2 2 2 2 NO_DEPT _KAR 10 10 20 30 40 50 INSERT INTO dbo.tbKaryawan( NM_KAR , TGL_MSK , JABATAN , KOMISI , VALUES GAJI , NO_MANAJER , NO_DEPT_KAR) ('Hari','1990-08-15','Direktur', 10,5000,NULL,10) INSERT INTO dbo.tbKaryawan(NM_KAR , TGL_MSK , JABATAN , KOMISI , GAJI , NO_MANAJER , NO_DEPT_KAR) VALUES ( 'Hari','1990-08-15','Direktur', 10,5000,NULL,10) Dst. 6. Penjelasan : - Karena NO_Kar dibuat identity (diisi otomatis oleh system pada SQL Server secara incement), maka ketika melakukan insert, kita tidak lagi memanggil [NO_Kar], dan mengisikan datanya. Karena akan diisi oleh system secara otomatis. Tampilkan data dari tabel tbDepartemen, yang mempunyai NO_DEPT = 10,30,50 Ada 2 cara : SELECT * FROM dbo.tbDepartemen WHERE NO_Dept IN (10,30,20) SELECT * FROM dbo.tbDepartemen WHERE NO_Dept = 10 OR NO_Dept = 30 OR NO_Dept = 20 Penjelasan : - Bila penyeleksiannya mau digabungkan dengan koma (,), maka lakukan dengan perintah IN. - 7. Bila memakai operator = (samadengan), maka lakukan dengan perintah OR. (pelajari tentang operator) Tampilkan Karyawan (tbKaryawan) yang berasal dari departemen Administration (NO_DEPT_KAR = 10) SELECT * FROM dbo.tbKaryawan WHERE NO_DEPT_KAR = 10 8. Tampilkan Karyawan (tbKaryawan) yang memiliki Komisi saja, lalu urutkan datanya secara dari gaji yang terkecil ke yang terbesar. SELECT * FROM dbo.tbKaryawan WHERE KOMISI IS NOT NULL ORDER BY GAJI ASC 9. Tampilkan Karyawan (tbKaryawan) yang jabatannya manager (Jabatannya mengandung string Mg) Perhatikan perintah soalnya !!! (Jabatannya mengandung string Mg) SELECT * FROM dbo.tbKaryawan WHERE JABATAN LIKE '%Mg%' Penjelasan : - Bila JABATAN LIKE '%Mg%' maka berarti mengandung string Mg. - Bila JABATAN LIKE 'Mg%' maka berarti diawali oleh string Mg. - Bila JABATAN LIKE '%Mg' maka berari diakhiri oleh string Mg. - Penulisannya bisa juga seperti ini JABATAN LIKE '%'+’Mg’+'%'. 10. Tampilkan karyawan (tbKaryawan) yang tidak punya atasan. Yang dimaksud atasan disini diambil dari field [NO_MANAJER], jadi tampilkan Karywan yang tidak punya manajer / atasan. SELECT * FROM dbo.tbKaryawan WHERE NO_MANAJER IS NULL 11. Tampilkan karyawan (tbKaryawan) yang gajinya di atas 2700. SELECT * FROM dbo.tbKaryawan WHERE GAJI > 2700 12. Tampilkan kayawan yang berasal dari departemen no (NO_DEPT_KAR) : 30, 40, atau 50. Urutkan datanya secara mengecil berdasarkan NM_KAR. SELECT * FROM dbo.tbKaryawan WHERE NO_DEPT_KAR IN (30,40,50) ORDER BY NM_KAR ASC 13. Hapus Departemen (tbDepartemen) no : 30 dan 40 DELETE dbo.tbDepartemen WHERE NO_Dept IN (30,40) Atau DELETE dbo.tbDepartemen WHERE NO_Dept = 30 OR NO_Dept = 40 14. Hapus Karyawan (tbKaryawan) yang Tahun masuknya 1992 DELETE dbo.tbKaryawan WHERE YEAR(TGL_MSK) = '1992' Penjelasan : Karena yang dihapus harus diseleksi berdasarkan tahun masuknya saja, maka kita harus menyeleksi [TGL_MSK] hanya berdasarkan tahun saja dengan fungsi YEAR(TGL_MSK). Bila bulan maka perintahnya adalah MONTH(TGL_MSK). Bila perintah seleksinya bulan dan tahun contoh hapus data karyawan yang Tahun masuknya 1992 bulan Februari. bisa dilakukan seperti di bawah ini : DELETE dbo.tbKaryawan WHERE MONTH(TGL_MSK) = '2' AND YEAR(TGL_MSK) = '1992' 15. Update Data Sakinah, naikkan gajinya 10% dari gaji sebelumnya, Komisinya ubah jadi 15 UPDATE tbKaryawan SET GAJI = GAJI + (GAJI * 10%), KOMISI = 15 WHERE NM_KAR = 'Sakinah`' 16. Update gaji karyawan dari departemen no: 30,40, atau 50 . Tambahkan sebanyak 250 pada setiap karyawan dari departemen tersebut. UPDATE SET tbKaryawan GAJI = GAJI + 250 WHERE NO_DEPT_KAR IN ( 30, 40, 50 ) 17. Ubah field NM_KAR pada tabel Pegawai panjangnya(sizenya) menjadi 30. ALTER TABLE tbKaryawan ALTER COLUMN NM_KAR VARCHAR(15) 18. Ubah nama tabel Karyawan menjadi Pegawai. sp_rename 'Table.OldField','NewField','Column' 19. Ubah nama field NM_DEPT menjadi NAMA_DEPT pada tabel Departemen. sp_rename 'Table.OldField','NewField' 20. Hapus tabel Departemen, Hapus Tabel Pegawai, Hapus Database Kepegawaian. DROP TABLE tbDepartemen DROP TABLE tbKaryawan DROP DATABASE Kepegawaian

Dokumen baru