Esson Sihombing, S.Kom. Lab. Basisdata 1 Sistem Informasi UNIKOM 2013

dokumen-dokumen yang mirip
Perkenalan SQL. Ada empat macam tipe database yaitu hirarki, jaringan, relasional, dan objek.

Menggunakan Set Operators

B a s i s D a t a. Tatap MUka. SQL Query & Agregate Function. Arif Basofi PENS

Arsitektur Basis Data Oracle

B a s i s D a t a - 1 C H A P T E R. SQL Lanjutan 1. Copyright 2005 PENS-ITS

Oracle Academic Initiative

Tutorial Database Oracle Chapter4 Pembatasan dan Pengurutan

Tutorial Database Oracle Chapter3 Menampilkan Data Menggunakan Perintah SQL SELECT

Bab 3. Query Lanjutan POKOK BAHASAN: TUJUAN BELAJAR:

PRACTISE

IKG2I4 / Software Project I

STRUCTURE QUERY LANGUAGE DDL & DML

Fungsi Single-Row. Fungsi merupakan fitur paling dibutuhkan dari SQL yang dapat digunakan untuk:

MODUL 4. Query SELECT dan DML (INSERT, UPDATE, DELETE) PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

Apa yang akan dibahas? Pengertian SQL Penggolongan Statement SQL Aturan Gramatika SQL Struktur Dasar SQL Query Satu (1) Tabel

Pertemuan 10 Structure Query Language(SQL)

MODUL 5. Advanced Query : Pemilihan dan Pengurutan Data PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

PERTEMUAN 2 PEMILIHAN DAN PENGURUTAN DATA

Fungsi Single-Row. Fungsi merupakan fitur paling dibutuhkan dari SQL yang dapat digunakan untuk:

Basis Data 1. Dasar SQL Query. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

Oracle Academic Initiative

Oracle Academic Initiative

B a s i s D a t a - 1 C H A P T E R SQL. Function & Agregat. Copyright 2005 PENS-ITS

Sub Query. Rosa Ariani Sukamto Blog: Website:

SUBQUERY-2. MI2154 SQL LANJUT Dedy Rahman Wijaya, S.T., M.T., OCA

Praktikum Basis Data 13 Structure Query Language 1

IKG2I4 / Software Project I

Bab 5. Database Trigger POKOK BAHASAN: TUJUAN BELAJAR: 5.1. PENDAHULUAN

Oracle Academic Initiative

B a s i s D a t a C H A P T E R. SQL Operasi DML. Arif Basofi PENS 2015

S Q L. Sejarah SQL. Penulisan Perintah SQL. SQL (Structure Query Language)

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

Oracle Academic Initiative

Oracle Academic Initiative

Oracle Academic Initiative

Menggunakan Subquery untuk Memecahkan Query Query

Oracle Academic Initiative

PERTEMUAN 5 PENGGUNAAN FUNGSI GROUP

B a s i s D a t a C H A P T E R SQL OPERASI JOIN. Arif Basofi PENS 2015

BAB 2 : Dasar Penulisan Statemen SQL Sasaran Mengetahui kemampuan dari SQL SELECT Statement Dapat membuat perintah SQL dengan SELECT Statement

Oracle Academic Initiative

Sistem Basis Data. Pertemuan 13 SQL INSERT & SELECT TUJUAN

B a s i s D a t a - 1 C H A P T E R SQL OPERASI JOIN. Copyright 2005 PENS-ITS

Oracle Academic Initiative

PRAKTIKUM 4 PENGAMBILAN DATA LANJUT

@Tessy Badriyah, SKom. MT. PERTEMUAN 12 VIEW

BAB 4 : Interaksi PL/SQL dengan Oracle Server

Basis Data Terapan. Yoannita, S.Kom

Oracle Academic Initiative

Untuk menampilkan data-data yang telah tersimpan dalam database diperlukan perintah SELECT, yang dapat dirumuskan sebagai berikut:

PERTEMUAN 4 MENAMPILKAN DATA DARI BANYAK TABEL

MODUL V DATA MANIPULATION LANGUAGE (DML) 1

DATABASE - MySQL. Muhammad Zen S. Hadi, ST. MSc.

Syntax Syntax SQL. Untuk lebih jelasnya dapat dilihat sebagai berikut : 1. DDL (Definition Data Language) a. CREATE

Oracle Academic Initiative

MODUL PEMBINAAN KARIER

PERTEMUAN 8 PENGATURAN OUTPUT PADA SQL*PLUS

LAPORAN PRAKTIKUM BASIS DATA MODUL 3 CONDITIONAL SQL MIKA PURNAMASARI NASTADINA

Single-row Function dan Group Function

CONSTRAINT clients_client_num_pk PRIMARY KEY (client_number));

MODUL PRAKTIKUM BASIS DATA OLEH ASISTEN BASIS DATA

Melaporkan Data Agreget Menggunakan Group Functions

Mahasiswa mengetahui & memahami mengenai DML, DCL di SQL. (Isi_Field_1, Isi_Field_2,, Isi_Field_N) ;

Pertemuan 4 Menampilkan/Mengambil Data Dari Database

MENAMPILKAN DATA MENGGUNAKAN SQL SELECT

PRAKTIKUM 8 SINGLE ROW & GROUP FUNCTION

Oracle Academic Initiative

Pemrograman Basis Data dan SQL Modul ke: Pemrograman PL/SQL

Membuat Executable Statements

B a s i s D a t a C H A P T E R. SQL Operasi DDL. Arif Basofi PENS 2015

PERTEMUAN 3 FUNGSI BARIS TUNGGAL

TUTORIAL. Mencari nilai Max dan Min

Eksekusi file setup.exe yang ada dalam CD atau folder instalasi oracle.

15-Jan DATABASE - MySQL. Database. Constraints. Tujuan: Memahami perintah-perintah dasar DDL dan DML

SQL (Structured Query Language)

Mahasiswa memahami fungsi-fungsi lain di dalam SQL Mahasiswa memahami tentang operasi agregasi Mahasiswa mampu mengaplikasikan operasi agregasi

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DDL. Copyright 2005 PENS-ITS

Kontrak Kuliah. Perintah Manipulasi Data Lanjutan. Edi Sugiarto, S.Kom, M.Kom

PERTEMUAN 10. SQL : Data Manipulation (Chap. 6 Conoly)

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

PERTEMUAN 10 PEMBUATAN TABEL

Latihan : Sebutkan record berapa saja yang akan ditampilkan berdasarkan perintah berikut :

PERINTAH SQL DAN INTERKONEKSI PHP-MySQL

Data Manipulation Language (DML)

CARA MENGGUNAKAN SELECT QUERY PADA MYSQL

MODUL 3 PENGELOMPOKAN, PENGURUTAN, KRITERIA DATA, AGREGASI

BAB 2 : Deklarasi Variabel

RENCANA PEMBELAJARAN

Pertemuan DDL INDIKATOR. Modul Teori Database Aknela

Pernyataan Data Manipulation Language (DML) SQL

KSI B ~ M.S. WULANDARI

Kunci komposit adalah kunci yang melibatkan lebih dari satu field Contoh tabel Tanggungan: Apa yang terjadi kalau kunci primer hanya berupa NIP?

MENGOPERASIKANPERANGKAT LUNAK BASIS DATA

Tutorial Java Desktop 1 Membuat Database dengan JavaDB bawaan Netbeans

Pengertian Query. Query adalah perintah-perintah untuk mengakses data pada sistem basis data

PL/SQL (PART 1) Teknik Informatika UNIKOM (2010) Disusun Oleh : Andri Heryandi, M.T.

HANDOUT BASIS DATA LANJUT

Tutorial Singkat MySQL Menggunakan AppServ versi for Windows

Strctured Query Language BASIS DATA

SISTEM BASIS DATA STMIK - AUB SURAKARTA

Transkripsi:

Esson Sihombing, S.Kom. Lab. Basisdata 1 Sistem Informasi UNIKOM 2013 PRACTICE 1 1. Initiate an isql*plus session using the user ID and password that are provided by the instructor (pada pengerjaan tugas ini kami login dengan user ID=HR dan password=1234) 2. isql*plus commands access the database (False) 3. Menampilkan nama belakang, id pekerjaan dan gaji yang diberi nama (alias) SAL dari tabel employees. SELECT last_name, job_id, salary AS Sal FROM employees; (True) 107 rows selected 4. SELECT * FROM job_grades; (True) Menampilkan semua value yang ada di tabel job_grades 5. SELECT employee_id, last_name sal x 12 ANNUAL SALARY FROM employees; Tabel employees tidak memiliki kolom bernama sal yang ada salary. Operator yang dipakai salah bukan X tetapi * Penulisan alias salah, tidak boleh mengandung spasi terkecuali diapit oleh kutip, seharusnya ANNUAL_SALARY atau ANNUAL SALARY Tanda koma tidak ada setelah penulisan last_name. Jadi secara keseluruhan statement ini salah. 6. Mendeskripsikan struktur table departments DESC departments; Menampilkan semua value/konten dari table departments SELECT * FROM departments; 1

7. Mendeskripsikan struktur dari table employees DESC employees; Menampilkan id pekerja, nama belakang, id pekerjaan, tanggal mulai bekerja dari table employees. SELECT employee_id, last_name, job_id, hire_date StartDate FROM employees; 8. Menampilkan id pekerja, nama belakang, id pekerjaan, tanggal mulai bekerja dari table employees. SELECT employee_id, last_name, job_id, hire_date StartDate FROM employees; 107ws selected 9. Menampilkan job_id dari table employees tanpa adanya pengulangan untuk job_id yang sama, menggunakan command DISTINCT. SELECT DISTINCT job_id FROM employees; 19 rows selected 10. Menampilkan employee_id dengan alias Emp #, last_name sebagai Employee dan seterusnya. SELECT employee_id "Emp #", last_name "Employee", job_id "Job", hire_date "Hire Date" FROM employees; 107 rows selected 2

11. Menampilkan last_name dan job_id dengan cara digabungkan, menggunakan concatenation. Dalam hal ini, dimana tampilannya dipisahkan oleh koma dan spasi dan diberi alis Employee and Title. SELECT last_name ', ' job_id "Employee and Title" FROM employees; 107 rows selected 12. Menampilkan konten-konten dimana digabungkan menggunakan perintah concat ( ), dan THE_OUTPUT dipakai sebagai aliasnya. SELECT employee_id ',' first_name ',' last_name ',' email ',' phone_number ',' job_id ',' manager_id ',' hire_date ',' salary ',' commission_pct ',' department_id THE_OUTPUT FROM employees; 107 rows selected PRACTICE 2 1. Penggunaan klausa where, menampilkan last_name dan salary dari employees dimana gajinya lebih besar (>) dari 12000. SELECT last_name, salary FROM employees WHERE salary > 12000; 2. Menampilkan last_name dan department_id dari employee_id=176 SELECT last_name, department_id FROM employees WHERE employee_id = 176; 3

3. Menampilkan employees yang memiliki gaji terbesar dan terkecil tetapi gaji bukan diantara $5000-$12000, yang berarti bisa diatas $12000 dan dibawah $5000. SELECT last_name, salary FROM employees WHERE salary NOT BETWEEN 5000 AND 12000; 4. Menampilkan last_name, job_id, hire_date dari tabel employees dimana last_name adalah Matos dan Taylor, yang diurutkan berdasarkan hire_date. SELECT last_name, job_id, hire_date FROM employees WHERE last_name IN ('Matos', 'Taylor') ORDER BY hire_date; 5. Menampilkan last_name, department_id dari tabel employees tetapi yang department_id nya=20 dan 50 saja. Diurutkan berdasarkan last_name secara ascending. SELECT last_name, department_id FROM employees WHERE department_id IN (20, 50) ORDER BY last_name ASC; 6. Menampilkan last_name yang diberi alias Employee dan salary dengan alias Monthly Salary dari tabel employees dimana salary diantara 5000 dan 12000 dan department_id (20, 50). SELECT last_name "Employee", salary "Monthly Salary" FROM employees WHERE salary BETWEEN 5000 AND 12000 AND department_id IN (20, 50); 4

7. Menampilkan last_name, hire_date dari employees dimana hire_date tahun 1994. SELECT last_name, hire_date FROM employees WHERE hire_date LIKE '%94'; 8. Menampilkan employees yang tidak memiliki manager (manager_id sama dengan null) SELECT last_name, job_id FROM employees WHERE manager_id IS NULL; 9. Menampilkan last_name, salary, commission_pct dari tabel employees yang mendapatkan komisi. Urutkan berdasarkan salary dan commission_pct secara descending. SELECT last_name, salary, commission_pct FROM employees WHERE commission_pct IS NOT NULL ORDER BY salary DESC, commission_pct DESC; 10. Menampilkan last_name dan salary untuk employees dimana besar gajinya (salary) di input terlebih dahulu melalui sebuah prompt. SELECT last_name, salary FROM employees WHERE salary > &komisi; 5

11. Menampilkan last_name, employee_id, salary dan department_id dimana manager_id di input melalui prompt dan diurutkan berdasarkan oleh kolom yang kita tentukan. SELECT employee_id, last_name, salary, department_id FROM employees WHERE manager_id = &nomor ORDER BY &kolom; 12. Menampilkan last_name dimana huruf ke-3 = a SELECT last_name FROM employees WHERE last_name LIKE ' a%'; 13. Menampilkan last_name yang mengandung huruf a dan e SELECT last_name FROM employees WHERE last_name LIKE '%a%' AND last_name LIKE '%e%'; 6

14. Menampilkan last_name, job_id, salary dimana hanya yang memiliki job_id = SA_REP, ST_CLERK dan salary bukan = 2500, 3500, 7000. SELECT last_name, job_id, salary FROM employees WHERE job_id IN ('SA_REP', 'ST_CLERK') AND salary NOT IN (2500, 3500, 7000); 15. Menampilkan last_name dengan alias Employee, salary dengan alias Monthly Salary, dan commission_pct dimana commission_pct = 20%. SELECT last_name "Employee", salary "Monthly Salary",commission_pct FROM employees WHERE commission_pct = 0.2; PRACTISE 3 1. Menampilkan sysdate (tanggal saat ini dari sistem) dengan alias Date SELECT sysdate "Date" FROM dual; 2. Menampilkan employee_id, last_name, dan salary dimana salary mengalami kenaikan sebesar 15,5% dan hasilnya dibulatkan tanpa desimal dengan nama alias New Salary. SELECT employee_id, last_name, salary, ROUND(salary * 1.155, 0) "New Salary" FROM employees; 7

3. Hasil Output dari soal diatas 4. Seperti soal No. 2 & 3, tambahkan selisih dari new salary-salary yang diberi nama alias increase SELECT employee_id, last_name, salary, ROUND(salary * 1.155, 0) "New Salary", ROUND(salary * 1.155, 0) - salary "Increase" FROM employees; 5. Menampilkan last_name dimana Huruf pertamanya kapital dan panjang karakter last_name dimana last_name diawali huruf J, M, atau A. Urutkan berdasarkan last_name. SELECT INITCAP(last_name) "Name", LENGTH(last_name) "Length" FROM employees WHERE last_name LIKE 'J%' OR last_name LIKE 'M%' OR last_name LIKE 'A%' ORDER BY last_name ; SELECT INITCAP(last_name) "Name", LENGTH(last_name) "Length" FROM employees WHERE last_name LIKE '&start_letter%' ORDER BY last_name; 8

6. Menampilkan last_name dan lama bekerja (bulan) yabg dihitung dengan cara waktu saat ini hire_date beri nama dengan alias Months_Worked. SELECT last_name, ROUND(MONTHS_BETWEEN(SYSDATE, hire_date)) MONTHS_WORKED FROM employees ORDER BY months_worked; 7. Melakukan penggabungan dengan kalimat : <employee last name> earns <salary> monthly but wants <3 timessalary>. Dimana salary dikalikan 3 dan namai dengan Dream Salaries SELECT last_name ' earns ' TO_CHAR(salary, 'fm$99,999.00') ' monthly but wants ' TO_CHAR(salary * 3, 'fm$99,999.00') '.' "Dream Salaries" FROM employees; 8. Menampilkan last_name dan salary, panjang karakter salary = 15, bila kurang isi karakter kosong dengan simbol $. Beri nama alias SALARY SELECT last_name, LPAD(salary, 15, '$') SALARY FROM employees; 9

9. Tampilkan last_name, hire_date, dan hari senin setelah 6 bulan dari tanggal hire_date. Beri nama alias REVIEW. SELECT last_name, hire_date, TO_CHAR(NEXT_DAY(ADD_MONTHS(hire_date, 6),'MONDAY'),'fmDay, "the" Ddspth "of" Month, YYYY') REVIEW FROM employees; 10. Menampilkan last_name dan hire_date serta hari dari hire_date. Urutkan berdasarkan hari tersebut. SELECT last_name, hire_date, TO_CHAR(hire_date, 'DAY') DAY FROM employees ORDER BY TO_CHAR(hire_date - 1, 'd'); 11. Menampilkan last_name dan commission_pct dengan alias COMM, apabila memiliki komisi tampilkan besarnya, tetapi bila tidak tampilkan No Commisssion. SELECT last_name, NVL(TO_CHAR(commission_pct), 'No Commission') COMM FROM employees; 10

12. Tampilkan 8 karakter pertama last_name, dan salary dalam bentuk *, jumlah * menyatakan ribuan dalam $. Beri nama alias Employees_and_Their_Salaries. SELECT rpad(last_name, 8) ' ' rpad(' ', salary/1000+1, '*') EMPLOYEES_AND_THEIR_SALARIES FROM employees ORDER BY salary DESC; 13. Menggunakan funsi decode untuk menampilkan job_id dan grade. SELECT job_id, decode(job_id,'st_clerk', 'E','SA_REP', 'D','IT_PROG', 'C','ST_MAN', 'B','AD_PRES', 'A','0')GRADE FROM employees; 14. Seperti soal No. 13, tetapi menggunakan sintaks CASE untuk proses pemilihan. SELECT job_id, CASE job_id WHEN 'ST_CLERK' THEN 'E' WHEN 'SA_REP' THEN 'D' WHEN 'IT_PROG' THEN 'C' WHEN 'ST_MAN' THEN 'B' WHEN 'AD_PRES' THEN 'A' ELSE '0' END GRADE FROM employees; PRACTISE 4 1. Group functions work across many rows to produce one result per group. (True) Fungsi grup menghasilkan 1 hasil dari tiap grup, dimana masukannya banyak. 2. Group functions include nulls in calculations. (False) 3. The WHERE clause restricts rows before inclusion in a group calculation. (True) 11

4. Menampilkan salary yang terbesar, terkecil, total keseluruhan dan rata-ratanya, hasilnya dibulatkan. Dan beri nama alias-nya masing-masing SELECT ROUND(MAX(salary),0) "Maximum", ROUND(MIN(salary),0) "Minimum", ROUND(SUM(salary),0) "Sum", ROUND(AVG(salary),0) "Average" FROM employees; 5. Sama dengan No. 4 tetapi ditampilkan secara grup berdasarkan job_id. SELECT job_id, ROUND(MAX(salary),0) "Maximum", ROUND(MIN(salary),0) "Minimum", ROUND(SUM(salary),0) "Sum", ROUND(AVG(salary),0) "Average" FROM employees GROUP BY job_id; 6. Menampilkan jumlah orang yang memiliki pekerjaan yang sama, kelompokkan berdasarkan job_id. SELECT job_id, COUNT(*) FROM employees GROUP BY job_id; SELECT job_id, COUNT(*) FROM employees WHERE job_id = '&job_title' GROUP BY job_id; 12

7. Menampilkan jumlah manager SELECT COUNT(DISTINCT manager_id) "Number of Managers" FROM employees; 8. Menampilkan selisih nilai terbesar dan terkecil dari salary SELECT MAX(salary) - MIN(salary) DIFFERENCE FROM employees; 9. Menampilkan manager_id dan min(salary), dimana hanya yang memiliki manager dikelompokkan berdasarkan manager_id dan min(salary) lebih besar dari 6000 urutkan berdasarkan min(salary) descending. SELECT manager_id, MIN(salary) FROM employees WHERE manager_id IS NOT NULL GROUP BY manager_id HAVING MIN(salary) > 6000 ORDER BY MIN(salary) DESC; 10. Menampilkan total employees dan total employees yang mulai bekerja tahun 1995, 1996, 1997, dan 1998. SELECT COUNT(*) total, SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1995,1,0))"1995", SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1996,1,0))"1996", SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1997,1,0))"1997", SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1998,1,0))"1998" FROM employees; 13

11. Menampilkan job_id beserta salary-nya berdasarkan department_id dan total salary untuk tiap job_id. SELECT job_id "Job", SUM(DECODE(department_id, 20, salary)) "Dept 20", SUM(DECODE(department_id, 50, salary)) "Dept 50", SUM(DECODE(department_id, 80, salary)) "Dept 80", SUM(DECODE(department_id, 90, salary)) "Dept 90", SUM(salary) "Total" FROM employees GROUP BY job_id; 14