SQL: DML (2) Basis Data Pertemuan 07.

Slides:



Advertisements
Presentasi serupa

Advertisements

Yuswanto Modifikasi Data.
SQL.
SQL (Structured Query Language)
PERINTAH SQL.
BAHASA QUERY TERAPAN Sub Materi : Structured Query Language
Praktikum Database Query Tingkat Lanjut Abdul Kadir.
SQL ADVANCEADVANCE. SQL Data Type MySQL Text Type : 9/7/2014By : Suwondo, S.Kom2.
SUB QUERY.
SQL: Queries II, Constraints & Triggers (Chap. 5 – Ramakrishnan)
SQL.
PRAKTIKUM BASIS DATA (4) TEKNIK INFORMATIKA UNIVERSITAS MERCU BUANA
Strctured Query Language
SQL : Data Manipulation Pertemuan 07 s/d 08 Matakuliah: M0564 /Pengantar Sistem Basis Data Tahun : 2008.
SQL Part 3 Latar Belakang Desain Tabel Normalisasi Aljabar relasional
Data Manipulation Language (Aggregate Function)
Me-Retrieve Data Menggunakan Pernyataan SQL SELECT
DATA AGREGAT MENGGUNAKAN GROUP FUNCTIONS
SQL 2. Database TRANSACTION Tabel yang terlibat : Customer berisi data pelanggan (nama, alamat, dll) OderInfo berisi info pemesanan oleh pelanggan (tgl.
Microsoft SQL Server DDL dan DML dasar
Fungsi Agregat fungsi yang mengambil suatu kumpulan nilai-nilai sebagai input dan mengembalikan satu nilai sebagai output Select fungsi agregat SUM/AVG/MIN/MAX/COUNT.
SQL.
INNER JOIN.
Data Definition Language dan Data Manipulation Language
Praktikum Database Subquery Lanjutan dan View Abdul Kadir.
SQL (Structured Query Language) Materi Pertemuan
MANAJEMEN BASIS DATA Pertemuan 6 SQL - SELECT.
P E R T E M U A N 12 SISTEM BASIS DATA.
SQL-Aggregate dengan Fungsi GROUP, HAVING dan subQuery
BAHASA QUERY TERAPAN OLEH : HARSITI, ST.
Relational Calculus Basis Data Pertemuan 05.
Dr. KUSRINI, M.KOM 66. Select * From nama_tabel [Where Kondisi] [Order by Kolom_x] Atau Select Kolom_1,Kolom_2,..Kolom_n From nama_tabel [Where Kondisi]
MANAJEMEN BASIS DATA Pertemuan 8 SUBQUERY.
Data Manipulation Language
PERTEMUAN 10 QUERY KOMERSIAL LANJUTAN Agus Riyanto, S.Kom.
PRAKTIKUM BASIS DATA (4) TEKNIK INFORMATIKA UNIVERSITAS MERCU BUANA
Data Manipulation Language Presented by : Herianto.
SQL (Structure Query Language)
SQL (Structure Query Language) Pertemuan 5 – Reporting Aggregate Data Using the Group Function sy urf gm ail. co m.

Pertemuan ke-sekian Structure Query Language (SQL) Lanjut
Structure Query Language
Rekayasa Perangkat Lunak Materi 3 (Database)
PEMASARAN BERBASIS WEB
Query.
SQL: DDL Basis Data 09.
Pemrograman Visual Akuntansi III
Query Query adalah statement yang berada dalam SQL untuk menampilkan suatu data dari database dimana data diambil dari satu atau beberapa tabel.
Query.
Menggunakan Subquery untuk Memecahkan Query Query
Using Subqueries to Solve Queries
SQL DML Pertemuan 6 dan 7.
SQL: DML Basis Data Pertemuan 06.
EXIT KD 3.4 “ Fungsi-Fungsi Agregasi “. MATERI Disusun Oleh :
PEMASARAN BERBASIS WEB
Sistem Manajemen Basis Data
Structured Query Language (SQL)
Perhitungan dan Pemakaian Bookmark
SQL Data Manipulation IK203 Sistem Basis Data Pertemuan #12
Rekayasa Perangkat Lunak (Materi 2 Database)
MODUL 4 MENAMPILKAN DATA DARI SATU TABEL
SQL (Structured Query Language) Oleh : Cosmas Haryawan.
MODUL 4 MENAMPILKAN DATA DARI SATU TABEL
BASIS DATA LANJUT SEMESTER II
AGGREGATE FUNCTION DB - Wiji Setiyaningsih, M.Kom.
04 SQL: Query single table Mata Kuliah: Basis Data
SQL(SELECT QUERY LANGUAGE)
Basis Data Bab 3 Structured Query Language (SQL).
By Galih Hermawan IF. FTIK. UNIKOM 4 October 2018.
DATA MANIPULATION LANGUAGE
Transcript presentasi:

SQL: DML (2) Basis Data Pertemuan 07

Perintah SELECT – Aggregate(1) Standar ISO mendefinisikan lima fungsi aggregate : COUNT Mengembalikan angka dari nilai dalam kolom tertentu SUM Mengembalikan jumlah dari nilai yang terdapat dalam kolom AVG Mengembalikan rata-rata dari nilai yang ada dalam kolom MIN Mengembalikan nilai terkecil dari nilai yang terdapat dalam kolom MAX Mengembalikan nilai terbesar dari nilai yang terdapat dalam kolom

Perintah SELECT – Aggregate(2) Setiap fungsi beroperasi pada satu kolom dan mengembalikan satu nilai tunggal. COUNT, MIN, dan MAX digunakan untuk field numerik dan non-numerik, sedangkan SUM dan AVG hanya dapat digunakan pada field numerik. Bagian dari COUNT(*), pertama setiap fungsi mengeliminasi null dan mengoperasikan nilai non-null. COUNT(*) menghitung seluruh baris dalam tabel, walaupun terdapat null atau duplikasi. Menggunakan DISTINCT sebelum nama kolom untuk menghilangkan duplikasi.

Perintah SELECT – Aggregate(3) DISTINCT tidak berpengaruh terhadap operasi MIN/MAX, tetapi berpengaruh pada SUM/AVG. Fungsi Aggregate dapat digunakan dalam daftar SELECT dan clause HAVING clause. Jika daftar SELECT menyertakan fungsi aggregate dan tidak terdapat clause GROUP BY, daftar SELECT tidak dapat mengacu ke kolom dengan fungsi aggregate. Contoh berikut adalah salah : SELECT staffNo, COUNT(salary) FROM Staff;

Contoh : Kegunaan COUNT(*) Tampilkan banyaknya properti yang mempunyai biaya sewa lebih dari £350 per bulan SELECT COUNT(*) AS count FROM PropertyForRent WHERE rent > 350;

Kegunaan COUNT(DISTINCT) Tampilkan banyaknya properti yang berbeda telah dilihat selama May ‘01? SELECT COUNT(DISTINCT propertyNo) AS count FROM Viewing WHERE viewDate BETWEEN ‘1-May-01’ AND ‘31-May-01’;

Kegunaan COUNT dan SUM Tampilkan jumlah manager dan jumlah gaji mereka. SELECT COUNT(staffNo) AS count, SUM(salary) AS sum FROM Staff WHERE position = ‘Manager’;

SELECT MIN(salary) AS min, MAX(salary) AS max, AVG(salary) AS avg Kegunaan MIN, MAX, AVG Carilah minimum, maximum, dan average gaji staff SELECT MIN(salary) AS min, MAX(salary) AS max, AVG(salary) AS avg FROM Staff;

Perintah SELECT - Grouping Menggunakan clause GROUP BY untuk mendapatkan sub-total. SELECT dan GROUP BY terintegrasi :setiap item dalam SELECT harus berupa single-valued per group, dan clause SELECT hanya dapat mengandung : Nama kolom Fungsi aggregate Konstanta Ekspresi terdiri dari kombinasi tersebut diatas. Semua nama kolom dalam SELECT harus ditampilkan dalam clause GROUP BY kecuali jika dinamakan dalam fungsi aggregate. Jika WHERE digunakan bersama GROUP BY, WHERE dimunculkan lebih dulu, kemudian groups ditampilkan dari sisa baris untuk memenuhi predikat. Standar ISO mempertimbangkan dua null bernilai sama untuk kegunaan dari clause GROUP BY.

SELECT branchNo, COUNT(staffNo) AS count, SUM(salary) AS sum Kegunaan GROUP BY Tampilkan jumlah staff pada setiap cabang dan total gaji staf pada masing-masing cabang SELECT branchNo, COUNT(staffNo) AS count, SUM(salary) AS sum FROM Staff GROUP BY branchNo ORDER BY branchNo;

Pengelompokkan terbatas – HAVING clause Clause HAVING didesain untuk digunakan bersama GROUP BY untuk membatasi pengelompokkan yang ditampilkan pada tabel hasil akhir. Hampir sama dengan WHERE, dimana WHERE menyeleksi baris secara individual, sedangkan HAVING secara kelompok. Nama kolom dalam clause HAVING juga akan ditampilkan dalam daftar GROUP BY atau dimasukan dalam fungsi aggregate.

Kegunaan HAVING Tampilkan jumlah staff dan jumlah gaji mereka untuk cabang dengan jumlah staff lebih dari 1 SELECT branchNo, COUNT(staffNo) AS count, SUM(salary) AS sum FROM Staff GROUP BY branchNo HAVING COUNT(staffNo) > 1 ORDER BY branchNo;

Subqueries Beberapa perintah SQL dapat memiliki SELECT ditambahkan didalamnya. Suatu subselect digunakan dalam clause WHERE dan HAVING disamping SELECT utama, biasanya disebut subquery atau nested query. Subselect juga dapat digunakan dalam perintah INSERT, UPDATE, dan DELETE.

Subquery dengan persamaan Tampilkan detail staff yang bekerja di cabang yang berada di ‘163 Main St’. SELECT yang didalam mencari no cabang dari cabang yang beralamat di ‘163 Main St’ (‘B003’). SELECT yang diluar memanggil detail dari seluruh staff yang bekerja dicabang ini. SELECT staffNo, fName, lName, position FROM Staff WHERE branchNo = (SELECT branchNo FROM Branch WHERE street = ‘163 Main St’);

SELECT staffNo, fName, lName, position FROM Staff Kemudian SELECT luar menjadi : SELECT staffNo, fName, lName, position FROM Staff WHERE branchNo = ‘B003’;

Subquery dengan Aggregate Tampilkan detail staff yang gaji-nya lebih besar dari gaji rata-rata dan tampilkan selisihnya Tidak dapat dituliskan ‘WHERE salary > AVG(salary)’ Lebih baik digunakan subquery untuk mencari gaji rata-rata (17000), kemudian menggunakan SELECT luar untuk mencari staff dengan gaji lebih besar dari 17000. SELECT staffNo, fName, lName, position, salary – (SELECT AVG(salary) FROM Staff) As SalDiff FROM Staff WHERE salary >(SELECT AVG(salary) FROM Staff);

Subquery dengan Aggregate(2) SELECT staffNo, fName, lName, position, salary – 17000 As salDiff FROM Staff WHERE salary > 17000;

Aturan-aturan Subquery Clause ORDER BY dapat tidak digunakan dalam subquery (walaupun dapat digunakan dalam SELECT terluar). Subquery SELECT harus terdiri dari nama kolom tunggal atau ekspresi, kecuali untuk subqueries yang menggunakan EXISTS. Berdasarkan default, nama kolom mengacu ke nama tabel pada clause FROM dari subquery. Dapat mengacu ke table dalam FROM menggunakan alias. Ketika subquery merupakan sebuah operand dalam suatu perbandingan, maka harus dituliskan disebelah kanan. Subquery tidak dapat digunakan sebagai operand dalam suatu ekspresi.

Queri bersarang : kegunaan IN Tampilkan properti yang ditangani oleh staff di ‘163 Main St’. SELECT propertyNo, street, city, postcode, type, rooms, rent FROM PropertyForRent WHERE staffNo IN (SELECT staffNo FROM Staff WHERE branchNo = (SELECT branchNo FROM Branch WHERE street = ‘163 Main St’));

ANY dan ALL ANY dan ALL dapat digunakan dengan subqueries yang menghasilkan satu kolom tunggal. Dengan ALL, kondisi akan bernilai benar jika terpenuhi oleh semua nilai yang dihasilkan oleh subquery. Dengan ANY, kondisi akan bernilai benar jika ada nilai yang dihasilkan subquery memenuhi ketentuan. Jika subquery bernilai kosong (empty), ALL mengembalikan nilai benar (true), dan ANY mengembalikan nilai salah (false). SOME dapat digunakan sebagai pengganti ANY.

Kegunaan ANY/SOME Tampilkan staff yang mempunyai gaji lebih besar dari gaji 1 staff dicabang B003. Inner query menghasilkan himpunan {12000, 18000, 24000} dan outer query mengambil staff yang gaji-nya lebih besar dari semua nilai yang ada di himpunan tersebut. SELECT staffNo, fName, lName, position, salary FROM Staff WHERE salary > SOME (SELECT salary FROM Staff WHERE branchNo = ‘B003’);

Kegunaan ALL Tampilkan staff yang gaji-nya lebih besar dari gaji setiap anggota staff cabang B003. SELECT staffNo, fName, lName, position, salary FROM Staff WHERE salary > ALL (SELECT salary FROM Staff WHERE branchNo = ‘B003’);