Download SQL

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Bahasa Pada Model
Data Relasional
Ana Kurniawati
Agenda
1. Jenis Bahasa
2. Bahasa Formal
3. Bahasa Komersial
4. SQL
Bahasa Pada Model data Relasional
Bahasa Query Formal
Bahasa query yang diterjemahkan dengan
menggunakan simbol-simbol matematis.
Bahasa Query Komersial
Bahasa Query yang dirancang sendiri oleh
programmer menjadi suatu program
aplikasi agar pemakai lebih mudah
menggunakannya (user friendly).
Bahasa Formal
Terbagi 2, yaitu:
a. Prosedural, yaitu pemakai memberi
spesifikasi data apa yang dibutuhkan dan
bagaimana cara mendapatkannya.
Contoh : Aljabar Relasional ,
yaitu dimana query diekspresikan dengan
cara menerapkan operator tertentu terhadap
suatu tabel / relasi.
Prosedural
b. Non Prosedural, yaitu pemakai menspesifikasikan
data apa yang dibutuhkan tanpa menspesifikasikan
bagaimana untuk mendapatkannya.
Contoh :
Kalkulus Relasional, dimana query menjelaskan set
tuple yang diinginkan dengan cara menjelaskan
predikat tuple yang diharapkan.
Terbagi 2 :
• Kalkulus Relasional Tupel
• Kalkulus Relasional Domain
Bahasa Query Komersial
Contoh :
QUEL
Berbasis pada bahasa kalkulus relasional
QBE
Berbasis pada bahasa kalkulus relasional
SQL
Berbasis pada bahasa kalkulus relasional
dan aljabar relasional
SQL
7
Apakah SQL ?
SQl singkatan dari Structured Query
Language yang merupakan bahasa
komputer standar ANSI (American National
Standards Institute). Dengan SQL kita
dapat
Membuat basis data dan struktur tabel
Input, update, dan delete data dari tabel
Membuat query sederhana dan kompleks SQL
SQL tersedia dalam banyak versi
Ms.Access, DB2, MS SQL server, Oracle,
MySQL, Sybase,dll.
8
2 komponen SQL
 DDL untuk definisi struktur database.
 DML untuk pengambilan (retrieving) dan
perubahan (updating) data.
SQL cukup mudah dipelajari, karena:


Merupakan bahasa non-procedural – cukup
menspesifikasikan informasi apa yang dibutuhkan
daripada bagaimana mendapatkannya.
Pada dasarnya mempunyai format yang bebas.
Sejarah SQL(1)





Tahun 1974, D. Chamberlin (IBM San Jose
Laboratory) mendefinisikan bahasa yang
disebut ‘Structured English Query Language’
(SEQUEL).
Versi yang telah diperbaiki, SEQUEL/2,
ditemukan tahun 1976 tetapi namanya diubah
menjadi SQL untuk alasan hukum.
Sampai saat ini masih banyak yang menyebut
‘see-quel’, walaupun ejaan sesungguhnya
adalah ‘S-Q-L’.
IBM secara berturut-turut memproduksi
prototype DBMS yang disebut System R,
berdasarkan pada SEQUEL/2.
Akar dari SQL, adalah SQUARE (Specifying
Queries as Relational Expressions), dimana
mendahului proyek System R.
Sejarah SQL(2)
 Diakhir 70-an, ORACLE muncul dan mungkin
merupakan RDBMS komersil pertama yang
berbasis SQL.
 Pada tahun 1987, ANSI dan ISO
mempublikasikan standar awal untuk SQL.
 Pada tahun 1989, ISO mempublikasikan
tambahan yang mendefinisikan ‘Integrity
Enhancement Feature’.
 tahun 1992, revisi utama yang pertama
dilakukan pada standar ISO, dikenal sebagai
SQL2 atau SQL/92.
 Tahun 1999, SQL3 dikeluarkan dengan dukungan
untuk manajemen data berorientasi objek
(object-oriented data management).
Penulisan perintah SQL
 Statemen SQL terdiri dari reserved word
dan user-defined word.


Reserved word adalah bagian yang telah ditetapkan
pada SQL dan penulisannya harus sesuai dan tidak
bisa dipisah-pisahkan.
User-defined word dibuat oleh user dan
merepresentasikan nama-nama berbagai objek
database seperti relasi, kolom dan view.
 Kebanyakan komponen dari perintah
SQL bersifat case insensitive, kecuali
untuk data literal karakter.
Penulisan perintah SQL(2)
 Mudah dibaca dengan pengaturan baris
dan spasi :
 Setiap clause dimulai pada baris baru.
 Awal dari suatu clause harus berurut
dengan clause lainnya.
 Jika clause mempunyai beberapa bagian,
harus ditampilkan pada baris yang berbeda
dan diberi spasi pada awal clause.
 Menggunakan bentuk notasi Backus
Naur Form (BNF)
SQL Data Definition Language
Berfungsi untuk membuat atau
menghapus database dan mendefinisikan
objek-objek (table, index, view, stored
procedure, trigger) yang ada di dalam
database.
14
1.
CREATE
Digunakan untuk membuat database dan
objek-objek di dalam database
Membuat database
Create Database Namadatabase
Contoh
Create Database Kepegawaian
15
Mengaktifkan database yang telah dibuat
Use Namadatabase
Contoh
Use Kepegawaian
Membuat Table
Create Table NamaTable (Nama_field/kolom typedata
(size), …)
Contoh
Create Table pegawai (NIP char (8) not null primary key,
Nama varchar (25), Alamat varchar (50),telf varchar (15))
16
2. DROP
• Digunakan untuk menghapus database dan
objek-objek di dalam database
Menghapus database dan tabel
Drop Database Namadatabase
Drop Table Namatable
Contoh
Contoh
Drop Database Kepegawaian
Drop Table pegawai
17
3. ALTER
• Berfungsi untuk memodifikasi tabel
- menambah kolom/field
- menghapus kolom/field
- membuat primary key atau foreign key
18
Menambah Kolom/Field
Alter Table NamaTable add Namafield typedata (size)
Contoh
Alter Table Pegawai add status varchar (5)
Merubah Kolom/Field
Alter Table NamaTable Alter Column Namafield typedata (size)
Contoh
Alter Table Pegawai Alter Column status varchar (10)
19
Menghapus Kolom/Field
Alter Table NamaTable drop Namafield
Contoh
Alter Table Pegawai drop status
Menambah Primary Key
Alter Table NamaTable add primary key (namafield)
Contoh
Alter Table departement add primary key (kd_depart)
20
SQL Data Manipulation Language
Berfungsi untuk memanipulasi data
(menampilkan, menambahkan, dan
menghapus data)
21
1.
INSERT
Digunakan untuk Menambah Data dalam
satu record
Insert Into NamaTable (namafield1,namafield2,…)
Values (‘nilaifield1’,’nilaifield2’,…)
Contoh
Insert Into pegawai (nip,nama) values (’01’,’andika’)
Atau bisa juga bila kita mengingat seluruh bentuk field dalam tabel
Insert Into namatable values (‘nilaifield1’,’nilaifield2’,…)
22
2.
SELECT
Berfungsi untuk Menampilkan record data yang
ada dalam table
Select * from namatabel
Contoh
Select * from pegawai
(menampilkan data di semua field yang ada dalam table pegawai)
Simbol * bermaksud ‘all’ atau ‘semua’, dan digunakan untuk mewakili
semua atribut dalam satu tabel
23
Menampilkan sebagian field beserta
recordnya yang ada pada tabel
Select namafield,namafield from namatabel
Contoh
Select nip,alamat from pegawai
Menampilkan baris record tertentu
berdasarkan pilihan field yang diberikan
Select * from namatabel where namafield=‘nilaifield’
Contoh
Select * from pegawai where alamat=‘seutui’
24
Menampilkan satu field beserta recordnya yang
tidak akan berulang
Select distinct namafield from namatabel
Contoh
Select distinct alamat from pegawai
Baris-baris pendua atau berulang (duplicate) tidak akan dipaparkan.
Sekiranya kita memilih lebih dari satu atribut ketika menggunakan
DISTINCT, hasilnya adalah gabungan atribut-atribut yang unik
25
Menampilkan beberapa field beserta recordnya
yang sama tidak akan berulang
Select distinct namafield1,namafield2 from namatabel
Contoh
Select distinct alamat,status from pegawai
satu baris nip [03] tidak dipaparkan kerana berulang
26
Menggunakan Ungkapan Aritmatik dalam
Pernyataan +, -, /, *
Select namafield ungkapan aritmatik from namatabel
Contoh
Select nama,gaji/2 from pegawai
27
Kita boleh menamakan semula suatu
atribut (walaupun telah mempunyai
nama) dengan menggunakan AS
SELECT nama, gaji/2 AS gajisetengah
FROM pegawai
28
• Kita dapat membuat dan mengubah judul
field yang akan di tampilkan
Select namafield As namafieldbaru from namatabel
Contoh
Select nama As namalengkap from pegawai
menampilkan nama dari tabel pegawai dimana field nama
pada hasil SQL di ubah menjadi namalengkap
29
Menggunakan Simbol perbandingan <, >, =
untuk membuat pemilihan
Select namafield from namatabel where simbol perbandingan
Contoh
Select nama,gaji from pegawai where gaji > 1000000
Select nama,gaji from pegawai where gaji < 900000
Select nama,gaji from pegawai where gaji = 900000
30
Menggunakan operator Boolean Seperti And
OR dan Not
Select namafield1,namafield2 from namatabel where namafield1
operatorboolean namafield2
Contoh
Select alamat,gaji from pegawai where alamat=‘seutui’ and gaji >
1000000
Select alamat,gaji from pegawai where alamat=‘prada’ Or gaji >
900000
Select * from pegawai where alamat=‘seutui’ Or alamat=‘prada’
Select * from pegawai where Not alamat=‘seutui’
31
Operator Logik Boolean
Apabila AND digunakan, disemua syarat
sebelum dan setelah AND harus benar
untuk suatu tuple dipilih
Apabila OR digunakan, hanya salah satu
syarat sebelum atau sesudah OR harus
benar ataupun keduanya benar untuk
suatu tuple dipilih
Apabila NOT digunakan, yang bukan
syarat yang akan di tampilkan
32
Jarak Nilai Sebagai Kriteria
Kita boleh mengunakan pernyataan BETWEEN
Select namafield from namatabel where namafield between
nilai and nilai
Contoh
Select nama,gaji from pegawai where gaji between 850000
and 1000000
33
Operator In
Pencocokan data kondisi pencarian dengan salah satu
data yang ada pada suatu daftar nilai
Select namafield from namatabel where namafield In
(nilaifield1,nilaifield2)
Contoh
Select * from pegawai where alamat In (‘seutui’,’prada’)
Select nama,alamat from pegawai where alamat In
(‘seutui’,’prada’)
34
Operator Like
-Untuk pencarian data
-Bekerja pada type data char, varchar, text
Select namafield from namatabel where namafield Like
‘%ekspresi%’
Contoh
Select * from pegawai where alamat Like ‘%andi%’
(menampilkan semua klolom dari tabel pegawai yang
namanya mengandung kata andi)
35
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 (namafield)
As namafieldbaru from nama table
SQL menyediakan 5 fungsi
AVG : Rata-rata
MIN : Minimum
MAX : Maksimum
SUM : PenJumlahan isi record
COUNT : menjumlahkan data
36
Operasi MIN, MAX dan COUNT dapat
dilakukan dalam atribut yang mempunyai
jenis data rentetan (string) seperti Char,
Text, dan Varchar
Operasi AVG dan SUM hanya boleh
dilakukan keatas atribut-atribut yang
mempunyai jenis data numerik yang
berjenis int, bigint, decimal, bit, numeric,
real, smallint, tinyint.
37
a) SUM  Penjumlahan dalam satu kolom
Select sum (tunjangan) As jlh_tunj from pegawai
Menampilkan jumlah keseluruhan dari tunjangan yang diberikan
38
b) Avg  menghitung nilai rata-rata dalam satu kolom
Select Avg (gaji) As rata_gaji from pegawai
39
c) Min  Untuk mencari atau menampilkan
nilai terendah
Select min (gaji) As Gaji_min from pegawai
(Menampilkan gaji terendah dari tabel pegawai)
Select min (gaji) As Gaji_min from pegawai where
status=‘nikah’
(Menampilkan gaji terendah dari tabel pegawai yang statusnya
telah menikah)
40
d) MAX  Untuk mencari atau menentukan nilai tinggi
Select max (gaji) As Gaji_max from pegawai
(Menampilkan gaji terendah dari tabel pegawai)
Select max (gaji) As Gaji_max from pegawai where
status=‘nikah’
(Menampilkan gaji terendah dari tabel pegawai yang statusnya
telah menikah)
41
e) COUNT  Menghitung jumlah record yang sesuai
dengan kondisi
Select count (nip) As jlh_peg from pegawai
(Menampilkan jumlah seluruh pegawai dari tabel pegawai)
Select count (nip) As jlh_peg from pegawai where
status=‘nikah’
(Menampilkan jumlah seluruh pegawai dari tabel pegawai yang
statusnya telah menikah)
42
Pengelompokan Record (Group by)
Pada kondisi tertentu, sekumpulan record dapat
dikelompokkan berdasarkan satu atau lebih field yang
terdapat pada sebuah tabel atau query.
Select namafield1,namafield2 from namatabel Group by field
pengacu
Contoh
Select jeniskelamin,count (*) as jumlah from mahasiswa
group by jeniskelamin
JenisKelam jumlah
in
Laki-Laki
5
Perempuan
4
43
Hasil
Pengurutan (Order by)
Hasil dari query dapat di urutkan
berdasarkan pada satu atau lebih kolom.
nim
nama
Select namafield1 from namatabel where kriteria
order by namafield
2008 Ana
2009
Devi
2011
Kiki
Select nim,nama where jeniskelamin=’perempuan’
2010 July
order by nama
Select nim,nama where jeniskelamin=’perempuan’
order by nama asc
Select nim,nama where jeniskelamin=’perempuan’
order by nama desc
44
Pernyataan Having
-menampilkan kelompok-kelompok data tertentu
-having berbeda dengan where, pernyataan where digunakan
untuk memberikan criteria sebelum pengelompokan dan
melakukan penyaringan baris. Sedangkan having digunakan
untuk memberikan criteria setelah pengelompokan dilakukan,
menyaring kelompok, dan menentukan kondisi bagi Group By
Select namafield1,… from namatabel Group by field pengacu
Having kondisi
Contoh
Select barang, count (jumlah) As totalfaktur from Torder Group by
idbarang having idbarang=‘A009’
45
3.
UPDATE
Berfungsi untuk mengubah satu atau lebih data
yang terdapat pada satu atau lebih kolom tabel
Update namatabel set namafield=nilai where kondisi
Contoh
Update pegawai set alamat=‘pango’ where nip=’01’
46
Menukar record dalam Tabel
Update namatabel set namafield=nilai
Contoh
Update pegawai set gaji=gaji+12000
pernyataan diatas akan menambah ‘gaji’ yang awal dengan
+12000 dalam tabel pegawai
47
4.
DELETE
Berfungsi untuk menghapus satu atau beberapa
record dalam suatu tabel.
Delete from namatabel where kondisi
Contoh
Delete from pegawai where nip=’01’
48
TUGAS
Buat paper tentang perbandingan dua
buah RDBMS yang open source ataupun
berbayar.
Isi Paper
I. Cover
II. Daftar Isi
III. Pengenalan RDBMS A dan RDBMS B
IV. Hasil Perbandingan
V. Analisis perbandingan
VI. Daftar Pustaka
www.themegallery.com
Company Logo
Lanj..
Aturan Penulisan
1. Margin atas dan kiri : 4 cm, bawah dan
kanan : 3 cm
2. Spasi : 1,5
3. Font : Tnr
4. Size : Judul 14, isi : 12
5. Penomoran hal : bawah tengah
 Dikumpulkan berupa hardcopy dan file
presentasi hari Rabu 15 Maret 2013
www.themegallery.com
Company Logo
www.themegallery.com