Download Slide 1

Document related concepts
no text concepts found
Transcript
SQL
(STRUCTURED QUERY
LANGUAGE)
1
Siti Mukaromah,S.Kom
PENGANTAR DATABASE



Data
Nilai/value yang turut merepresentasikan deskripsi dari suatu
objek atau kejadian (event)
Informasi
Merupakan hasil dari pengolahan data dalam suatu bentuk yang
lebih berguna dan lebih berarti bagi penerimanya yang
menggambarkan suatu kejadian-kejadian (event) yang nyata
(fact) yang digunakan untuk pengambilan keputusan.
Sistem Informasi
Suatu sistem dalam suatu organisasi yang merupakan kombinasi
dari orang-orang, fasilitas, teknologi, media, prosedur-prosedur
dan pengendalian untuk mendapatkan jalur komunikasi penting,
memproses tipe transaksi rutin tertentu, memberi sinyal kepada
manajemen dan yang lainnya terhadap kejadian-kejadian
internal dan eksternal yang penting dan menyediakan suatu
dasar informasi untuk pengambilan keputusan
2
DATABASE

Database
Kumpulan dari item data yang saling berhubungan satu
dengan yang lainnya yang diorganisasikan berdasarkan
sebuah skema atau struktur tertentu, tersimpan di
hardware komputer dan dengan software untuk
melakukan manipulasi untuk kegunaan tertentu.

Mengapa Diperlukan Database
◦
◦
◦
◦
◦
Salah satu komponen penting dalam sistem informasi,
karena merupakan dasar dalam menyediakan informasi
Menentukan kualitas informasi : akurat, tepat pada
waktunya dan relevan. Informasi dapat dikatakan
bernilai bila manfaatnya lebih efektif dibandingkan
dengan biaya mendapatkannya.
Mengurangi duplikasi data (data redudancy)
Hubungan data dapat ditingkatkan (data relatability)
Mengurangi pemborosan tempat simpanan luar
3
JENJANG DATA
Characters : merupakan bagian data yang terkecil
Field : merepresentasikan suatu atribut dari record yang
menunjukkan suatu item dari data
Record : Kumpulan dari field membentuk suatu record.
File: File terdiri dari record-record yang menggambarkan
satu kesatuan data yang sejenis
Database : Kumpulan dari file / tabel membentuk suatu
database.
4
RELATIONAL DATABASE
Relational DataBase
Bentuk DB yang paling Fleksibel dan terbuka.
Biasanya digunakan pada local saja.
 Mempunyai 2 karakteristik :
 File dalam bentuk table yang persis dengan
file urut.
 Hubungan antar record didasarkan pada
nilai dari field kunci, bukan berdasarkan
alamat didalam record seperti pada model
hirarki dan jaringan.

5
BASISDATA TRANSAKSIONAL
Sebuah basisdata yang didasarkan pada
perubahan-perubahan kecil pada basisdata
 Fungsi utama :

Tambah data
 Edit data
 Hapus data


Basisdata client-server
Melayani pemakai dalam perusahaan tunggal.
 Basis data ini untuk jumlah pemakai dapat diatur.


Basisdata OLTP

Jumlah pemakai internet tidak dapat diatur.
6
PENGENALAN SQL
What SQL?
 Ketika seseorang user menginginkan untuk
memperoleh beberapa informasi dari sebuah file
database, dia bisa menggunakan sebuah query.
 Sebuah query adalah sebuah permintaan user
untuk memperoleh data atau informasi pada
kondisi tertentu.
 SQL adalah sebuah bahasa query yang
mengijinkan user menetapkan kondisinya.
7
BASIC STRUCTURE OF AN SQL QUERY
General
Structure
SELECT, ALL / DISTINCT, *,
AS, FROM, WHERE
Comparison
IN, BETWEEN, LIKE "% _"
Grouping
GROUP BY, HAVING,
COUNT( ), SUM( ), AVG( ), MAX( ), MIN( )
Display Order
ORDER BY, ASC / DESC
Logical
Operators
AND, OR, NOT
Output
INTO TABLE / CURSOR
TO FILE [ADDITIVE], TO PRINTER, TO SCREEN
Union
UNION
8
PENGERTIAN QUERY

Query adalah perintah-perintah untuk
mengakses data pada sistem basis data
9
SQL (1)
SQL adalah bahasa query baku untuk DBMS
 SQL diambil sebagai bakuan sejak tahun 1992
 Awalnya diterapkan pada DBMS besar seperti
Oracle dan Informix, sekarang juga pada DBMS
berbasis PC seperti dBASE dan FoxPro.
 SQL bersifat sebagai bahasa tingkat tinggi (high
level). Pemakai hanya menyebutkan hasil yang
diinginkan dan optimasi pelaksanaan query
dilakukan oleh DBMS.

10
SQL (2)
 Bahasa
SQL terbagi dalam dua bagian besar,
yaitu: DDL (Data Definition Language) dan DML
(Data Manipulation Language)
 DDL mendefinisikan struktur database, seperti
pembuatan database, pembuatan tabel dsbnya.
Contoh: CREATE DATABASE dan CREATE
TABLE.
 DML merupakan bagian untuk memanipulasi
basis data seperti: pengaksesan data,
penghapusan, penambahan dan pengubahan data.
DML juga dapat digunakan untuk melakukan
komputasi data. Contoh: INSERT, DELETE, dan
UPDATE.
11
SQL(3)

Bentuk Umum
SELECT ...... FROM ......
WHERE ......
SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ;
FROM tablename WHERE condition
12
SQL(4)
Tabel SUPPLIER
Tabel PARTS
13
SQL(5) : SELECT
SELECT CITY
FROM PARTS
14
SQL(6):SELECT
SELECT DISTINCT CITY
FROM PARTS
15
SQL(7):WHERE
 Klausa
WHERE digunakan untuk
menentuka predikat atau kriteria yang
harus di penuhi suatu relasi sebagai hasil
query.
 Klausa ini bersifat opsional, yaitu dapat
menggunakan klausa WHERE atau tidak.
 Jika tidak menggunakan klausa WHERE,
maka query dilakukan untuk semua
tuples pada tabel yang disebutkan pada
klausa FROM.
16
SQL(8):WHERE
SELECT *
FROM SUPPLIER
WHERE STATUS = 20
17
SQL(9):WHERE
SELECT *
FROM SUPPLIER
WHERE CITY = ‘Semarang’
18
SQL(10):WHERE
Predikat pada klausa WHERE dapat
dikombinasikan dengan operator relasi
lainnya, seperti <, <=, >, >=, <>, dan
operator logika, seperti AND, OR, NOT
SELECT *
FROM SUPPLIER
WHERE STATUS = 30 AND CITY = ‘Yogyakarta’
19
SQL(11):WHERE
Klausa WHERE dapat digunakan untuk
melakukan query dengan predikat yang
berbentuk suatu range nilai tertentu, yaitu
dengan menambahkan klausa BETWEEN.
SELECT *
FROM SUPPLIER
WHERE STATUS BETWEEN 20 AND 30
20
SQL(12):WHERE
Untuk atribut yang bertipe string dapat
dilakukan suatu pencarian dengan pola tertentu,
yaitu dengan memanfaatkan karakter ‘%’ atau ‘_’
(underscore) dan menambahkan klausa LIKE
pada klausa WHERE :
 ‘%’ untuk semua substring
 ‘_’ untuk semua karakter pada posisi yang
sesuai.

21
SQL(13):WHERE
SELECT *
FROM SUPPLIER
WHERE STATUS LIKE ‘S%’
22
SQL(14):WHERE
SELECT *
FROM SUPPLIER
WHERE STATUS LIKE ‘_o%’
23
FROM(1)
Klausa FROM digunakan untuk menentukan
tabel yang akan dijadikan sebagai sumber untuk
pencarian data.
 Dalam melakukan query tidak hanya terbatas
pada satu tabel, tetapi sering kali dibutuhkan
untuk merelasikan beberapa tabel sekaligus.

24
FROM(2)

Menampilkan semua SUPPLIER yang
melakukan SHIPMENT dengan jumlah
kuantitasnya > 300
SELECT *
FROM SUPPLIER, SHIPMENT
WHERE SUPPLIER.SCODE=SHIPMENT.SCODE
AND SHIPMENT.QTY > 300
25
FROM(3)
SELECT SU.SNAME
FROM SUPPLIER SU, SHIPMENT SH
WHERE SU.SCODE=SH.SCODE AND SH.QTY > 300
26
FROM(4)
SELECT SU.SNAME AS NAMA_SUPPLIER
FROM SUPPLIER SU, SHIPMENT SH
WHERE SU.SCODE=SH.SCODE AND SH.QTY > 300
27
PENGURUTAN HASIL QUERY(1)
 Untuk
menampilkan hasil query
berdasarkan urutan atribut tertentu,
maka dapat dilakukan dengan
menambahkan klausa ORDER BY.
 Default yang diberikan klausa ORDER
BY adalah urutan secara menial (ASC),
tetapi untuk merubah menjadi urutan
secara menurun, dapat dilakukan dengan
menambahkan klausa DESC setelah
nama atribut.
28
PENGURUTAN HASIL QUERY(2)
SELECT *
FROM SUPPLIER
ORDER BY STATUS DESC
29
PENGURUTAN HASIL QUERY(3)
SELECT SNAME
FROM SUPPLIER
WHERE STATUS = 30
ORDER BY SNAME DESC
30
FUNGSI AGREGASI(1)
Dalam melakukan suatu query, terkadang
dibutuhkan untuk melakukan perhitungan jumlah
tuples, total nilai suatu atribut, nilai atribut
terbesar atau terkecil, dan menentukan nilai ratarata suatu atribut.
 Untuk memenuhi kondisi-kondisi di atas, SQL
sebagai bahasa query menyediakan fungsi-fungsi
agregasi.

31
FUNGSI AGREGASI(2)





AVG
Untuk memperoleh nilai rata-rata suatu atribut yang
bertipe numerik.
MIN
Untuk memperoleh nilai terkecil suatu atribut yang
bertipe numerik.
MAX
Untuk memperoleh nilai terbesar suatu atribut yang
bertipe numerik.
SUM
Untuk memperoleh nilai total suatu atribut yang
bertipe numerik.
COUNT
Untuk memperoleh nilai banyaknya tuples.
32
FUNGSI AGREGASI(3)
Menghitung banyaknya tuples pada tabel
SHIPMENT
 Perintah SQL-nya adalah :
SELECT COUNT(*)
FROM SHIPMENT

33
FUNGSI AGREGASI(4)
Menampilkan total berat (WEIGHT) untuk
semua PARTS
 Perintah SQL-nya adalah :

SELECT SUM(WEIGHT)
FROM PARTS
34
FUNGSI AGREGASI(5)
Menghitung rata-rata kuantitas (QTY) untuk
semua SHIPMENT
 Perintah SQL-nya adalah :

SELECT AVG(QTY)
FROM SHIPMENT
35
FUNGSI AGREGASI(6)
Menentukan nilai STATUS yang terbesar untuk
SUPPLIER
 Perintah SQL-nya adalah :

SELECT MAX(STATUS)
FROM SUPPLIER
36
FUNGSI AGREGASI(7)
Menentukan nilai kuantitas (QTY) yang terkecil
untuk SHIPMENT
 Perintah SQL-nya adalah :

SELECT MIN(QTY)
FROM SHIPMENT
37
FUNGSI AGREGASI(8)

Fungsi agregasi dapat juga dikombinasikan
dengan klausa GROUP BY, untuk menyatakan
pengelompokan tuple hasil query.
38
FUNGSI AGREGASI(9)

Menampilkan banyaknya tuple dan kuantitas
(QTY) untuk SHIPMENT yang dikelompokan
berdasarkan PARTS (PCODE) dengan urutan
secara menaik:
SELECT PCODE, COUNT(*),
SUM(QTY)
FROM SHIPMENT
GROUP BY PCODE
ORDER BY PCODE
39
FUNGSI AGREGASI(10)
40
NILAI NULL (1)
 Nilai
NULL pada suatu query dapat
diperlakukan secara khusus, yaitu dapat
juga diperlakukan untuk query
menggunakan ekspresi SQL.
 Misalkan, menampilkan atribut CITY
dari tabel SUPPLIER yang masih kosong:
SELECT DISTINCT SCODE
FROM SUPPLIER
WHERE CITY is NULL
41
NILAI NULL (2)
SELECT COUNT(*)
FROM SUPPLIER
WHERE STATUS is NOT NULL
42
MANIPULASI DATA (DML)
Operasi-operasi manipulasi data terdiri dari
penambahan tuple baru, pengubahan nilai
atribut, dan penghapusan tuple pada suatu
tabel.
 SQL juga dilengkapi dengan sejumlah ekspresi
dan perintah untuk melakukan manipulasi data.

43
PENAMBAHAN TUPLE (1)
INSERT INTO
VALUES
t A1 , A2 ,..., An 
V1 ,V2 ,...,Vn 
Misalkan, untuk menambahkan tuple pada tabel SUPPLIER
Perintah SQL-nya adalah :
INSERT INTO SUPPLIER
VALUES ('S6','YOSHINTA',20,'Semarang')
Tuple adalah terminologi relasional formal untuk baris atau
record. Satu tuple = satu baris = satu record.
44
PENAMBAHAN TUPLE (2)
45
PENAMBAHAN TUPLE (3)

Untuk nama atribut yang tidak disebutkan pada
perintah INSERT, atribut-atribut tersebut akan
di isi dengan nilai NULL
INSERT INTO SUPPLIER (SCODE,SNAME,STATUS)
VALUES ('S7','MIRANTHI',20)
46
PENAMBAHAN TUPLE (4)
47
PENGUBAHAN TUPLE(5)
Update t
Set assignment
[Where P]
UPDATE SUPPLIER
SET CITY = 'Purwodadi'
WHERE SCODE = ‘S6’
48
PENGUBAHAN TUPLE(6)
49
PENGHAPUSAN TUPLE(1)
Delete From T
[Where P]
Misalkan, untuk menghapus SUPPLIER dengan nama
YOSHINTA :
Perintah SQL-nya adalah :
DELETE FROM SUPPLIER
WHERE SNAME = ‘YOSHINTA’
50
DDL (DATA DEFINITION LANGUAGE)
DDL untuk menspesifikasi skema basis data.
 DDL men-generate table-table yang tersimpan
dalam basis data pada data dictionary.
 Data dictionary berisi metadata (data tentang
data)

Database schema
 Data storage and definition language
 Bahasa yang digunakan dalam menspesifikasi
struktur penyimpanan dan metode akses pada sistem
basis data

51
DML (DATA MANIPULATION
LANGUAGE)



DML untuk mengekspresikan query basis data.
Bahasa yang digunakan untuk pengaksesan dan
manipulasi data. Disebut juga dengan query basis
data
DML terdiri dari 2 jenis :
 High Level (Non Procedural)
user menentukan data apa yang dibutuhkan
namun tanpa menyebutkan bagaimana
mendapatkan data tersebut.
 Low Level (Procedural)
user menentukan data apa yang dibutuhkan dan
bagaimana mendapatkan data tersebut.
52
DDL (1)
 Perintah SQL untuk definisi data:
 CREATE untuk membentuk basis data,


table
atau index
ALTER untuk mengubah struktur table
DROP untuk menghapus basis data, table
atau index
 CREATE DATABASE
 Untuk membentuk basis data
 Sintaks: CREATE DATABASE

nama_database
Contoh: CREATE DATABASE COMPANY
 CREATE TABLE
 Untuk membentuk table dari basis data
 Untuk menyebutkan spesifikasi dan batasan
atribut
53
DDL(2)









Untuk domain tipe data meliputi sebagai berikut :
char(n)
Tipe string dengan panjang tetap sebesar n karakter (jika panjang
karakter yang diisikan kurang dari n, maka sisanya di isi dengan
spasi)
varchar(n)
Tipe string dengan panjang fleksibel, tetapi maksimal sebanyak n
karakter.
int atau integer
Tipe integer 2 byte.
Smallint
Tipe integer 1 byte.
real, double, precision
Tipe pecahan decimal floating point.
float(n)
Tipe pecahan decimal floating point dengan presisi n digit.
date
Tipe tanggal (terdiri 4 digit tahun, bulan, dan tanggal).
54
time
Tipe waktu (terdiri dari jam, menit, dan detik)
DDL(3)
Misalkan, untuk membuat tabel SUPPLIER :
 Perintah SQL-nya adalah :

CREATE TABLE SUPPLIER
( SCODE char(3),
SNAME varchar(20),
STATUS int,
CITY varchar (15))
55
DDL(4)
CREATE TABLE SUPPLIER
( SCODE char(3) NOT NULL,
SNAME varchar(20),
STATUS int,
CITY varchar (15),
PRIMARY KEY (SCODE))
56
DDL(5)

Jika suatu tabel memiliki indek secara komposit
(gabungan), maka dilakukan dengan cara
menuliskan semua atribut pada kalusa
PRIMARY KEY
CREATE TABLE SUPPLIER
( SCODE char(3) NOT NULL,
SNAME varchar(20) NOT NULL,
STATUS int,
CITY varchar (15),
PRIMARY KEY (SCODE,SNAME))
57
DDL(6)

Keberadaan tabel yang telah dibuat dapat
dibatalkan atau di hapus dengan menggunakan
perintah SQL :
DROP TABLE t
DROP TABLE SUPPLIER
58
ARSITEKTUR APLIKASI
Two-tier : client menggunakan sql server untuk
komunikasi dengan basisdata.
 Three-tier : pada aplikasi web dan aplikasi
menggunakan “middleware”

59