Anda di halaman 1dari 13

LECTURE NOTES

ISYS6513
Database System and Management

Week 7
SQL: Data Manipulation

ISYS6513 – Database System and Management


LEARNING OUTCOMES

LO3: Construct SQL that suit with the problem

OUTLINE MATERI (Sub-Topic):


1. Data Manipulation (Simple Queries)
2. Views

ISYS6513 – Database System and Management


ISI MATERI

Data Manipulation (Simple Queries)


Pada bagian ini kita kita akan membahas Perintah SQL dari Data Manipulation
Language (DML):
 SELECT berfungsi untuk menampilkan data dari database
 INSERT berfungsi untuk menambahkan data dari tabel pada database
 UPDATE berfungsi untuk merubah data dari tabel pada database
 DELETE berfungsi untuk menghapus data dari tabel pada database
Karena kesederhanaan dan kerumitan dari perintah SELECT dibandingkan perintah lainnya
maka kami lebih memfokuskan perintah SELECT dibandingkan perintah lainnya. Kami mulai
dari perintah SELECT sederhana dan akan ditingkatkan kerumitannya hingga menjadi sangat
rumit.
Contoh database yang digunakan adalah sebagai berikut:
Branch (branchNo, street, city, postcode)
Staff (staffNo, fName, IName, position, sex, DOB, salary, branchNo)
PropertyForRent (propertyNo, street, city, postcode, type, rooms,
rent, ownerNo, staffNo,
branchNo)
Client (clientNo, fName, IName, telNo, prefType, maxRent, eMail)
PrivateOwner (ownerNo, fName, IName, address, telNo, eMail, password)
Viewing (clientNo, propertyNo, viewDate, comment)

Simple Queries
Tujuan dari pernyataan SELECT adalah untuk mengambil dan menampilkan data dari
satu atau lebih tabel basis data. Perintah SELECT merupakan perintah yang kuat karena
mampu melakukan operasi relasional aljabar seperti pilihan, proyeksi, penggabungan dalam
sebuah kalimat. Bentuk utama
SELECT [DISTINCT | ALL] {* | [columnExpression [AS newName]] [, . . .]}
FROM TableName [alias] [, . . .]
[WHERE condition]

ISYS6513 – Database System and Management


[GROUP BY columnList] [HAVING condition]
[ORDER BY columnList]
Urutan pemrosesan perintah SELECT
FROM adalah tabel yang dipilih atau yang digunakan.
WHERE menyaring baris yang sesuai kondisi yang diinginkan
GROUP membentuk kelompok baris dengan nilai kolom yang sama
HAVING menyaring group yang sesuai dengan kondisi
ORDER menentukan urutan output
Contoh
SELECT*
FROM Staff;
Hasil

Gambar 7.1 Hasil dari Query SELECT* (Source: Connoly & Begg (2015)
Contoh dengan kolom tertentu
SELECT staffNo, fName, IName, salary
FROM Staff;

Gambar 7.2 Hasil dari Query SELECT pada kolom tertentu. (Source: Connoly & Begg
(2015)

ISYS6513 – Database System and Management


Contoh Menggunakan DISTINCT
SELECT DISTINCT propertyNo
FROM Viewing;

Gambar 7.3 Hasil Query SELECT DISTINCT (Source: Connoly & Begg (2015)

WHERE Clause
Pada contoh sebelumnya klausa menggunakan perintah SELECT untuk mengambil
data pada setiap baris pada tabel. Namun kadang dibutuhkan pembatasan dari baris tersebut
yaitu menggunakan WHERE yang diikuti kondisi yang diinginkan. 5 pembatas pencarian
 Comparison untuk membandingkan nilai antar ekspresi
 Range untuk melihat hasil perbandingan sesuai dengan settingan.
 Set membership untuk Test apakah nilai ekspresi sama dengan salah satu dari
serangkaian nilai.
 Pattern match melihat hasil perbandingan sesuai dengan settingan
 Null apakah kolom memiliki nilai null (tidak diketahui)
Contoh pencarian dengan perbandingan
SELECT staffNo, fName, IName, position, salary
FROM Staff
WHERE salary > 10000;

Gambar 7.4 Hasil Query SELECT Comparison (Source: Connoly & Begg (2015)

ISYS6513 – Database System and Management


Contoh pencarian dengan perbandingan dengan kondisi OR
SELECT *
FROM Branch
WHERE city = ‘London’ OR city = ‘Glasgow’;

Gambar 7.5 Hasil Query SELECT Comparison OR (Source: Connoly & Begg (2015)

Contoh Range (Between)


SELECT staffNo, fName, IName, position, salary
FROM Staff
WHERE salary BETWEEN 20000 AND 30000;

Gambar 7.6 Hasil Query SELECT Range Between (Source: Connoly & Begg (2015)

Contoh Search Condition (NOT/ NOT IN)


SELECT staffNo, fName, IName, position
FROM Staff
WHERE position IN (‘Manager’, ‘Supervisor’);

Gambar 7.7 Hasil Query SELECT Condition IN (Source: Connoly & Begg (2015)

ISYS6513 – Database System and Management


Contoh Like/Not Like
SELECT ownerNo, fName, IName, address, telNo
FROM PrivateOwner
WHERE address LIKE ‘%Glasgow%’;

Gambar 7.8 Hasil Query SELECT Like (Source: Connoly & Begg (2015)

Contoh IS NULL/NOT NULL


SELECT clientNo, viewDate
FROM Viewing
WHERE propertyNo = ‘PG4’ AND comment IS NULL;

Gambar 7.9 Hasil Query SELECT IS NULL (Source: Connoly & Begg (2015)

Contoh ORDER
SELECT staffNo, fName, IName, salary
FROM Staff
ORDER BY salary DESC;

Gambar 7.10 Hasil Query SELECT ORDER BY (Source: Connoly & Begg (2015)

ISYS6513 – Database System and Management


AGGREGATE FUNCTION
Kadang kita sering melakukan beberapa operasi matematika, standar ISO
mendefinisikan 5 fungsi operasi matematika:
 COUNT berfungsi untuk menghitung jumlah nilai dari kolom yang ditentukan.
 SUM berfungsi untuk menjumlah nilai dari kolom yang ditentukan
 AVG berfungsi untuk menghitung nilai rata-rata dari kolom yang ditentukan
 MIN berfungsi untuk mencari nilai terkecil dari kolom yang ditentukan
 MAX berfungsi untuk mencari nilai terbesar dari kolom yang ditentukan

Contoh Count
SELECT COUNT(*) AS myCount
FROM PropertyForRent
WHERE rent > 350;

Gambar 7.11 Hasil Query SELECT COUNT (Source: Connoly & Begg (2015)

Contoh Count and Sum


SELECT COUNT(staffNo) AS myCount, SUM(salary) AS mySum
FROM Staff
WHERE position = ‘Manager’;

Gambar 7.12 Hasil Query SELECT COUNT dan SUM (Source: Connoly & Begg (2015)

Contoh MIN, AVG dan MAX


SELECT MIN(salary) AS myMin, MAX(salary) AS myMax, AVG(salary) AS myAvg
FROM Staff;

ISYS6513 – Database System and Management


Gambar 7.13 Hasil Query SELECT MIN, AVG dan MAX (Source: Connoly & Begg (2015)

GROUPING RESULT
Kadang kita membutuhkan nilai sub total dibandingkan nilai keseluruhan secara
langsung. Kita dapat menggunakan klausa GROUP BY, sehingga menghasilkan baris
ringkasan tunggal untuk setiap grup yang kita kelompokkan.
Contoh Grouping
SELECT branchNo, COUNT(staffNo) AS myCount, SUM(salary) AS mySum
FROM Staff
GROUP BY branchNo
ORDER BY branchNo;

Gambar 7.14 Hasil Query SELECT GROUP BY (Source: Connoly & Begg (2015)

Grouping Terbatas (HAVING)


Klausa having dirancang untuk digunakan pada klausa GROUP BY untuk membatasi
kolom yang akan muncul pad ahasil akhir. Mirip dengan WHERE. Tetapi memiliki
perbedaan yaitu Klausa WHERE menyaring baris individu ke dalam tabel hasil akhir,
sedangkan grup filter HAVING masuk ke dalam tabel hasil akhir.
Contoh HAVING
SELECT branchNo, COUNT(staffNo) AS myCount, SUM(salary) AS mySum
FROM Staff
GROUP BY branchNo
HAVING COUNT(staffNo) > 1
ORDER BY branchNo;

ISYS6513 – Database System and Management


Gambar 7.15 Hasil Query Menggunakan HAVING (Source: Connoly & Begg (2015)

VIEWS
View adalah Hasil dinamis dari satu atau lebih operasi relasional yang beroperasi pada
relasi dasar untuk menghasilkan relasi lain. View adalah relasi virtual yang belum tentu ada
dalam database tetapi dapat diproduksi atas permintaan oleh pengguna tertentu.
Untuk pengguna basis data, view tampak seperti tabel asli, dengan kumpulan kolom
dan baris data yang ditentukan. Namun, tidak seperti tabel dasar, view tidak selalu ada di
database sebagai kumpulan nilai data yang disimpan. Sebaliknya, view didefinisikan sebagai
kueri pada satu atau lebih tabel dasar atau view. DBMS menyimpan definisi view dalam
database. Ketika DBMS bertemu referensi ke view, salah satu pendekatan adalah untuk
mencari definisi ini dan menerjemahkan permintaan menjadi permintaan yang setara terhadap
tabel sumber view dan kemudian melakukan permintaan yang setara. Proses penggabungan ini,
yang disebut resolution view, dibahas di dalamnya. Pendekatan alternatif, yang disebut
materialisasi view, menyimpan pandangan sebagai tabel sementara dalam basis data dan
mempertahankan tampilan concurrency saat tabel basis dasar diperbarui.

Create View
Format dari perintah view adalah:
CREATE VIEW ViewName [(newColumnName [, . . . ])]
AS subselect [WITH [CASCADED | LOCAL] CHECK OPTION]
View didefinisikan dengan menetapkan pernyataan SQL SELECT. Nama opsional
dapat ditugaskan untuk setiap kolom dalam view. Jika daftar nama kolom yang ditentukan,
harus memiliki jumlah item yang sama dengan jumlah kolom yang dihasilkan oleh subselect.
Jika daftar nama kolom dihilangkan, setiap kolom dalam tampilan mengambil nama kolom
yang sesuai dalam pernyataan subseleksi. Daftar nama kolom harus ditentukan jika ada
ambiguitas dalam nama untuk kolom. Ini dapat terjadi jika subseleksi menyertakan kolom

ISYS6513 – Database System and Management


terhitung, dan AS subclause belum digunakan untuk menamai kolom tersebut, atau
menghasilkan dua kolom dengan nama identik sebagai hasil gabungan.
Contoh
CREATE VIEW Manager3Staff
AS SELECT *
FROM Staff
WHERE branchNo = ‘B003’;

Gambar 7.16 Hasil View (Source: Connoly & Begg (2015)

Removing a View (DROP VIEW)


View dapat dihapus dari database dengan pernyataan DROP VIEW:
DROP VIEW ViewName [RESTRICT | CASCADE]
DROP VIEW menyebabkan definisi tampilan dihapus dari database. Sebagai contoh, kita
bisa menghapus tampilan Manager3Staff menggunakan pernyataan berikut:
DROP VIEW Manager3Staff;

ISYS6513 – Database System and Management


SIMPULAN

Kesimpulan dari materi ini adalah:


1. SQL adalah bahasa nonprocedural yang terdiri dari kata-kata bahasa Inggris standar
seperti SELECT, INSERT, dan DELETE yang dapat digunakan oleh profesional dan
non-profesional. SQL adalah bahasa standar formal dan de facto untuk mendefinisikan
dan memanipulasi database relasional.
2. Pernyataan SELECT adalah pernyataan yang paling penting dalam bahasa dan
digunakan untuk mengekspresikan suatu query. Ini menggabungkan tiga operasi aljabar
relasional Dasar Seleksi, Proyeksi, dan Gabung. Setiap pernyataan SELECT
menghasilkan tabel hasil kueri yang terdiri dari satu atau beberapa kolom dan nol atau
lebih baris.
3. Selain SELECT, DML SQL menyertakan pernyataan INSERT untuk menyisipkan satu
baris data ke dalam tabel tertentu atau untuk menyisipkan nomor baris yang berubah-
ubah dari satu atau beberapa tabel lainnya menggunakan subselect; pernyataan
UPDATE untuk memperbarui satu atau lebih nilai dalam kolom atau kolom tertentu
dari tabel tertentu; pernyataan DELETE untuk menghapus satu atau lebih baris dari
tabel tertentu.

ISYS6513 – Database System and Management


DAFTAR PUSTAKA

Connolly, T., & Begg, C. (2015). Database System A Practical Approach to Design,
Implemetation, and Management 6th Edition. Pearson

ISYS6513 – Database System and Management

Anda mungkin juga menyukai