Anda di halaman 1dari 12

Konsep Sistem Informasi B

STRUCTURE QUERY LANGUAGE (SQL)


SQL telah dugunakan pada tahun 1970-an. SQL adalah suatu bahasa yang sangat mendukung berbagai tipe format database. Kemampuan bahasa ini dapat diandalkan untuk mengolah suatu database dengan cepat dan efisien. Perkembangan SQL cukup berarti bagi pemrograman database di dunia. Sintak SQL dibuat oleh bagian ANSI (American Antional Standards Institute). Sintak SQL atau lebih dikenal SQL-89 sangatlah popular pada tahun 1989, dan tiga tahun kemudian megalami pembaharuan yang menjadi SQL-92. SQL-92 inilah yang menjadi sintak SQL yang digunakan di dalam lingkungan Delphi (Local SQL) untuk mengelola database Paradox, Foxpro. KEGUNAAN SQL EXPLORER Seperti database Desktop, SQL explorer merupakan salah satu utility dari kepunyaan Delphi. Utility ini mempunyai fungsi untuk meng-edit sintak SQL dan mengeksekusi sintak tersebut. Database desktop juga telah menyediakan editor SQL, tetapi fasilitas yang ada tidak sefleksibel SQL explorer STATEMENT SELECTFORM Statement ini untuk menyajikan data pada table. Contoh penggunaan sintak ini adalah sebagai berikut : Select * From TMAHASISWA Tulislah sintak diatas pada Editor SQL dan kemudian tekan tombol Ctr+E untuk menjalankannya, maka semua field di tabel TMAHASISWA akan ditampilkan di bawah editor SQl. Select NAMA, ALM From TMAHASISWA Sintak diatas akan menampilkan field NAMA dan ALM, sedangkan jumlah/ urutan data sama, kemudian jika ditambahkan sintaks seperti berikut :
SQL Deasy Indayanti

Konsep Sistem Informasi B

Select ts.NAMA ts.Nama mahasiswa, ts.ALM ts.Alamat From TMAHASISWA ts Pada sintak tersebut terdapat ts yang berfungsi sebagai nama pengganti dari TMAHASISWA (nama tabel), maka hasilnya judul field NAMA berubah menjadi Nama mahasiswa, sedangkan field ALM menjadi Alamat SQL dapat diterapkan pada beberapa software diantaranya adalah : Dbase IV, Informix, AS-400, Access . Jenis SQL 1. Interactive ; 2. Embedded ; langsung dapat dioperasikan. disisipkan ke dalam sebuah program ( Cobol, C, Fortran ).

Pengelompokan Statement SQL 1. Data Definition Language ( DDL )

DATABASE TABLE *CREATE INDEX VIEW *DROP

2. 3. 4. 5.

*ALTER TABLE Data Manipulation Language ( DML ) INSERT, SELECT, UPDATE, DELETE Data Access GRANT, REVOKE Data Integrity RECOVER TABLE Auxiliary UNLOAD, LOAD, RENAME COLUMN

Kasus DDL Pembuatan Database Sintaks : CREATE DATABASE nama_db ; Contoh : CREATE DATABASE latihan ;

(membuat database dengan nama latihan)


Pembuatan Tabel
SQL Deasy Indayanti

Konsep Sistem Informasi B

Sintaks

CREATE TABLE nama_tabel (nama_kolom1 type_kolom1, nama_kolom type_kolom2, )

Contoh : Struktur database MHS (NPM char(8),NAMA char(25),ALAMATchar(30)) MKUL (KDMK char(5),MTKUL char(25),SKS smallint) NILAI (NPM char(8),KDMK char(5),MID smallint,FINAL smallint) Membuat table CREATE TABLE MHS(NPM char(8) notnull, NAMA char(25) notnull, ALAMAT char(30) notnull); CREATE TABLE MKUL(KDMK char(5) notnull, MTKULIAH char(25) notnull, SKS smallint notnull); CREATE TABLE NILAI(NPM char(8) notnull, KDMK char(5) notnull, MID smallint, FINAL smallint); Pembuatan Index Sintaks : CREATE [UNIQUE] INDEX nama_index ON nama_tabel (nama_kolom); Contoh:

Buat index dengan nama MHSIN berdasarkan NPM dari tabel MHS !
CREATE UNIQUE INDEX MHSIN ON MHS(NPM); Hasil : MHSIN NPM 10296126 10296832 21196353 31296500 41296525 50096487

NAMA Astuti Nurhayati Quraish Budi Prananingrum Pipit

ALAMAT Jakarta Jakarta Bogor Depok Bogor Bekasi

CREATE INDEX NILAIIN ON NILAI(KDMK); Pembuatan View

SQL Deasy Indayanti

Konsep Sistem Informasi B

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; CREATE VIEW NILVIEW(NPM, KDMK, KDMK, MID FROM NILAI; MID) AS SELECT NPM,

Menghapus Database / Tabel / Index / View Sintaks : DROP DATABASE nama_db DROP TABLE nama_tabel DROP INDEX nama_index DROP VIEW nama_view Contoh :

menghapus tabel MHS :


DROP TABLE MHS;

Merubah Struktur Tabel Sintaks : ALTER TABLE nama_tabel ADD (nama_kolom type_kolom [BEFORE nama_kolom]) MODIFY (nama_kolom type_kolom) DROP (nama_kolom type_kolom); Contoh :

Tambahkan kolom JKEL pada tabel MHS


ALTER TABLE MHS ADD(JKEL char(1)); Hasil : MHS NPM 10296832 10296126 31296500 41296525 50096487 21196353

NAMA Nurhayati Astuti Budi Prananingrum Pipit Quraish

ALAMAT Jakarta Jakarta Depok Bogor Bekasi Bogor

JKEL

SQL Deasy Indayanti

Konsep Sistem Informasi B

Ubah panjang kolom MTKULIAH yang ada pada tabel MKUL !


ALTER TABLE MKUL MODIFY(MTKULIAH char(30)); Hapus kolom JKEL dari tabel MHS ! ALTER TABLE MHS DROP(JKEL char(1));

Contoh Data MHS NPM NAMA 10296832 Nurhayati 10296126 Astuti 31296500 Budi 41296525 Prananingrum 50096487 Pipit 21196353 Quraish MKUL KDMK KK021 KD132 KU122 MTKULIAH P. Basis Data SIM Pancasila KDMK KK021 KD132 KK021 KU122 KU122 KD132 KD132 SKS 2 3 2 MID 60 70 55 90 75 80 40

ALAMAT Jakarta Jakarta Depok Bogor Bekasi Bogor

NILAI NPM 10296832 10296126 31296500 41296525 21196353 50095487 10296832

FINAL 75 90 40 80 75 0 30

Kasus DML Insert Sintaks :

INSERT INTO nama_tabel [(nama_kolom1, )] VALUES (data1, );

SQL Deasy Indayanti

Konsep Sistem Informasi B

Contoh

Masukkan data pada tabel MKUL !


INSERT INTO MKUL VALUES (KK222,Berkas Akses, 2); Hasil : MKUL KDMK KK021 KD132 KU122 KK222 MTKULIAH P. Basis Data SIM Pancasila Berkas Akses SKS 2 3 2 2

Masukan data pada tabel Nilai


INSERT INTO NILAI(NPM,KDMK,MID) VALUES (32296222,KK222,30); Update Sintaks Contoh

: :

UPDATE nama_tabel SET nama_kolom = ekspresi WHERE kondisi;

Ubah alamat mahasiswa yg memiliki NPM = 50096487 !


UPDATE MHS SET ALAMAT=Depok WHERE NPM=50096487; Hasil : MHS NPM NAMA 50096487 Pipit

ALAMAT Depok

UPDATE NILAI SET MID=MID+10 WHERE KDMK=KK021; Delete Sintaks Contoh

: :

DELETE FROM nama_tabel WHERE kondisi

SQL Deasy Indayanti

Konsep Sistem Informasi B

Hapus nilai mahasiswa yang mempunyai NPM=10296832 dan KDMK=KK021 !


DELETE FROM NILAI WHERE NPM=10296832 AND KDMK=KK021; Hasil : NILAI NPM 10296126 31296500 41296525 21196353 50095487 10296832 Select Sintaks :

KDMK KD132 KK021 KU122 KU122 KD132 KD132

MID 70 55 90 75 80 40

FINAL 90 40 80 75 0 30

SELECT [DISTINCT] nama_kolom FROM nama_tabel [ WHERE kondisi ] [ GROUP BY nama_kolom ] [ HAVING kondisi ] [ ORDER BY nama_kolom [ASD/DESC]]

Contoh satu tabel ( Simple Query ) : Menampilkan data.

Tampilkan semua data mahasiswa !


SELECT * FROM MHS; SELECT NPM,NAMA,ALAMAT FROM MHS; Mengambil data dari suatu tabel dengan satu/banyak kondisi :

Tampilkan mata kuliah yang memiliki SKS = 2 !


SELECT MTKULIAH FROM MKUL WHERE SKS = 2; Hasil : MKUL MTKULIAH P. Basis Data Pancasila SELECT * FROM NILAI WHERE MID >=60 OR FINAL > 75;
SQL Deasy Indayanti

Konsep Sistem Informasi B

SELECT NPM, KDMK, MID FROM NILAI WHERE MID BETWEEN 70 AND 100; Mengambil data dari suatu tabel dengan menggunakan perintah LIKE:

Tampilkan nama mahasiswa yang diawali dengan huruf P !


SELECT NAMA FROM MHS WHERE NAMA LIKE P%; Hasil : MHS NAMA Prananingrum Pipit SELECT NAMA FROM MHS WHERE NAMA NOT LIKE %a%; SELECT NAMA FROM MHS WHERE NAMA LIKE _u; Mengambil data pada suatu tabel dengan hanya menampilkan satu kali saja data yang sama :

Tampilkan alamat mahasiswa, dimana alamat yang sama hanya ditampilkan satu kali saja !
SELECT DISTINCT ALAMAT FROM MHS; Memilih beberapa / semua data dari suatu tabel untuk diurutkan / dikelompokkan :

Tampilkan semua data dari tabel MHS, dengan nama terurut dari Z ke A !
SELECT * FROM MHS ORDER BY NAMA DESC; Hasil : MHS NPM 21196353 41296525 50096487 10296832 31296500 10296126

NAMA Quraish Prananingrum Pipit Nurhayati Budi Astuti

ALAMAT Bogor Bogor Bekasi Jakarta Depok Jakarta

SQL Deasy Indayanti

Konsep Sistem Informasi B

Tampilkan alamat mahasiswa dan jumlah mahasiswa yang bertempat tinggal di alamat tersebut !
SELECT ALAMAT, COUNT(*) FROM MHS GROUP BY ALAMAT; Hasil : ALAMAT Jakarta Depok Bogor Bekasi COUNT(*) 2 1 2 1

Tampilkan alamat dan jumlah masiswa yang bertempat tinggal pada alamat yang jumlahnya lebih dari satu !
SELECT ALAMAT, COUNT(*) FROM MHS GROUP BY ALAMAT HAVING COUNT(*) > 1; Hasil : ALAMAT Jakarta Bogor COUNT(*) 2 2

Penggunaan Agreegate Function.

Tampilkan data tertinggi dan terendah dari nilai Midtest pada KDMK = KD132 !
SELECT MAX(MID), MIN(MID) FROM NILAI WHERE KDMK=KD132; Hasil : MAX(MID) MIN(MID) 80 40

Tampilkan rata-rata nilai final test dan jumlah nilai final test dengan KDMK = KD132 !
SELECT AVG(FINAL), SUM(FINAL) FROM NILAI KDMK=KD132; Hasil : AVG(FINAL) SUM(FINAL) 40 120 WHERE

SQL Deasy Indayanti

Konsep Sistem Informasi B

10

NILAI KDMK KD132 KD132 KD132

FINAL 90 0 30

Contoh lebih dari satu tabel (Sub Query dan Join ) :

Tampilkan nama mahasiswa yang mempunyai nilai midtest lebih kecil dari 60 !
Sub Query SELECT NAMA FROM MHS WHERE NPM IN ( SELECT NPM FROM NILAI WHERE MID <= 60 );

JOIN : SELECT NAMA FROM MHS, NILAI WHERE MHS.NPM = NILAI.NPM AND NILAI.MID <= 60; Hasil : MHS NAMA Nurhayati Budi Quraish Sub Query : SELECT NAMA FROM MHS WHERE NPM IN (SELECT NPM FROM NILAI WHERE KDMK IN (SELECT KDMK FROM MKUL WHERE MTKULIAH = SIM); JOIN : SELECT NAMA FROM MHS, NILAI, MKUL WHERE MKUL.MTKULIAH=SIM AND NILAI.KDMK = MKUL.KDMK AND MHS.NPM = NILAI.NPM; Penggunaan Exists / Not Exists

Tampilkan nama mahasiswa yang tidak mengambil KDMK = KK021 !


SELECT NAMA FROM MHS WHERE NOT EXISTS (SELECT * FROM NILAI WHERE NILAI.NPM = MHS.NPM AND KDMK = KK021 );
SQL Deasy Indayanti

Konsep Sistem Informasi B

11

Hasil : MHS NAMA Astuti Prananingrum Pipit Quraish Penggunaan Union

Tampilkan NPM mahasiswa yang bernama Budi dan yang memiliki nilai final > 75 !
SELECT NPM FROM MHS WHERE NAMA = Budi UNION SELECT NPM FROM NILAI WHERE FINAL > 75; Kasus Data Access Grant Sintaks : - GRANT hak_akses ON nama_db TO nama_pemakai [WITH GRANT OPTION] [AS GRANTOR]; - GRANT hak_akses ON nama_tabel TO nama_pemakai [WITH GRANT OPTION] [AS GRANTOR] Contoh :

Berikan hak akses kepada Avi untuk menampilkan nilai final test !
GRANT SELECT(FINAL) ON NILAI TO AVI; Revoke Sintaks

- REVOKE hak_akses ON nama_db FROM nama_pemakai; - REVOKE hak_akses ON nama_tabel FROM nama_pemakai;

Contoh

Tarik kembali hak akses untuk menampilkan nilai final test dari Avi !
SQL Deasy Indayanti

Konsep Sistem Informasi B

12

REVOKE SELECT(FINAL) ON NILAI FROM AVI; Kasus Data Integrity Kasus Statement Auxiliary Unload Sintaks

UNLOAD TO nama_path [DELIMITER char_pemisah] SELECT statement;

Contoh

Merubah semua data mahasiswa ke bentuk ASCII dan disimpan ke file teks di directory /home/avi :
UNLOAD TO /home/avi/teks DELIMITER | SELECT * FROM MHS; Load Sintaks : LOAD FROM nama_path DELIMITER char_pemisah INSERT INTO nama_tabel [nama_kolom];

Contoh

Merubah file teks ke tabel MHS_2 di directory /home/avi :


LOAD FROM /home/avi/teks DELIMITER | INSERT INTO MHS_2; Rename Sintaks : Contoh :

RENAME COLUMN nama_kolom_lama TO Nama_kolom_baru;

Mengganti kolom ALAMAT yang ada pada tabel MHS menjadi KOTA :
RENAME COLUMN MHS.ALAMAT TO KOTA;

SQL Deasy Indayanti

Anda mungkin juga menyukai