Bahasa Query komersial


SQL dipublikasikan oleh E.F. CODD (1970) mengenai model relational. Kemudian pada tahun 1974, D. Chamberlin dan R.F. Boyce mengembangkan bahasa query untuk memanipulasi dan mengekstraksi data dari basisdata relational.
Sasaran SQL

  1. Menciptakan basis data dan struktur relasi
  2. Melakukan menajemen data tingkat dasar
  3. Membentuk query sederhana dan kompleks
  4. Melakukan tugas-tugas dengan seminimal mungkin memakai struktur dan sintaks perintah relatif mudah dipelajari
  5. Harus portabel

Jenis SQL :
1.Interactive SQL, adalah perintah SQL yang langsung dapat dioperasikan

2.Static SQL,adalah bersifat embedded ( disisipkan ke dalam sebuah program)
3.Dynamic SQL,adalah kombinasi antara interactive dan static

Subdivisi SQL
1.DDL (Data Definition Language)
Query-query ini digunakan untuk mendefinisikan struktur atau skema basis data

2.DML (Data Manipulation Language)
Query-query ini digunakan untuk manajemen data dalam basis data

3.DCL ( Data Control Language)
Query-query ini berhubungan dengan pengaturan hak akses dan wewenang.

PENGELOMPOKAN STATEMEN SQL

1. Data Definition Language (DDL)

CREATE DATABASE, DROP DATABASE,CREATE TABEL, DROP TABEL,CREATE INDEX ,DROP INDEX,CREATE VIEW ,DROP VIEWALTER TABLE

2. Data Manipulation Language

INSERT, SELECT, UPDATE, DELETE

3. Data Access

GRANT , REVOKE

4. Data Integrity

RECOVER TABLE

5. Auxiliary

SELECT INTO OUTFILE, LOAD, RENAME TABLE

KASUS DATA DEFINITION LANGUAGE (DDL)

A. CREATE
1. Pembuatan Database
Nama Database adalah yang dapat mewakili suatu kejadian dapat berupa nama organisasi atau perusahaan.
Sintaks : CREATE DATABASE nama_database
Contoh : Buat database dengan nama KAMPUS
CREATE DATABASE KAMPUS

2. Pembuatan Tabel
Sintaks : CREATE TABLE nama_table
( nama_kolom1 tipe_data_kolom1, nama_kolom2,tipe_data_kolom2,….)
Contoh :
Buat struktur tabel dengan nama tabel MHS dengan data NIM char(8), NAMA char(25), ALAMAT char(30)
CREATE TABLE MHS (NIM char(8) not null, NAMA char(25) notnull, ALAMAT char(30) notnull)

3. Pembuatan Index
Sintaks : CREATE [UNIQUE] INDEX nama_index ON nama_table (nama_kolom);
Contoh :
Buat index data mahasiswa berdasarkan NIM dengan nama MHSIDX Dimana NIM tidak boleh sama
CREATE UNIQUE INDEX MHSIDX ON MHS(NIM)
4. Pembuatan View
Sintaks :
CREATE VIEW nama_view [ (nama_kolom1,….) ] AS SELECT statement [WITH CHECK OPTION] ;
Contoh :
Buat view dengan nama MHSVIEW yang berisi semua data mahasiswa
CREATE VIEW MHSVIEW AS SELECT * FROM MHS

B. DROP (MENGHAPUS)
1. Menghapus Database
Sintaks : DROP DATABASE nama_db ;
2. Menghapus Tabel
Sintaks : DROP TABLE nama_table ;
3. Menghapus Index
Sintaks : DROP INDEX nama_index ;
4. Menhapus View
Sintaks : DROP VIEW nama_view ;
Contoh :
DROP DATABASE KAMPUS;
DROP INDEX MHSIDX;
DROP VIEW MHSVIEW;

C. ALTER TABLE (MERUBAH STRUKTUR TABEL)
Sintaks : ALTER TABLE nama_tabel
ADD nama_kolom jenis_kolom [FIRST | AFTER nama_kolom]
CHANGE [COLUMN] oldnama newnama
MODIFY nama_kolom jenis kolom, …
DROP nama_kolom
RENAME newnama_tabel
Contoh :
1. Tambahkan kolom JKEL dengan panjang 1 char pada tabel MHS
ALTER TABLE MHS ADD JKEL char(1);
2. Ubah panjang kolom JKEL menjadi 15 char
ALTER TABLE MHS MODIFY COLUMN JKEL char(15);
3.Hapus kolom JKEL dari data table MHS
ALTER TABLE MHS DROP JKEL;

DATA MANIPULATION LANGUAGE (DML)

1. INSERT
Sintaks : INSERT INTO Nama_tabel [(nama_kolom1,…)]
Contoh :
Masukan data mhs dengan NIM 10296832 Nurhayati beralamat di Jakarta
INSERT INTO MHS VALUES(“10296832”,”Nurhayati”,“Jakarta”); tambahkan record baru seperti dibawah ini.

mhs_table

2. UPDATE Sintaks :

UPDATE nama_tabel SET nama_kolom = value_1 WHERE kondisi ;

Contoh : Ubah alamat menjadi “Depok” untuk mahasiswa yang memiliki NIM “10296832” UPDATE MHS SET ALAMAT=”Depok” WHERE NIM=” 10296832”;

3. DELETE Sintaks :

DELETE FROM nama_table WHERE kondisi

Contoh : Hapus data mahasiswa yang mempunyai NIM “21198002” DELETE FROM MHS WHERE NIM=” 21198002”

Tabel dibawah ini untuk mengerjakan Select (tampilan) dari SQL dan tambahkan dua tabel baru yaitu tabel Nilai dan MataKuliah

table2

4. SELECT
Sintaks :

SELECT [DISTINCT | ALL] nama_kolom FROM nama_tabel
[ WHERE condition ]
[ GROUP BY column_list ]
[HAVING condition ]
[ ORDER BY column_list [ASC | DESC]]

Contoh :
a. Tampilkan semua data mahasiswa
SELECT NIM,NAMA,ALAMAT FROM MHS;
Atau
SELECT * FROM MHS;
Maka hasilnya adalah :

table3

DCL merupakan perintah SQL yang berhubungan dengan pengaturan hak akses user MySQL, baik terhadap server, database, tabel maupun field. Perintah SQL yang termasuk dalam DCL antara lain :

GRAND        : Perintah ini digunakan untuk memberikan hak/ijin akses oleh administrator (pemilik utama) server kepada user (pengguna biasa). Hak akses tersebut berupa hak membuat (CREATE), mengambil (SELECT), menghapus (DELETE), mengubah (UPDATE), dan hak khusus berkenaan dengan sistem databasenya.
 REVOKE
Perintah revoke akan mencabut hak akses pada tabel dan  view dari  user.  Perintah ini dapat dilakukan melalui aplikasi program atau secara interaktif. Hak  akses dari perintah ini termasuk ke dalam otoritas *OBJMGT dikendalikan oleh  otoritas  yang dimiliki seorang user. Untuk bentuk umum dan perintah revoke sama dengan perintah grant.
1.jpg
FLUSH PRIVILEGES;
Perintah FLUSH PRIVILEGES adalah suatu perintah untuk mengaktifkan perubahan-perubahan yang terjadi pada user, seperti hak akses, penggantian password pada user, dsb. Perintah FLUSH PRIVILEGES ini hukumnya wajib dilaksanakan setelah Anda melakukan perubahan (apapun juga) secara langsung ke dalam tabel user atau ke dalam database mysql.
GRANT
Grant berfungsi untuk membuat user baru dan memberikan hak istimewa.
Grant adalah salah satu privilege untuk tabel. Grant digunakan untuk memberikan privilege kepada tabel yang didefinisikan kepada pemakai lain. Privilege untuk pemakai dalam perintah grant didefinisikan dengan menggunakan nama-nama privilege. Nama privilege memudahkan administrator untuk dapat memberikan priivilege tanpa harus tahu apa nama field dan tabel yang harus diisi.
Perintah grant secara otomatis akan menambah data pemakai apabila data nama pemakai yang disertakan pada perintah tersebut belum ada dalam tabel user. Perintah grant memudahkan administrator untuk tidak perlu melakukan perintah pendefinisian privilege dengan menggunakan sql. Karena dengan menggunakan sql, kita harus hafal nama tabel yang harus diisi, field apa saja yang harus diisi, jumlah field yang harus diisi. Kesalahan mudah dilakukan dengan menggunakan perintah sql karena ketidaktelitian atau ketidakhafalan nama tabel dan nama field yang harus

diisi.
Sintak Umum :
GRANT hak_akses ON nama_tabel TO pemakai ;
GRANT ALL PRIVILEGES ON database_name.* TO ‘myuser’
IDENTIFIED BY ‘mypassword’;
Contoh Penggunaan :
1. GRANT SELECT ON Point_Of_Sales.jenis TO Febe;
2. GRANT SELECT ON Point_Of_Sales.jenisTO Winda;
3. GRANT SELECT ON Point_Of_Sales.item TO Elfrida;
4. GRANT ALL PRIVILEGES ON Point_Of_Sales.User TO Admin;
5. GRANT ALL ON Point_Of_Sales.jualDetail TO Admin
6. SHOW GRANTS FOR root@localhost;
7. SHOW GRANTS FOR Admin;
8. GRANT SELECT,INSERT ON Point_Of_Sales.jualDetail TO kasir;
9. GRANT SELECT(Kode,Nama) ON Point_Of_Sales.jenis TO Elfrida;
10. GRANT UPDATE(kodeItem,NmItem,kategori,Harga) ON Point_Of_Sales.item TO Elfrida

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s