Sistem Basis Data 1
Pertemuan 5 dan 6
Aljabar Relasional dan SQL
Rogayah, ST.,MMSI
Bahasa Pada Model data Relasional
Menggunakan bahasa query, yaitu pernyataan yang
diajukan untuk mengambil informasi
Terbagi 2 :
1. Bahasa Query Formal
Bahasa query yang diterjemahkan dengan
menggunakan simbol-simbol matematis. Terbagi 2,
yaitu:
Bahasa Pada Model data Relasional
Contoh:
Aljabar Relasional
, yaitu dimana query diekspresikan dengan cara
menerapkan operator tertentu terhadap suatu tabel / relasi.
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
Bahasa Pada Model data Relasional
2. Bahasa Query Komersial
Bahasa Query yang dirancang sendiri oleh programmer
menjadi suatu program aplikasi agar pemakai lebih mudah
menggunakannya (user friendly).
•
Contoh :
QUEL
•
Berbasis pada bahasa kalkulus relasional
QBE
•
Berbasis pada bahasa kalkulus relasional
SQL
1. Aljabar Relasional
Structure Query Language
Structure Query Language
Komponen-Komponen SQL
a.
Data Definition Language
(DDL) :
•
Digunakan untuk mendefinisikan data dengan menggunakan
perintah : create, drop, alter.
b.
Data Manipulation Language
(DML) :
•
Digunakan untuk memanipulasi data dengan menggunakan
perintah : select, insert, update, delete.
Data Manipulation Language merupakan bagian terpadu bahasa SQL.
Perintah-perintahnya dapat dibuat secara interaktif atau ditempelkan
pada sebuah program aplikasi. Pemakai hanya perlu menentukan 'APA'
yang ia inginkan, DBMS menentukan 'BAGAIMANA' cara
mendapatkannya.
c.
Data Control Language
(DCL) :
•
Digunakan untuk mengontrol hak para pemakai data dengan
Structure Query Language
•
DATA DEFINITION LANGUAGE
1. CREATE TABLE
Fungsi : membuat tabel
Sintaks :
CREATE TABLE tbname
–
(col 1 data type data spec,
col 2 data type data spec,
–
.
–
.
Structure Query Language
•
Contoh :
CREATE TABLE PERSONEL
(REGNO CHAR(10) NOT NULL,
NAME CHAR(45) NOT NULL,
ADDRESS CHAR(45),
Structure Query Language
•
NULL
Spesifikasi NULL, NOT NULL, NOT NULL WITH DEFAULT
•
NULL :
dapat diinterpretasikan sebagai nilai yang tidak diketahui atau
tidak tersedianya suatu nilai. Null bukan berarti kosong (blank)
atau 0 (Nol)
•
NOT NULL :
pemakai atau program harus memberikan nilai-nilai pada saat
memasukkan record
•
NOT NULL WITH DEFAULT :
Structure Query Language
2. CREATE VIEW
•
Fungsi : membuat tabel view.
View merupakan bentuk alternatif penyajian data dari
satu atau lebih tabel. View dapat berisi semua atau
sebagian kolom yang terdapat pada tabel dimana kolom
tersebut didefinisikan.
•
Tujuan membuat view :
•
Meningkatkan keamanan data
•
Meningkatkan kemandirian data
Structure Query Language
•
Sintaks :
CREATE VIEW viewname
(column1, column2, ……..)
AS SELECT statement FROM tbname [WITH CHECK OPTION]
•
Keterangan :
•
View-name : nama view yang akan dibuat.
•
Column : nama atribut untuk view
•
Statement : atribut yang dipilih dari tabel basis data.
•
Tabel-name : nama tabel basis data.
Contoh :
Structure Query Language
•
CREATE INDEX
Fungsi : membuat index
Sintaks :
CREATE [UNIQUE] INDEX indexname ON
nama_table (nama_kolom)
•
Contoh :
Structure Query Language
4. DROP TABLE
Fungsi : menghapus Tabel • Sintaks :
DROP TABLE tbname
• Contoh :
DROP TABLE PERSONEL
Dengan perintah itu obyek lain yang berhubungan dengan tabel tersebut otomatis akan dihapus atau tidak akan berfungsi seperti :
- semua record dalam tabel akan terhapus - index dan view pada tabel akan hilang - deskripsi tabel akan hilang
TRUNCATE / Menghapus isi Tabel
TRUNCATE nama_tabel;
Structure Query Language
Bentuk Lain:
DROP TABLE [schema_name].table_name [ CASCADE
CONSTRAINTS ] [ PURGE ];
(Pada Oracle)
Parameter atau argumen:
schema_name
Nama skema yang memiliki tabel.
table_name
Nama tabel untuk menghapus dari database Oracle.
[ CASCADE CONSTRAINTS ]
Pilihan. Jika ditentukan, semua batasan integritas referensial akan turun juga.
PURGE
Pilihan. Jika ditentukan, tabel dan objek yang tergantung akan dibersihkan dari
Structure Query Language
5. DROP VIEW
•
Fungsi : menghapus view
Sintaks : DROP VIEW viewname
Contoh : DROP VIEW VPERSON
6. DROP INDEX
•
Fungsi : menghapus index Sintaks :
DROP
INDEX indexname
Structure Query Language
Flashback Table
Gunakan pernyataan Flashback untuk
memulihkan keadaan sebelumnya dari meja di
acara kesalahan manusia atau aplikasi.
FLASHBACK TABLE print_media TO BEFORE
DROP; atau
Structure Query Language
7. ALTER
•
Fungsi : merubah atribut pada suatu tabel
Sintaks :
ALTER TABLE tbname
MODIFY (nama_kolom tipe_kolom)
ADD (nama_kolom tipe_kolom [[before, nama_kolom]])
DROP (nama_kolom tipe_kolom)
Contoh : merubah Tabel TABX dengan menambah Field D.
ALTER TABLE TABX
Structure Query Language
Syntax:
ALTER TABLE nama_tabel MODIFY nama_kolom tipe_data_baru; Contoh:
ALTER TABLE daftar_jurusan MODIFY jumlah_mahasiswa MEDIUMINT;
Syntax:
ALTER TABLE nama_tabel CHANGE nama_kolom nama_kolom_baru tipe_data; Contoh:
ALTER TABLE daftar_jurusan CHANGE alamat alamat_jurusan VARCHAR(100)
Syntax:
ALTER TABLE <nama_tabel_lama>RENAME TO <nama_tabel_baru>; Contoh ubah nama tabel.
ALTER TABLE daftar_jurusan RENAME TO tabel_jurusan; atau
Structure Query Language
Syntax:
ALTER TABLE nama_tabel ADD nama_kolom_baru
tipe_data;
Contoh:
ALTER TABLE daftar_jurusan ADD ketua_jurusan
VARCHAR(50);
Syntax:
ALTER TABLE nama_tabel DROP nama_kolom;
Contoh:
Structure Query Language
DATA MANIPULATION LANGUAGE
1. INSERT
•
Fungsi : menambah baris (record) baru
Sintaks :
INSERT INTO tbname (col1, ...) VALUES (value1, ...)
Contoh :
INSERT INTO S (ID,Name,Jumlah,Kota)VALUES ('S1','Smith',20,'London');
Catatan :
Sintaks tersebut dapat digunakan jika jumlah kolom = jumlah nilai, tetapi jika
dalam tabel semua kolom akan diisi dapat digunakan sintaks berikut ini :
Sintaks :
INSERT INTO tbname VALUES (value1, value2, ...)
Nilai-nilai diisikan
sebanyak kolom yang terdapat di tabel tersebut.
Contoh :
INSERT INTO S VALUES ('S2','Jones,10,'Paris'); atau jika beberapa kolom saja:
Contoh :
Structure Query Language
3. DELETE
Fungsi : menghapus record
•
Sintaks :
DELETE FROM tbname WHERE
kondisi
•
Contoh :
DELETE FROM Mahasiswa WHERE jurusan =
'Teknik Informatika';
Structure Query Language
4. SELECT
Fungsi : menampilkan record
Sintaks : SELECT [DISTINCT] colname FROM tbname [WHERE kondisi]
SELECT NIP,nama_dosen FROM daftar_dosen WHERE alamat='Padang';
[GROUP BY kondisi]
SELECT nim, nama, AVG(nilai) as rata_rata FROM nilai GROUP BY nim;
[HAVING kondisi]
SELECT nim, nama, AVG(nilai) as rata_rata FROM nilai GROUP BY nim HAVING AVG(nilai)>80;
[ORDER BY kondisi]
SELECT
• [ALL | DISTINCT | DISTINCTROW ]
• [HIGH_PRIORITY]
• [STRAIGHT_JOIN]
• [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
• [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
• select_expr [, select_expr ...]
• [FROM table_references
• [WHERE where_condition]
• [GROUP BY {col_name | expr | position}
• [ASC | DESC], ... [WITH ROLLUP]]
• [HAVING where_condition]
• [ORDER BY {col_name | expr | position}
• [ASC | DESC], ...]
• [LIMIT {[offset,] row_count | row_count OFFSET offset}]
• [PROCEDURE procedure_name(argument_list)]
• [INTO OUTFILE 'file_name'
• [CHARACTER SET charset_name]
• export_options
• | INTO DUMPFILE 'file_name'
• | INTO var_name [, var_name]]
Structure Query Language
2. UPDATE
•
Fungsi : merubah record
Sintaks :
UPDATE tbname SET field = ekspresi
WHERE kondisi
UPDATE daftar_dosen SET no_hp
='085298710065‘ WHERE nama_dosen='Sabrina
Structure Query Language
Fungsi Perhitungan
•
COUNT : jumlah baris dan kolom
SELECT COUNT(*) FROM S
•
SUM : jumlah nilai dam kolom
SELECT SUM (QTY) FROM SP WHERE Pn = 'P2'
•
AVG : rata - rata nilai dalam kolom
SELECT AVG(stock) as ratastock from barang
•
MAX : nilai terbesar dalam kolom
SELECT MAX(stock) as ratastock from barang
•
MIN : nilai terkecil dalam kolom
Structure Query Language
•
DATA CONTROL LANGUAGE
1. GRANT
•
Fungsi : digunakan untuk memberikan izin akses
kepada user
Sintaks :
GRANT privileges ON tbname TO user
•
Contoh :
GRANT SELECT ON CLUB TO PUBLIC
Structure Query Language
2. REVOKE
•
Fungsi : digunakan untuk mencabut izin akses
kepada user
Sintaks :
REVOKE privileges ON tbname FROM user
•
Contoh :
REVOKE INSERT, UPDATE, DELETE ON CLUB FROM
USER01
Structure Query Language
SQL menyediakan dua karakter yang
memungkinkan Anda untuk membangun pola.
Kedua wildcard adalah persentase (%) dan garis
bawah (_).
Persentase (%) wildcard cocok dengan urutan
karakter apapun termasuk ruang.
Structure Query Language
SELECT Id, ProductName, UnitPrice, Package
FROM Product
WHERE ProductName LIKE 'Ca
%‘
SELECT Id, ProductName, UnitPrice, Package
FROM Product