2 Juli 2012

Bahasa Query formal dan Bahasa Query KOMERSIL beserta contoh sintaknya

Bahasa Query Formal
Aljabar relational
Adalah kumpulan operasi terhadap relasi, dimana disetiap operasi menggunakan satu atau lebih relasi untuk menghasilkan relasi baru.
Operator yang digunakan:

Operator Himpunan
o   Union atau gabungan (U)
o   Intersection atau irisan (∩)
o   Diference           
o   Cartesian produk
Operator relational
o   Restrick (σ) adalah pemilihan tupelo ata record
o   Project (π) adalah pemilihan Field atau attribute
o   Divide (÷) adalah membagi
o   Join (ө) adalah menggabungkan






Bahasa Query Komersial


Stuktur Query Language (SQL)
Sql dipublikasikan oleh E.F Codd (1970) mengenai model relation, kemudian pada tahun 1974 D. Camberline dan R.F.Boyle mengembangkan sql untuk manipulasi dan ekstraksi data dari basis data ke relational.
Sasaran
a.       Menciptakan basis data dan struktur relasi
b.      Melakukan manajemen data tingkat dasar
c.       Membentuk query sederhana dan kompleks
d.      Melakukan tugas-tugas dengan seminimal mungkin dengan menggunakan struktur danperintah yang mudah dipelajari
e.      Hrus portable
Jenis Sql
§  Interactive SQL
§  Dinamic SQL
§  Static SQL
Subdivisi SQL
1.       DDL (data definition language)
Query-query ini digunakan untuk mendefinisikan struktur skema basis data.
2.       DDL (data manipulation language)
Query-query ini digunakan untuk manajemen  data dalam basis data
3.       DCL (data control language)
Query-query ini dihubungkan dengan hak akses dan wewenang
Pengelompolam Statemen SQL
1.       Data definition language (DDL)
CREATE DATABASE
CREATE TABLE
CREATE INDEX
CREATE VIEW
ALTER TABLE
DROP DATABASE
DROP TABLE
DROP INDEX
DROP VIEW
2.       Data Manipulation Language (DML)
INSERT
SELECT
UPDATE
DELETE
3.       Data Acces
GRANT = member hak akses
REVOKE = mencabut hak akses
4.       Data Intergriti
RECOVER TABLE
5.       Auxilari
SELECT INTO OUTFILE
LOAD
RENAME TABLE
KHUSUS DATA DEFINITION LANGUAGE (DDL)
A.      CREATE
1.       Pembuatan database
Nama database adalah nama suatu kejadian dapat juga berupa nama perusahaan atau organisasi
2.       Pembuatan table
CREATE TABLE nama_tabel (nama_kolom1 TIPE_DATA_KOLOM1, nama_kolom2 TIPE DATA_KOLOM2,…);
Contoh: Buatlah struktur table dengan nama table mahasiswa  dengan data nim char(8) nama  char(25), alamat  char(30). 
Maka statemen querynya adalah
CREATE TABLE mahasiswa(nim char(8), nama char(25), alamat  char(30));
3.       Pembuatan index
Sintaks:
CREATE [UNIQUE] INDEX nama_index ON nama_tabel (nama_kolom);
Contoh:
Buatlah index  data mahasiswa berdasarkan NIM dengan nama mhsidx dimana NIM tidak boleh sama
CREATE UNIQUE INDEX mhsidx ON mahasiswa(nim);
4.       Pembuatan View
Sintaks:
CREATE VIEW nama_view [(nama_kolom1,…)] AS SELECT statement [WITH CHECK POINT];
Contoh: buat VIEW dengan nama mhsview yang berisi semua data mahasiswa
CREATE VIEW mhsview AS SELECT *FROM mahasiswa;
B.      Menghapus (DROP)
1.       Menghapus database
Sintak: DROP DATABASE nama_database;
2.       Menghapus table
Sintak: DROP TABLE nama_tael;
3.       Menghapus index
Sintaks: DROP INDEX nama_index;
4.       Menghapus View
Sintak: DROP VIEW nama_view;
C.      Alter Table (mengubah struktur table)
ALTER TABLE nama_table
ADD nama_kolom jenis_kolom
                [FIRST | AFTER nama_kolom]
CHANGE [COLUM N] old_nama new_nama
MODIFY nama_kolum jenis_kolum,…
RENAMAE newnama_tabel
Contoh:
1.       Tambahkan kolum jkel dengan panjang 1 char pada table mahasiswa
ALTER TABLE mahasiswa ADD jkel CHAR(1);

2.       Ubah kolum matakuliah menjadi 30 char
ALTER TABLE matakulia MODIFY COLUMN matakuliah CHAR(30);
3.       Hapus kolum jkel dari table mahasiswa
ALTER TABLE mahasiswa DROP jkel;

DATA MANIPULATION LANGUAGE
1.       INSERT
Sintak : INSERT INTO nama_tabel[(nama_kolom1,…)]
Contoh:
Masukan data matakuliah berkas akses dengan kode KK22  dan besarnya 2
Sintak: INSERT INTO matakuliah VALUES(‘KK22’,’BERKAS AKSES’,’2’);
2.       UPDATE
Sintaks: UPDATE nama_tabel SET nama_kulum = value1 WHERE kondisi;
Contoh: ubah alamat menjadi “depok” untuk mahasiswa yangmempunyai NPM “50096487”
Sintak: UPDATE MHS SET alamat=’depok’ where NPM=’50096487’;
3.       DELETE
Sintak: DELETE FROM nama_tabel WHERE kondisi;
Contoh: hapus data nilai mata kuliah “KK021” bagi mahasiswa yang mempunyai  NPM “10296832”
Sintak: DELETE FROM NILAI WHERE KDMK=’KK021’ AND NPM=’10296832’;

JOIN
1.       JOIN atau INNER JOIN
Menggabungkan 2 tabel dimana diantara dua table datanya berseseuaian
2.       LEFT JOIN atau LEFT OUTER JOIN
Menggabungkan 2 tabel dimana diantara dua table datanya bersesuaian dan juga semua record sebelah pada table sebelah kiri
3.       RIGHT JOIN atau RIGHT OUTEH JOIN
Menggabungkan 2 tabel dimana diantara 2 tabel datanya bersesuaian dan juga semua record pada table sebelah kanan


DATA AKSES
1.       GRANT
Sintak: GRANT hak_akses ON nama_database TO  nama_pemakai [IDENTIFIED BY] [PASSWORD] ‘password’ [WITH GRANT OPTON];

GRANT hak_akses ON [nama_database] nama _tabel TO  nama_pemakai [IDENTIFIED BY] [PASSWORD] ‘password’ [WITH GRANT OPTON];
Contoh: berikan hak akses kepada Yusuf untuk menampilkan nilai final test pada table nilai
Sintak : GRANT SELECT (FINAL) ON NILAI TO Yusuf;         
2.       REVOKE
Sintak : REVOKE hak_akses ON nama_database FROM  nama_pemakai;
                REVOKE hak_akses ON nama_tabel FRIM nama_pemakai
Contoh: tarik kembali hak akses daru Yusuf untuk melihat nilai final test
Sintak : REVOKE SELECT (FINAL) FROM Yusuf;

DATA INTERGRITY
RECOVER TABEL
Sintak : RECOVER TABLE nama_tabel
Contoh: kembalikan kembali data mahasiswa seperti pada saat sebelum terjadi kerusakan
Sintak: RECOVER TABLE mahasiswa;


AUXILIARY
1.       SELECT…INTO OUTFILE ‘filename’
Sintak ini digunakan untuk mengekspor data dari table ke file lain
Sintak:  SELECT … INTO OUTFILE ‘filename’ [FIELD | COLUMNS] [TERMINATED BY ‘string] [[OPTIMALLY]ENCLOSED BY ‘char’]
[[ESCAPED BY ‘char’]];

Contoh: Ubah semua data mahasiswa ke bentuk ascii dan disimpan kebentuk teks di directory /home/yusuf dengan pemisah antar kolum ‘|’
Sintak:  SELECT * FROM MAHASISWA
              INTO OUTFILE “home/yusuf/teks” FIELD TERMINATED BY ‘|’;
2.       LOAD
Sintak query ini digunakan untuk mengimpor data dari file lain  ke tabel.
Sintak : LOAD DATA INFILE ‘nama_path’ INTO TABLE nama_tabel [nama_kolom];
                        [FIELD | COLUMNS] [TERMINATED BY ‘string’] [OPTIONALY] ENCLOSED BY ‘char’] [escaped by ‘char’]];

Contoh: memasukan data dari file teks yang berada pada directory “home/yusuf/teks” kedalam tabel MHS_2 Dimana pemisah antara kolom dalam tabel adalah tab (\t)
        LOAD FROM “/home/yusuf/teks” INTO MHS_2 FIELD TERMINATED BY ‘\t’;
3.       RENAME TABEL
RENAME TABLE nama_tabel nama_lama TO nama_baru


MENGGUNAKAN FUNGSI AGREGATE
1.       COUNT digunakan untuk menghitung jumlah
Menghitung jumlah record siswa pada tabel mahasiswa
SELECT COUNT * FROM MAHASISWA
2.       SUM digunakan untuk menghitung total dari kolom yang mempunyai tipe data numerik
SELECT SUM (SKS) AS ‘TOTAL SKS’ FROM MATA KULIAH;
3.       AVG digunakan untuk menghitung rata-rata dalam suatu koluum
SELECT AVG(FINAL) AS ‘FINAL’ FROM NILAI;
4.       MN digunakan untuk menghitung nilai minimum dalam suatu kolum
SELECT MIN(FINAL) FROM NILAI;
5.       MAX digunakan untuk menghitung nilai maksimum dalam suatu kolum.
SELECT MAX(FINAL) FROM NILAI;

SUBQUERY
                Adalah sub select yang dapat digunakan  di klausa WHERE dan HAVING dipernyataan select luar untuk menghasilkan tabel akhir.
Aturan-aturan untuk membuat subquery
1.       Klausea order by tidak boleh digunakan di subquery. Order by hanya dapat digunakan dipernyataan select luar.
2.       Klausa subquery select harus berisi satu nama kolum tunggal atau ekspresi kecuali untuk subquery-subquery menggunakan kata kunci EXIST
3.       Secara default nama kolum subquery mengacu pada nama tabel di klausa from dari subquery tersebut.

PENGGUNAA ANY DAN ALL
Jika suatu subquery diawali kata kunci ALL, syarat hanya akan bernilai true jika dipenuhi semua nilai dari subquery itu.
Jika subquery diawali kata kuci ANY, syaratnya akan bernilai true jika dipenuhi sedikitnua satu dari subquery tersebut.


Tidak ada komentar:

Posting Komentar

Answer HackerRank Cat and Mouse

Two cats and a mouse are at various positions on a line. You will be given their starting positions. Your task is to determine which cat w...