Bahasa Pada Model data Relasional
Sistem Basis Data 1 Pertemuan 5 dan 6 Aljabar Relasional dan SQL
Rogayah, ST.,MMSI Untuk 3DB01 dan 3DB04
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: a. Prosedural, yaitu pemakai memberi spesifikasi data apa yang dibutuhkan dan bagaimana cara mendapatkannya.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 diharapkan. Terbagi 2 :
1. Kalkulus Relasional Tupel
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
- Berbasis pada bahasa kalkulus relasional dan aljabar relasional
1. Aljabar Relasional
Structure Query Language
Structure Query Language (SQL) merupakan komponen bahasa relational database system.
SQL merupakan bahasa baku (ANSI/SQL), non procedural, dan berorientasi himpunan (set- oriented language). SQL dapat digunakan baik secara interaktif atau ditempelkan (embedded) pada sebuah program aplikasi
Structure Query Language
Komponen-Komponen SQLa. 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) :
Structure Query Language
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, – .
- – .
PRIMARY KEY (col1,……))
Structure Query Language
- Contoh : CREATE TABLE PERSONEL (REGNO CHAR(10) NOT NULL, NAME CHAR(45) NOT NULL, ADDRESS CHAR(45), BIRTH DATE NOT NULL WITH DEFAULT,
PRIMARY KEY (REGNO))
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 : nilai default disimpan pada saat record dimasukkan tanpa nilai yang ditentukan untuk kolom ini.
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 vi>Meningkatkan keamanan data
- Meningkatkan kemandirian data
- Penyederhanaan bagi end user (data yang sedikit, nama-
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 : CREATE VIEW VPERSON (REGNO, NAME) AS SELECT REGNO, NAME FROM PAUL.PERSONEL
Structure Query Language
- CREATE INDEX Fungsi : membuat index Sintaks :
CREATE [UNIQUE] INDEX indexname ON nama_table (nama_kolom)
- Contoh : CREATE UNIQUE INDEX PRSONIDX ON PERSONEL(REGNO)
Structure Query Language Fungsi : menghapus Tabel
4. DROP TABLE DROP TABLE tbname • Sintaks : DROP TABLE PERSONEL • Contoh : - semua record dalam tabel akan terhapus akan dihapus atau tidak akan berfungsi seperti :
Dengan perintah itu obyek lain yang berhubungan dengan tabel tersebut otomatis
- index dan view pada tabel akan hilang - deskripsi tabel akan hilang Contoh : TRUNCATE Mahasiswa; TRUNCATE nama_tabel; TRUNCATE / Menghapus isi Tabel
Structure Query Language Bentuk Lain: DROP TABLE [schema_name].table_name [ CASCADE (Pada Oracle) CONSTRAINTS ] [ PURGE ]; schema_name Parameter atau argumen: Nama tabel untuk menghapus dari database Oracle. table_name Nama skema yang memiliki tabel. PURGE Pilihan. Jika ditentukan, semua batasan integritas referensial akan turun juga. [ CASCADE CONSTRAINTS ] dan objek yang tergantung ditempatkan di recycle bin dan dapat kembali nanti, jika
recycle bin dan Anda tidak akan dapat memulihkan tabel. Jika tidak ditentukan, , tabel
Pilihan. Jika ditentukan, tabel dan objek yang tergantung akan dibersihkan dariStructure 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
Contoh : DROP INDEX PRSONIDX
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 FLASHBACK TABLE print_media TO BEFORE DROP RENAME TO print_media_old;
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 TABXStructure Query Language Contoh: ALTER TABLE nama_tabel MODIFY nama_kolom tipe_data_baru; Syntax: Syntax: ALTER TABLE daftar_jurusan MODIFY jumlah_mahasiswa MEDIUMINT; ALTER TABLE daftar_jurusan CHANGE alamat alamat_jurusan VARCHAR(100) Contoh:
ALTER TABLE nama_tabel CHANGE nama_kolom nama_kolom_baru tipe_data;
Contoh ubah nama tabel. ALTER TABLE <nama_tabel_lama>RENAME TO <nama_tabel_baru>; Syntax: RENAME TABLE nama_tabel_lama TO nama_tabel_baru; ALTER TABLE daftar_jurusan RENAME TO tabel_jurusan; atauStructure Query Language Syntax:
ALTER TABLE nama_tabel ADD nama_kolom_baru
tipe_data; Contoh: ALTER TABLE daftar_jurusan ADD ketua_jurusanVARCHAR(50); Syntax: ALTER TABLE nama_tabel DROP nama_kolom; Contoh:
ALTER TABLE daftar_jurusan DROP ketua_jurusan;
Structure Query Language 1. INSERT DATA MANIPULATION LANGUAGE
- 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 Sintaks : SELECT [DISTINCT] colname FROM tbname Fungsi : menampilkan record
4. SELECT
SELECT NIP,nama_dosen FROM daftar_dosen WHERE alamat='Padang'; [WHERE kondisi] SELECT nim, nama, AVG(nilai) as rata_rata FROM nilai GROUP BY nim; [GROUP BY kondisi] AVG(nilai)>80;
SELECT nim, nama, AVG(nilai) as rata_rata FROM nilai GROUP BY nim HAVING
[HAVING kondisi] SELECT * FROM daftar_dosen ORDER BY alamat ASC; SELECT * FROM mata_kuliah WHERE jumlah_SKS > 2 ORDER BY jumlah_SKS; [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 Sari';
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 SELECT MIN(stock) as ratastock from barang
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
GRANT SELECT, INSERT, UPDATE, DELETE ON CLUB
TO USER01
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 REVOKE ALL ON CLUB FROM PUBLIC
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.
Garis bawah (_) cocok satu karakter apapun.
Structure Query Language
SELECT Id, ProductName, UnitPrice, Package FROM Product WHERE ProductName LIKE 'Ca
%‘ SELECT Id, ProductName, UnitPrice, Package FROM Product WHERE ProductName LIKE 'Cha_' OR ProductName LIKE 'Chan_'