Basis Data. Bagian IV SQL (2) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

dokumen-dokumen yang mirip
Basis Data. Bagian IV SQL (3) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

STRUCTURED QUERY LANGUAGE (SQL)

Basis Data. Bagian IV SQL (1) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

STRUCTURE QUERY LANGUAGE DDL & DML

PERTEMUAN 5 PENGGUNAAN FUNGSI GROUP

Oracle Academic Initiative

LATAR BELAKANG IBM San Jose Research Laboratory.

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

PERTEMUAN 11 SQL(lanjutan): Queries, Constraints & Triggers. (Chap. 5 Ramakrishnan)

MODUL V DATA MANIPULATION LANGUAGE (DML) 1

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

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

Kegiatan Praktikum Sistem Basis Data Kelompok B

Structured Query Language

Bab 3. Query Lanjutan POKOK BAHASAN: TUJUAN BELAJAR:

BAHASA QUERY KOMERSIAL

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

MODUL 3. View PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

S Q L STRUCTURED QUERY LANGUAGE DEFINITION MANIPULATION C O N T R O L D M L SELECT INSERT UPDATE DELETE

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

Macam - Macam Perintah Pada SQL

SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG

M0564-Pengantar Sistem Basisdata 12/ 1

Basis Data II. Pertemuan Ke-6 (Function) Noor Ifada

Riyanto

SQL I. TPI4210 Sistem dan Teknologi Informasi

BAB III MODEL RELATIONAL

ALJABAR RELASIONAL (RELATIONAL ALGEBRA)

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

STRUCTURED QUERY LANGUAGE (SQL) (Implementasi menggunakan MySQL)

Modul 3 : Query Penggabungan Tabel

@Tessy Badriyah, SKom. MT. PERTEMUAN 12 VIEW

STRUCTURE QUERY LANGUAGE (SQL)

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

BAB IV PENGENALAN OPERATOR DASAR

Oracle Academic Initiative

Data Manipulation Language (DML)

PRAKTIKUM 4 PENGAMBILAN DATA LANJUT

Apakah SQL? Membuat basis data dan struktur tabel Input, update, dan delete data dari tabel Membuat query sederhana dan kompleks SQL

STRUCTURE QUERY LANGUAGE

Oracle Academic Initiative

PERTEMUAN 6 SUBQUERY

Sistem Basis Data 1. Pertemuan 5 dan 6 Aljabar Relasional dan SQL Rogayah, ST.,MMSI Untuk 3DB01 dan 3DB04

Basis Data I. Pertemuan Ke-11 (SQL Part 2) Noor Ifada.

Modul Praktikum II Matakuliah Basis Data 2

RENCANA PEMBELAJARAN

By Imana M alia Malia Kondou 1

Pertemuan 10. Bahasa Query Terapan

MODUL IV FUNGSI AGREGAT

PRAKTIKUM 5 SISTEM BASIS DATA JOIN

Pertemuan 11. Bahasa Query Terapan Lanjutan

BAB I PENDAHULUAN. 1.1 Latar Belakang

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

SQL (STRUCTURED QUERY LANGUAGE)

Sistem Basis Data Danny Kriestanto, S.Kom., M.Eng

MODUL SISTEM BASIS DATA FUNGSI AGREGAT

PENGANTAR TEKNOLOGI SISTEM INFORMASI MANAGEMENT 2

1. Mahasiswa mampu mengenal dan memahami Bahasa Pemrograman MySQL 2. Mahasiswa mampu mengimplementasikan DDL dan DML.

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

Pertemuan IV Advanced Entity Relationship Diagram Fak. Teknik Jurusan Teknik Informatika

Pertemuan III Entity Relationship Diagram Fak. Teknik Jurusan Teknik Informatika. Caca E. Supriana, S.Si.,MT.

Pertemuan 6 BAHASA QUERY FORMAL

Single-row Function dan Group Function

INTEGRITAS DAN KEAMANAN BASIS DATA. Alif Finandhita, S.Kom, M.T

Pertemuan 10 Structure Query Language(SQL)

PERTEMUAN IV ADVANCED ENTITY RELATIONSHIP DIAGRAM FAK. TEKNIK JURUSAN TEKNIK INFORMATIKA

Oracle Academic Initiative

BAHASA QUERY KOMERSIAL

SQL (Structure Query Language) Gentisya Tri Mardiani, S.Kom

Berikut ini akan diberikan contoh-contoh penggunaan fungsi agregasi dalam klausa SQL: Contoh 1 Menampilkan banyaknya record dosen select count ( * )

BAHASA QUERY KOMPLEKS

IF Model Relasional

BAHASA QUERY KOMERSIAL

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

MODUL 3 PENGELOMPOKAN, PENGURUTAN, KRITERIA DATA, AGREGASI

MODUL 8. Sub Query Pada baris dan Kolom PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

MODUL 6 JDBC (JAVA DATABASE CONNECTIVITY)

PEMODELAN DATA (ER-D) Basis Data -1 / Dian Dharmayanti

DATA MANIPULATION LANGUAGE

Model Relational. S# Nama Status Kota S1 Hanato 20 Bandung S2 Andi 10 Jakarta S3 Shy 25 Surabaya S4 Tina 20 Medan

Normalisasi Bagian I

RENCANA PEMBELAJARAN SEMESTER (RPS) DAN RENCANA PELAKSANAAN PEMBELAJARAN (RPP)

Komponen-Komponen SQL a. Data Definition Language (DDL) : Digunakan untuk mendefinisikan data dengan menggunakan perintah : create, drop, alter.

INTEGRITAS BASIS DATA. OLEH : Slamet Sn Wibowo Wicaksono

PRAKTIKUM 8 SINGLE ROW & GROUP FUNCTION

Data Manipulation Language (DML) & Data Control Language (DCL) pada Database

Model Entity Relationship Bagian I

BAB VI AGREGASI SQL DAN VIEW

Untuk mencoba contoh-contoh perintah join, silahkan eksekusi query create+insert dibawah ini:

Statement DDL Create database drop database Create table drop table alter table

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

SISTEM BASIS DATA 1. WAHYU PRATAMA, S.Kom., MMSI.

BAB V. Basis Data Darmawan Satyananda 74

MODUL 7 STRUCTURED QUERY LANGUAGE

MODUL V SUB QUERY & VIEW

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

Basis Data II. Pertemuan Ke-7 (Union dan Join) Noor Ifada S1 T. Informatika - UTM (2012) 1

Melaporkan Data Agreget Menggunakan Group Functions

SQL (Structured Query Language)

Pengantar Basis Data SISTEM BASIS DATA I. WAN H. Manihuruk, S.kom

Transkripsi:

Basis Data Bagian IV SQL (2) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

Fungsi Agregasi Fungsi agregasi digunakan untuk melakukan operasi pada kelompok-kelompok baris data. Fungsi ini akan menghasilkan satu baris data untuk setiap kelompok baris data yang ada. Yang termasuk fungsi-fungsi agregasi adalah : Average : AVG Minimum : MIN Maximum : MAX Total : SUM Count : COUNT

Average Fungsi AVG digunakan untuk memperoleh nilai rata-rata dari seluruh nilai pada suatu kolom. Pemakaian Fungsi Avg: SELECT AVG (nama_kolom) FROM (nama_tabel);

Minimum Digunakan untuk memperoleh nilai minimum (yang terkecil) dari suatu kolom. Pemakaian Fungsi Min: SELECT MIN (nama_kolom) FROM (nama_tabel);

Maximum Digunakan untuk memperoleh nilai maksimum (yang terbesar) dari suatu kolom. Pemakaian Fungsi Max: SELECT MAX (nama_kolom) FROM (nama_tabel);

Total Digunakan untuk memperoleh nilai penjumlahan seluruh baris pada suatu kolom. Pemakaian Fungsi Sum: SELECT SUM (nama_kolom) FROM (nama_tabel);

Count Fungsi agregasi count sering digunakan untuk menghitung jumlah tuple dalam suatu relasi. Pemakaian Fungsi Count: SELECT COUNT (nama_kolom) FROM (nama_tabel); Contoh: Untuk menentukan jumlah tuple dalam relasi customer, ditulis : SELECT count(*) FROM customer

Group By Jika fungsi agregasi ini ingin diterapkan pada kelompok himpunan tuple, maka digunakan klausa GROUP BY. Nama atribut/kel. Atribut dalam klausa group by digunakan untuk membentuk grup/kelompok. Artinya tuple-tuple yang mempunyai nilai yang sama pada semua atribut dalam klausa group-by dimasukkan dalam satu grup/kelompok. Contoh : tampilkan jumlah depositor untuk setiap cabang select branch-name, count (distinct customer-name) from depositor D, account A where D.account-number = A.account-number group by branch-name Note: Atribut pada klausa select (selain pada fungsi agregasi) harus muncul dalam daftar group by

Having Jika suatu fungsi diterapkan pada grup/kelompok yang dibentuk oleh group by maka digunakan klausa having setelah group by. Contoh : tampilkan nama cabang yang mempunyai rata-rata saldo lebih dari 1200 SELECT branch-name, avg(balance) FROM account GROUP BY branch-name HAVING avg (balance)>1200

Nilai Null Tuple-tuple mungkin memiliki nilai NULL pada satu atau beberapa atributnya null menunjukkan unknown value atau nilai untuk atribut tersebut tidak ada Predikat is null dapat digunakan untuk memeriksa keberasaan nilai null Contoh: tampilkan semua loan number yang ada di relasi loan yang memiliki nilai amount NULL select loan-number from loan where amount is null

Nilai Null Hasil ekspresi aritmetik yang melibatkan null adalah null Contoh: 5 + null hasilnya null Semua operasi perbandingan dengan null hasilnya unknown Contoh: 5 < null null <> null null = null

Nilai Null OR: (unknown or true) = true, (unknown or false) = unknown (unknown or unknown) = unknown AND: (true and unknown) = unknown, (false and unknown) = false (unknown and unknown) = unknown NOT: (not unknown) = unknown Hasil dari klausa where dianggap false jika hasil evaluasi bernilai unknown

Nilai Null Total semua loan amounts select sum (amount) From loan Statement di atas mengabaikan null amount Hasilnya NULL jika tidak terdapat non-null amount, Semua operasi agregasi kecuali count(*) mengabaikan tuple dengan null values pada atribut yang diagregasi.

Nested SubQuery SQL menyediakan mekanisme untuk subquery bersarang (nesting of subqueries) Sebuah subquery adalah ekspresi selectfrom where yang bersarang di dalam query yang lain. Penggunaan subquery yang umum, dilakukan untuk menguji set membership, set comparisons, dan set cardinality.

Set Membership SQL menggambarkan kalkulus relasional untuk operasi yang mengizinkan mengecekan tuple untuk menentukan keanggotaan dalam relasi IN dan NOT IN Koneksi IN menguji keikutsertaan Koneksi NOT IN menguji ketidak ikutsertaan

Skema Basis Data

Contoh Query Tampilkan semua customer yang memiliki account dan loan di bank select distinct customer-name from borrower where customer-name in (select customer-name from depositor) Tampilkan semua customer yang memiliki loan tapi tidak memiliki account select distinct customer-name from borrower where customer-name not in (select customer-name from depositor)

Contoh Query Tampilkan semua customer yang memiliki account dan loan di cabang Perryridge select distinct customer-name from borrower, loan where borrower.loan-number = loan.loan-number and branch-name = Perryridge and (branch-name, customer-name) in (select branch-name, customer-name from depositor, account where depositor.account-number = account.account-number)

Set Comparison Contoh: Tampilkan semua cabang yang memiliki aset lebih dari aset pada cabang lain yang berlokasi di Brooklyn Query yang bisa dipakai: select distinct T.branch-name from branch as T, branch as S where T.assets > S.assets and S.branch-city = Brooklyn

Set Comparison SQL menawarkan variasi gaya berbeda dalam penulisan query lebih besar dari minimal satu > some select branch-name from branch where assets > some (select assets from branch where branch-city= Brooklyn )

Set Comparison Subquery select assets from branch where branch-city= Brooklyn ) Men-generate semua nilai aset dari cabang-cabang di Brooklyn Perbandingan > some bernilai TRUE jika aset dari tuple tersebut lebih besar dari aset setidaknya satu cabang di Brooklyn

Some

All

Contoh Query Tampilkan semua nama cabang yang memiliki aset lebih besar dari semua cabang yang berlokasi di Brooklyn. select branch-name from branch where assets > all (select assets from branch where branch-city = Brooklyn )

Pengujian Relasi Kosong Perintah exists mengembalikan nilai true jika argumen pada subquery tidak kosong. exists r r Ø not exists r r Ø

Contoh Query Tampilkan semua customer yang memiliki account di seluruh cabang di Brooklyn. select distinct S.customer-name from depositor as S where not exists ( (select branch-name from branch where branch-city = Brooklyn ) except (select R.branch-name from depositor as T, account as R where T.account-number = R.account-number and S.customer-name = T.customer-name)) Perhatikan bahwa X Y = Ø Û X Í Y Catatan: Query ini tidak dapat ditulis dengan menggunakan klausa = all atau sejenisnya

Pengujian Duplikasi Tuple Perintah unique menguji apakah suatu subquery memiliki duplikasi tuple pada hasilnya. Contoh: Tampilkan semua customer yang memiliki hanya satu account di cabang Perryridge select T.customer-name from depositor as T where unique (select R.customer-name from account, depositor as R where T.customer-name = R.customer-name and R.account-number=account.account-number and account.branch-name = Perryridge )

Contoh Query Tampilkan semua customer yang memiliki setidaknya dua account di cabang Perryridge select distinct T.customer-name from depositor T where not unique (select R.customer-name from account, depositor as R where T.customer-name = R.customer-name and R.account-number = account.account-number and account.branch-name = Perryridge )

View DBMS menyediakan suatu mekanisme untuk menyembunyikan detil data tertentu. View merupakan sebuah tabel semu / tabel lojik, dimana datanya berasal dari satu atau lebih tabel lain yang disebut sebagai tabel sumber. View biasa dibuat untuk memudahkan user menampilkan data. Untuk membuat view, gunakan perintah berikut: create view v as <query expression> dimana: v adalah nama view

Contoh View Sebuah view berisi cabang dan customernya create view all-customer as (select branch-name, customer-name from depositor, account where depositor.account-number = account.account-number) union (select branch-name, customer-name from borrower, loan where borrower.loan-number = loan.loan-number)

Contoh Query Tampilkan semua customer di cabang Perryridge select customer-name from all-customer where branch-name = Perryridge Perhatikan klausa FROM, relasi yang dilibatkan adalah view all-customer

Complex Query : Derived Relation Contoh: Tampilkan rata-rata saldo account di cabang yang memiliki rata-rata saldo account di atas $1200. select branch-name, avg-balance from (select branch-name, avg (balance) from account group by branch-name) as result (branch-name, avg-balance) where avg-balance > 1200 perhatikan kita tidak perlu menggunakan klausa having,karena kita menghitung hasil sementara pada klausa from, dan atribut result dapat digunakan langsung pada klausa where.

Complex Query : klausa With Klausa WITH memperbolehkan view didefinisikan secara lokal pada query. Contoh: tampilkan semua account dengan saldo maksimum with max-balance(value) as select max (balance) from account select account-number from account, max-balance where account.balance = max-balance.value

Contoh Query Tampilkan semua cabang dimana total deposit account lebih besar dari rata-rata total deposit account di semua cabang with branch-total (branch-name, value) as select branch-name, sum (balance) from account group by branch-name with branch-total-avg(value) as select avg (value) from branch-total select branch-name from branch-total, branch-total-avg where branch-total.value >= branch-total-avg.value