|
Episode kali ini, Wempi mau membimbing teman-teman tentang dasar-dasar SQL (Structured Query Language), bimbingan yang Wempi buat ini juga di muat di situs IlmuKomputer.com . dengan dasar-dasar yang Wempi berikan ini mudah-mudahan bisa membuat teman-teman menjadi programmer yang handal. 
Database relational besar seperti Oracle, SQL Server, Informix, Sybase dan lain-lain biasanya mendukung SQL, dimana SQL merupakan bahasa standar sebagai interface bagi suatu aplikasi untuk berinteraksi dengan database relasional. Dalam tulisan ini penulis akan memaparkan dasardasar syntax SQL. I. Data Defenition Language ( DDL ) / Pembentukan databaseMembuat tabel (Creating tables)SyntaxCREATE TABLE ( () [UNIQUE] [NOT NUL] [PRIMARY KEY] [DEFAULT] [referential_constraint_defenition>] [CHECK], () [UNIQUE] [NOT NULL] [PRIMARY KEY] [DEFAULT] [referential_constraint_defenition>] [CHECK], . . . ); keteranganUnique; Pada kolom tersebut tidak boleh ada data yang sama. Not Null; tidak boleh data pada kolom tersebut bernilai null, Unique dan Not Null; kolom tersebut dapat dijadikan primary key. Default; nilai default yang secara otomatis akan mengisi kolom dengan data default tersebut setiap operasi insert dilakukan. Referential_Constraint_Definition; Bila kolom tersebut merupakan foreign key terhadap tabel lain. Dengan syntax FOREIGN KEY REFERENCES Contoh : CREATE TABLE Pelajar ( No_Induk CHAR(8), Nama CHAR(20), Tgl_Lahir DATE, Kelas CHAR(2) ); CREATE TABLE Mata_Pelajaran( Kode CHAR(4), Nama CHAR(20), Kelas CHAR(2) ); CREATE TABLE Nilai( No_Induk CHAR(8), Kode CHAR(4), Nl_Angka Number ); Membuat index (Creating indices)Syntax. . . [ () REFERENCES (), . . . ] CREATE INDEX ON (); Contoh :DROP TABLE Pelajar; CREATE TABLE Pelajar ( No_Induk CHAR(8) PRIMARY KEY, Nama CHAR(20), Tgl_Lahir DATE, Kelas CHAR(2) ); CREATE INDEX nm ON Pelajar(Nama); DROP TABLE Mata_Pelajaran; CREATE TABLE Mata_Pelajaran( Kode CHAR(4) PRIMARY KEY, Nama CHAR(20), Kelas CHAR(2) ); CREATE TABLE Nilai( No_Induk CHAR(8) REFERENCES Pelajar(No_Induk), Kode CHAR(4) REFERENCES Mata_Pelajaran(Kode), Nilai Number ); Mengubah tabel (Altering tables)SyntaxALTER TABLE [ ADD ( (), . . . ); ] [ MODIFY ((), . . .); ] KeteranganAdd; Penambahan kolom baru. Modify; Mengubah kolom yang sudah ada sebelumnya. Contoh :ALTER TABLE Pelajar ADD (Jenis_Kelamin CHAR(10)); Menghapus tabel (Dropping tables)SyntaxDROP TABLE DROP INDEX Contoh :DROP TABLE Pelajar; DROP INDEX nm; II. Data Manipulation Language ( DML ) / Manipulasi DataPenyisipan data (Inserting)SyntaxINSERT INTO [( VALUES (,, . . . ); Contoh :DROP TABLE Pelajar CASCADE CONSTRAINTS; CREATE TABLE Pelajar ( No_Induk CHAR(8) PRIMARY KEY, Nama CHAR(20), Tgl_Lahir DATE, Kelas CHAR(2) ); INSERT INTO Pelajar VALUES (‘00311217’,’Wempi Satria’,’02-JAN-1982’,’1’,’Laki-laki’); INSERT INTO Pelajar VALUES (‘00311211’,’Wempi,’03-MAR -1982’,’1’,’Laki-laki’); INSERT INTO Pelajar VALUES (‘00311210’,’Satria’,’12-DEC -1982’,’1’,’Perempuan’); Mengubah data (Updating)SyntaxUPDATE SET , , . . . ,
[WHERE ]; Contoh :UPDATE Pelajar SET No_Induk = ‘00311216’ ,Nama = ‘Wati’ WHERE No_Induk =’00311210’ and Nama = ‘Satria’; Menghapus data (Deletion)SyntaxDELETE FROM WHERE ; Contoh :DELETE FROM Pelajar WHERE No_Induk = ‘00311211’; Seleksi data (Selection)SyntaxSELECT [*] [, , . . ., ] [, , . . . , ] FROM WHERE [AND ] [AND MONTH_BETWEEN (); Contoh :SELECT * FROM Pelajar; SELECT a.No_Induk, a.Nama, b.Kode, b.Nama, c.Nl_Angka FROM Pelajar a, Mata_Pelajaran b, Nilai c; WHERE a.No_Induk=c.No_Induk and b.Kode=c.kode; Membuat tabel maya (Creating views)SyntaxCREATE VIEW AS SELECT FROM WHERE ; III. Data Control Language ( DCL ) / Kontrol DataKonfirmasi menyimpan data di memory ke database (Commit)SyntaxCOMMIT [WORK]; Contoh :INSERT INTO Pelajar VALUES (‘00311210’,’Satria’,’15-DEC -1982’,’1’,’Perempuan’); COMMIT; Mengembalikan status transaksi sebelum penyimpanan (Rollback)SyntaxROLLBACK [WORK]; Pemberian hak dari satu user ke user lain (Grant)SyntaxGRANT ON TO [WITH GRAN OPTION]; Penghapusan hak yang diberikan (Revoke)SyntaxREVOKE FROM ; Spesifikasi aksesAll Privileges; Semua hak diberikan. Select; Untuk seleksi Update; Untuk mengubah data Insert; Untuk menyisipkan data Delete; Untuk menghapus data IV. EKSPRESIFROMUntuk mendefenisikan tabel yang menjadi sumber data dari suatu perintah seleksi Contoh : SELECT * FROM Pelajar WHEREUntuk mendefenisikan kondisi pengambilan data dari suatu perintah seleksi Contoh : SELECT * FROM Pelajar WHERE No_Induk = ‘00311217’; GROUP BYUntuk Mengelompokkan data berdasarkan ekspresi group Syntax : SELECT FROM WHERE GROUP BY ; Contoh :SELECT a.No_Induk, b.Nama, c.Nl_Angka FROM Pelajar.a, Nilai b WHERE a.No_Induk=c.No_Induk and b.kode=c.kode GROUP BY a.No_Induk, b.Nama, c.Nl_Angka; ORDER BYUntuk mengurutkan data hasil seleksi Syntax : SELECT FROM WHERE ORDER BY [DESC]; Contoh : SELECT * FROM Pelajar ORDER BY No_Induk; HAVINGUntuk mendefenisikan batasan seleksi berdasarkan GROUP BY Syntax : SELECT FROM WHERE GROUP BY HAVING ; Contoh : SELECT a.No_Induk, b.Nama, c.Nl_Angka FROM Pelajar.a, Nilai b WHERE a.No_Induk=c.No_Induk and b.kode=c.kode GROUP BY a.No_Induk, b.Nama, c.Nl_Angka HAVING Nilai>80; V. PREDIKATCOMPARISONPembanding dua nilai dengan syarat type data yang dibandingkan harus sama Sama dengan, = Tidak sama dengan, Lebih kecil, < Lebih besar, > Lebih kecil dan sama dengan, >= Lebih besar dan sama dengan, <= BETWENPembanding untuk mengecek apakah suatu nilai berada dalam range tertentu atau tidak Syntax : ... BETWEEN ... AND ... ... NOT BETWEEN ... AND ... Contoh : Menampilkan data nilai pada range 80 dan 100 SELECT * FROM Nilai WHERE Nl_Angka BETWEEN 80 AND 100; IN / NOT IN
Untuk melakukan pengecekan apakah suatu nilai terdapat dalam suatu himpunan Syntax : IN ( ... ) IN SELECT ... NOT IN ( ... ) NOT IN SELECT ... Contoh : Select * FROM Pelajar a WHERE a.No_Induk IN (SELECT b.No_Induk FROM Nilai b); LIKE / NOT LIKEUntuk membandingkan data dengan pola / struktur tertentu, untuk satu karakter dipakai ( _ ) dan string ( % ) Syntax : ... LIKE ... NOT LIKE Contoh :SELECT * FROM Pelajar WHERE Nama LIKE ‘We%’; IS NULL / IS NOT NULLUntuk membandingkan suatu nilai dengan NULL Syntax : ... IS NULL ... IS NOT NULL Contoh : SELECT * FROM Pelajar WHERE Kelas IS NULL EXISTUntuk pengecekan apakah suatu query memiliki hasil atau tidak Syntax : ... WHERE EXIST (SELECT ... ) Contoh : SELECT * FROM Pelajar a WHERE EXIST ( SELECT b.No_Induk FROM Nilai b WHERE a.No_Induk=b.No_Induk); CatatanKeyword dari program SQL tidak selalu sama sehingga perlu sedikit modifikasi sesuai dengan standar SQL yang digunakan perusahaan pembuatnya Syntax diatas dapat dikembangkan sesuai kebutuhan tergantung kreatifitas dalam pemrograman seperti penambahan sekuens looping, function, procedure, trigger dan lain – lain Syntax di atas juga dapat diselipkan pada aplikasi lain seperti web programming, visual programming dan relational programming. Tanda [] merupakan optional
|