Anda di halaman 1dari 57

Sistem Basis Data

SQL
SQL (Structured Query Language

• SQL (Structured Query Language) adalah bahasa yang


digunakan untuk mengakses basis data yang tergolong
relasional.
• Sesungguhnya SQL tidak terbatas hanya untuk mengambil
data (query), tetapi juga dapat dipakai untuk
menciptakan tabel, menghapus tabel, menambahkan data
ke tabel, menghapus data pada tabel, mengganti data
pada tabel, dan berbagai operasi yang lain.
Pemrograman didukung SQL
VF
VB
JDBC
ORACLE
DELPHI

JDBC
C/C++ Program
(CLI)
SQL
PHP

Static/Dynamic
Embedded SQL
Command Line DB2 Control
Access Center
SQL  DDL, DML, DCL

1. DDL (Data Defenition Language), yaitu bahasa yang


mempunyai kemampuan untuk mendefenisikan data
yang berhubungan dengan pembuatan dan penghapusan
objek seperti tabel, indeks, bahkan basis datanya
sendiri. Misalnya CREATE, DROP, ALTER, RENAME
2. DML (Data Manipulation Language), yaitu bahasa yang
berhubungan dengan proses manipulasi data pada tabel,
record. Misalnya : INSERT, UPDATE, SELECT, DELETE
3. DCL (Data Control Language), yaitu bahasa yang
berhubungan dengan pengendalian akses ke database.
Misalnya GRANT, REVOKE.
CONSTRAINTS

• Beberapa constraints yang sering digunakan :


• Primary Key
• Foreign Key
• Unique Key
• Null / Not Null
Primary key
Dalam membuat sebuah database, kita akan
menemukan sebuah record yang data nya tidak boleh
sama dengan record yang lain. Agar data tidak kembar
maka harus membuat sebuah kolom yang di
deklarasikan sebagai kunci primer (primary key),
Primary key hanya diperboleh kan dibuat satu kunci.
Foreign key

• Biasanya sebuah foreign key pada suatu tabel


merupakan primary key tabel yang lain.
• Constraint ini bertujuan untuk menetapkan
suatu kolom atau kombinasi dari beberapa
kolom menjadi foreign key dari sebuah tabel
unique

• Kolom Unique adalah sebuah bentuk kolom yang tidak mengizinkan adanya data kembar.
• Apabila pada proses input terdapat data kembar maka proses tersebut akan digagalkan atau
ditolak oleh database.

Syntax untuk menciptakan Kolom unik (Unique) adalah :


• CREATE TABLE nama_tabel ( field-1 type(length), field-2 type(length), …… ….(….),UNIQUE
(field-1,field-2));
• Contoh :
mysql> Create table pribadi (
-> kd_pribadi CHAR(3),
-> panggilan char(4),
-> nama varchar(35),
-> email varchar(50),
-> sex char(1),
-> UNIQUE (kd_pribadi,panggilan));
NOT NULL

• Jika sebuah kolom pada database tidak boleh


kosong, maka constraint NOT NULL diberikan
pada kolom tersebut.
1. DDL (Data Definition Language)

• DDL  CREATE, ALTER, DROP, MODIFY, ADD, RENAME


• Identifier padaSQL digunakan untuk mendefinisikan objek
dalam basis data, seperti nama tabel, nama view dan
nama kolom.
Identifier user defined SQL ditetapkan sbb:
• Terdiri atas karakter A..Z dan a..z angka 0..9 dan karakter
garis bawah (_)
• Panjang identifier tidak lebih dari 128 karakter
• Identifier harus diawali oleh sebuah huruf
• Identifier tidak boleh mengandung spasi
Tabel Tipe data ISO SQL
CREATE

Membuat database
 CREATE database pendaftaran;

 CREATE database test;

Melihat database yang ada pada MySQl dapat menggunakan SIntax


berikut ;
• SHOW DATABASES;
Membuat tabel
Untuk membuat sebuah tabel atau lebih, database harus
diaktifkan dulu karena tabel akan dimasukkan ke dalam
database yang akan diaktifkan. Sintax untuk
mengaktifkan Database adalah :
USE nama_database;
Setelah masuk ke dalam database anda dapat membuat
sebuah tabel atau lebih. Untuk membuat tabel dapat
menggunakan sintax dibawah ini :
• CREATE TABLE nama_tabel ( field-1 type(length),
field-2 type(length), field-3 type(length), …… ….(….));
mysql> create table data_diri (
-> no int(3),
-> nama varchar(35),
-> alamat varchar(60),
-> email varchar(40),
-> no_telepon varchar(15),
-> sex char(1));
berhasil dibuat, untuk melihat tabel yang ada pada database dapat
menggunakan SIntax berikut ;
SHOW TABLES;
ALTER

Alter digunakan untuk merubah (MODIFY),


menambah(ADD), menghapus(DROP) struktur
tabel.
• Sintax :
Alter Table nama_tabel [spesifikasi perubahan]
ALTER-ADD

Menambahkan field Jenis_kelamin pada


tabel mahasiswa
ALTER TABLE mahasiswa ADD Jenis_kel
text(1)
Menambahkan Primary key pada field
NIM di tabel mahasiswa
ALTER TABLE mahasiswa2
ADD NIM Primary Key(NIM)
ALTER - MODIFY

memodifikasi kolom yang ada dalam tabel.


Beberapa kolom juga dapat dimodifikasi
sekaligus.
Merubah ukuran dan tipe dari field NIM pada
tabel mahasiswa
ALTER TABLE mahasiswa MODIFY column NIM
char(6)
ALTER - DROP

Drop digunakan untuk menghapus tabel


sintax
Drop TABLE nama tabel
 Menghapus tabel MHS
Drop table mahasiswa
• Menghapus Field pada Tabel
Pada pembuatan database pasti terdapat kesalahan seperti
pada field tabel yang berlebihan dan lain-lain. Untuk
melakukan Penghapusan Field maka ALTER spesifikasi yang
digunakan adalah DROP. Sintax yang digunakan adalah :
ALTER TABLE nama_tabel DROP nama_field;
ALTER TABLE data_diri drop gol_darah;
RENAME

• Mengganti nama tabel


Query SQL untuk merubah nama tabel dengan
menggunakan RENAME,
• Sintax
RENAME TABLE tabel_lama TO tabel_baru;
Contoh :
rename table pribadi to data_pribadi;
2. DML (Data Manipulation Language)

• Data Manipulation Language merupakan bahasa yang


memungkinkan pengguna untuk mengakses dan mengubah data
yang sesuai dengan model datanya

Beberapa manfaat
 Pengambilan informasi yang disimpan dalam basis data
 Penyisipan informasi baru ke basis data
 Penghapusan informasi dari basis data
 Modifikasi informasi yang disimpan dalam basis data

• Query adalah perintah yang ditulis untuk mengambil informasi.


Bagian dari DML yang menangani pengambilan informasi ini
disebut bahasa query.
INSERT

Perintah INSERT digunakan untuk


menyisipkan, menambahkan data baru
kedalam tabel.
INSERT memiliki dua buah format penulisan
yakni :

INSERT INTO table_name VALUES (value1, value2, value3, ...);

INSERT INTO table_name (column1, column2, column3, ...) VALUES


(value1, value2, value3, ...);
Contoh 1 :
INSERT INTO table_name VALUES (value1, value2, value3, ...);

INSERT INTO tb_tamu VALUE(“'1','Boi


trimoyo','ujung
berung','bo_i77@yahoo.com','085613548789”,)

Contoh 2 :
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2,
value3, ...);

insert into tb_tamu (‘no’,’nama’,;alamat’,’email’,’no_telp’) values


(‘1','Boi trimoyo','ujung
berung','bo_i77@yahoo.com','085613548789');
SELECT

• memilih record yang akan ditampilkan berdasarkan


data pada table dalam basis data

• Sintak untuk menampilkan salah satu kolom yang ada


ditabel:
SELECT column1, column2, ...FROM table_name;
SELECT CustomerName,City FROM Customers;
• Sintak untuk menampilkan semua kolom yang ada
ditabel:
SELECT * FROM table_name;
SELECT * FROM customer;
UPDATE
Memperbarui isi data atau update
• UPDATE table_name SET column1 = value1, column2 =
value2, ... WHERE condition;
• Contoh :
update tb_tamu set nama='irfan nurhudin' where nama="Boi
trimoyo";

Data yang asalnya bernama Boi trimoyo berubah menjadi


irfan nurhudin yang dihasilkan dari query SQL UPDATE.
DELETE
`Unutk menghapus data,
• Sintax untuk menghapus semua data yang terdapat pada tabel :
DELETE FROM nama_tabel;
delete from tb_tamu where no='4';
• Sedangkan berikut sintax untuk menghapus data yang diinginkan
dari sebuah tabel :
DELETE FROM nama_tabel WHERE kondisi;
DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';
DCL (Data Control Language)

• merupakan perintah SQL yang digunakan untuk


melakukan pengaturan hak akses suatu objek
data para pengguna basis data.
• Secara sederhana, penulisan perintah SQL
pada kelompok ini terdiri dari
grant,
revoke
GRANT

• Perintah SQL ini digunakan oleh seorang administrator


basis data untuk memberikan hak aksesnya kepada
pengguna tertentu, agar dapat mengakses suatu table
dalam basis data.
• Hak akses tersebut adalah insert, delete, update, dan
select.
• Sintak :
GRANT hak_akses ON nama_tabel TO pengguna_tertentu;

• Pemberian hak akses INSERT dan DELETE pada tabel mahasiswa


kepada Budi
GRANT INSERT, DELETE ON mahasiswa TO Budi;
• Pemberian hak akses UPDATE pada tabel mahasiswa kepada Raisa
GRANT UPDATE ON mahasiswa TO Raisa;
REVOKE

• Perintah SQL ini digunakan oleh seorang


administrator basis data, untuk membatalkan /
menghentikan hak akses yang telah diberikan
kepada pengguna tertentu, agar tidak dapat
mengakses table dalam basis data.
• Sintak :
REVOKE hak_akses ON nama_tabel FROM pengguna_tertentu;
• Membatalkan hak akses INSERT dan DELETE pada tabel mahasiswa
kepada Budi
REVOKE INSERT, DELETE ON mahasiswa FROM Budi;
• Membatalkan hak akses UPDATE pada tabel mahasiswa kepada
Raisa
REVOKE UPDATE ON mahasiswa FROM Raisa;
STRUKTUR DATA

Sebuah ekspresi SQL dasar sebenarnya hanya terdiri atas


3 klausa, yaitu : select, from, dan where
1. Klausa select digunakan untuk menetkan daftar
atribut (field) yang diinginkan sebagai hasil query.
Atau SELECT digunakan untuk menampilkan tabel
secara keseluruhan, dengan perintah:
2. Klausa From digunakan untuk menetapkan relasi atau
tabel (gabungan tabel) yang akan ditelusuri selama
query data dilakukan.
3. Klausa Where digunakan untuk memilih dan
memanipulasi data, biasanya jalankan setelah
menjalankan sintaks SELECT.
SELECT

Syntax SQL :
SELECT * INTO mahasiswa_baru From mahasiswa

Contoh :
* Menampilkan Field dari 2 table
SELECT kdkursus, namakursus, kdkasir, nama INTO coba FROM
kursus, kasir
*Tampilkan data dari table detail_daftar dimana
kdpendaftarann hanya yang mengambil kdkursus Wed03 saja :
SELECT kdpendaftaran from detail_daftar where
kdkursus="Wed03"
*Tampilkan data dari table daftar dimana kdanggota ”M001” dan
kdkasir ”K001” saja:
SELECT kdanggota from daftar where kdanggota="M001" and
kdkasir="K001"
*Tampilkan data dari table daftar dimana kdanggota ”M002”
atau kdkasir ”K002” :
SELECT kdanggota from daftar where kdanggota="M002" or
kdkasir="K002"
*Tampilkan data dari table daftar dimana kdanggota bukan
”M002” atau kdkasir ”K002” :
SELECT * from daftar where not (kdanggota="M002" or
kdkasir="K001")
• Menampilkan Data dengan Perintah WHERE
WHERE yang artinya dimana, untuk menampilkan data
menggunakan perintah where (dimana) dapat menggunakan
perintah berikut :
SELECT * FROM nama_tabel WHERE kondisi
Contoh :
Data sebelumnya yang ada pada tabel tb_tamu seperti berikut

Maka akan menampilkan data menggunakan perintah where :


SELECT * FROM tb_tamu WHERE alamat=’ujung berung’;
Operator Logika And , Or Dan
Not

• Operator logika and dan or digunakan untuk


menggabungkan seleksi pada record yang
syaratnya lebih dari satu kondisi.
• Pada operator logika, not digunakan untuk
negasi dari kondisi tersebut.
AND

SELECT column1, column2,...FROM table_name


WHERE condition1 AND condition2 AND
condition3 ...;

Menampilkan customer city=’Berlin’ dan


Country=’Germany’

SELECT * FROM Customers WHERE Country='Germany'


AND City='Berlin';
OR

SELECT column1, column2,...FROM table_name WHERE condition1


OR condition2 OR condition3 ...;

Menampilkan customer city=’London’ atau Country=’Mexico’

SELECT * FROM Customers WHERE Country='Mexico' AND City='London';


NOT

SELECT column1, column2,...FROM table_name WHERE NOT


condition;

Menampilkan costomer yang country nya bukan jerman

SELECT * FROM Customers WHERE NOT Country='Germany';


Between Dan Not Between

• Between digunakan untuk mengolah data suatu


nilai dalam range tertentu.
• Not between merupakan negasinya, yaitu
mengolah suatu nilai diluar dari range yang telah
ditentukan.

• Sintak perintah Between:


SELECT column_name(s)FROM table_name
WHERE column_name BETWEEN value1 AND
value2;
CONTOH

• Menampilkan semua record dari tabel produk dengan harga 10000


sampai dengan 20000
SELECT * FROM produk WHERE harga BETWEEN 10000 AND
20000;
• Menampilkan semua record dari tabel produk dengan harga tidak
antara 10000 sampai dengan 20000
SELECT * FROM produk WHERE harga NOT BETWEEN 10000 AND
20000;
• Menampilkan semua mahasiswa dari tabel mahasiswa antara nama
‘Budi’ dan Raisa diurutkan berdasarkan nama:
SELECT * FROM mahasiswa WHERE nama NOT BETWEEN 'Budi'
AND 'Raisa' ORDER BY nama;
Like Dan Not Like

• Like digunakan untuk mencari suatu teks yang


sesuai berdasarkan kata depan (prefix), kata
tengah (infix), kata akhir (suffix).
• Not like merupakan pernyataan negasinya,
yaitu mencari suatu teks yang tidak sesuai
dengan kriteria like
• Pada operator ini terdapat penggunaan tanda persen (%) untuk mewakili satu atau
lebih kecocokan karakter, dan tanda underscore (_) untuk mewakili satu saja
kecocokan karakter yang dicari
LIKE

• SELECT column1,column2,...FROM table_name WHERE columnN


LIKE pattern;
• Menampilkan nama costumer yang berawalan huruf a:
SELECT * FROM Customers WHERE CustomerName LIKE 'a%’;
• Menampilkan nama customer yang ada huruf or diawal,
ditengah ataupun diakhir
SELECT * FROM Customers WHERE CustomerName LIKE '%or
%’;
• Menampilkan nama customer yang mempunyai huruf kedua ‘r’
SELECT * FROM Customers WHERE CustomerName LIKE '_r%';
NOT LIKE

• SELECT column1,column2,...FROM table_name


WHERE column NOT LIKE pattern;
• Menampilkan nama customer yang bukan
berawalan huruf a:
SELECT * FROM Customers WHERE
CustomerName NOT LIKE 'a%';
In Dan Not In

• In digunakan untuk mencari nilai kesesuaian


dengan suatu data tertentu yang ada dalam
suatu daftar / list nilai.
• Operator Not In merupakan negasi untuk nilai
yang tidak ada dalam daftar / list tersebut.
IN

• Sintak In:
SELECT column_name(s)FROM table_name WHERE column_name IN
(value1, value2, ...);
• Atau:
SELECT column_name(s)FROM table_name WHERE column_name IN
(SELECT STATEMENT);
• Memilih semua customer yang berada di Jerman dan Perancis
SELECT * FROM Customers WHERE Country IN ('Germany', 'France’);
• Memilih semua costumer yang berasal dari negara yang sama dengan
supplier
SELECT * FROM Customers WHERE Country IN (SELECT Country FROM
Suppliers);
NOT IN

• SELECT column_name(s)FROM table_name WHERE


column_name NOT IN (value1, value2,...);
• Memilih semua customer yang bukan dari Jerman
dan Perancis
SELECT * FROM Customers WHERE Country not
IN ('Germany', 'France');
Order By

• untuk melakukan pengurutan berdasarkan suatu field, yang


merupakan hasil dari penyataan select secara ascending atau
descending.
• Default pengurutan klausa order by adalah ascending.
• Sintak Order By:
SELECT column1, column2,...FROM table_name ORDER BY
column1, column2, ... ASC|DESC;
• Menampilkan seluruh record dari tabel cutomer dan diurutkan
berdasarkan nama costumer
SELECT * FROM Customers ORDER BY Country;
• Menampilkan seluruh record dari tabel cutomer dan diurutkan
berdasarkan nama costumer dengan urutan z – a
SELECT * FROM Customers ORDER BY CustomerName DESC;
GRUP BY

• untuk melakukan pengelompokan berdasarkan suatu field atau


beberapa field.
SELECT column_name(s) FROM table_name WHERE condition
GROUP BY column_name(s) ORDER BY column_name(s);
• Menampilkan jumlah customer di setiap Negara
SELECT COUNT(CustomerID), Country FROM Customers GROUP
BY Country;
• Menampilkan jumlah customer dari setiap Negara diurutkan dari bawah z- a.
SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;
Agregat

• Kelompok fungsi ini digunakan untuk suatu nilai,


dengan kualifikasi yang merupakan hasil dari
perhitungan sekelompok baris data atau table
• Fungsi
AVG
COUNT
MAX
MIN
SUM
• SELECT AVG(Quantity) FROM OrderDetails;
• SELECT COUNT(ProductID) FROM Products;
• SELECT MAX(Quantity) FROM OrderDetails;
• SELECT MIN(Quantity) FROM OrderDetails;
• SELECT SUM(Quantity) FROM OrderDetails
Operator Aritmatika

• Operator perkalian (*) Contoh: SELECT 30 * 20;


• Operator Diva atau hasil bagi (/) Contoh:
SELECT 30 / 10;
• Operator pengurangan ( -) Contoh: SELECT 30 -
10;
• Operator Penjumlahan ( + ) Contoh: SELECT 30
+ 10;
• Operator Mod atau Sisa bagi (%) Contoh:
SELECT 17 % 5;
HAVING

• HAVING ditambahkan ke SQL karena kata kunci WHERE


tidak dapat digunakan dengan fungsi agregat.
• HAVING digunakan untuk menentukan kondisi bagi GROUP
BY. Kelompok yang memenuhi HAVING saja yang akan
dihasilkan
• SELECT column_name(s)FROM table_nameWHERE
conditionGROUP BY column_name(s) HAVING condition
ORDER BY column_name(s);
Menampilkan jumlah customer di setiap negara. Hanya
sertakan negara dengan lebih dari 5 customer:
SELECT COUNT(CustomerID), Country FROM Customers
GROUP BY Country HAVING COUNT(CustomerID) > 5;
UNION

• untuk menggabungkan hasil-set dari dua atau lebih pernyataan


SELECT.
• Setiap pernyataan SELECT dalam UNION harus memiliki jumlah
kolom yang sama,
• Kolom juga harus memiliki tipe data yang sama, dan
• Kolom di setiap pernyataan SELECT juga harus berada dalam urutan
yang sama.
SELECT column_name(s) FROM table1 UNION SELECT
column_name(s) FROM table2;
Atau:
SELECT column_name(s) FROM table1 UNION ALL SELECT
column_name(s) FROM table2;
• Pernyataan SQL berikut memilih semua kota yang berbeda
(hanya nilai yang berbeda) dari "Customers" dan "Suppliers":
SELECT City FROM Customers UNION SELECT City FROM
Suppliers ORDER BY City;
• Pernyataan SQL berikut memilih semua kota (nilai duplikat juga)
dari "Customers" dan "Suppliers":
SELECT City FROM Customers UNION ALL SELECT City FROM
Suppliers ORDER BY City;
Lakukan instruksi berikut dan tampilkan outputnya
1. Tampilkan semua data yg terdapat pada tabel pegawai
2. Tampilkan nama dan tanggal lahir pegawai
3. Tampilkan semua pegawai yang gajinya melebihi
1.500.000
4. Tampilkan semua pegawai yang berjenis kelamin “P”
(Pria)
5. Tampilkan semua pegawai yang berjenis kelamin “W” dan
yang lahir sblm tahun 1990
6. Tampilkan data nip, nama_peg yg lahir antara tahun
1983 s.d 1990
7. Tampilkan semua pegawai wanita yang lahir setelah
tahun 1988
8. Tampilkan semua nama pegawai yang berawalan “A”
9. Tampilkan semua pegawai dan urutkan data berdasarkan
nama secara descending
10. Tampilkan nama pegawai yang tidak berasal dari
Surabaya

Anda mungkin juga menyukai