Syntax SQL
Syntaks adalah aturan yang tanda digabungkan untuk membuat pernyataan. Jika Anda menganggap kata-kata dari bahasa menjadi tanda-tanda, maka sintaks adalah aturan yang menempatkan tanda-tanda sama untuk membuat pernyataan, mengajukan pertanyaan, dan menghasilkan ucapan-ucapan lainnya.
Syntaks menggabungkan tata bahasa frase, klausa, dan kalimat. Memproduksi dan mengucapkan kalimat merupakan bagian penting dari bagaimana kita memahami dunia kita. Kami mengartikulasikan arti dari pengalaman kami dengan kata-kata, dalam proses mengartikulasikan, kita membuat (atau discover) makna dari pengalaman. Proses ini mirip dengan cara di mana kita intrepret sastra.
Sintaks struktur yang tepat dari apa yang kita tulis adalah bagian penting dari maknanya. Mengubah struktur dan Anda telah berubah makna, paling tidak sedikit.
Syntax
CREATE TABLE (
()
[UNIQUE] [NOT NUL] [PRIMARY KEY] [DEFAULT]
[referential_constraint_defenition>] [CHECK],
()
[UNIQUE] [NOT NULL] [PRIMARY KEY] [DEFAULT]
[referential_constraint_defenition>] [CHECK],
. . .
);
keterangan
Unique; 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)
Syntax
ALTER TABLE
[ ADD ( (), . . . ); ]
[ MODIFY ((), . . .); ]
Keterangan
Add; Penambahan kolom baru.
Modify; Mengubah kolom yang sudah ada sebelumnya.
Contoh :
ALTER TABLE Pelajar
ADD (Jenis_Kelamin CHAR(10));
Menghapus tabel (Dropping tables)
Syntax
DROP TABLE
DROP INDEX
Contoh :
DROP TABLE Pelajar;
DROP INDEX nm;
II. Data Manipulation Language ( DML ) / Manipulasi Data
Penyisipan data (Inserting)
Syntax
INSERT 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)
Syntax
UPDATE
SET ,
,
. . . ,
[WHERE ];
Contoh :
UPDATE Pelajar
SET No_Induk = ‘00311216’ ,Nama = ‘Wati’
WHERE No_Induk =’00311210’ and Nama = ‘Satria’;
Menghapus data (Deletion)
Syntax
DELETE FROM
WHERE ;
Contoh :
DELETE FROM Pelajar
WHERE No_Induk = ‘00311211’;
Seleksi data (Selection)
Syntax
SELECT [*] [, , . . ., ]
[, , . . . , ]
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)
Syntax
CREATE VIEW
AS SELECT
FROM
WHERE ;
III. Data Control Language ( DCL ) / Kontrol Data
Konfirmasi menyimpan data di memory ke database (Commit)
Syntax
COMMIT [WORK];
Contoh :
INSERT INTO Pelajar
VALUES (‘00311210’,’Satria’,’15-DEC -1982’,’1’,’Perempuan’);
COMMIT;
Mengembalikan status transaksi sebelum penyimpanan (Rollback)
Syntax
ROLLBACK [WORK];
Pemberian hak dari satu user ke user lain (Grant)
Syntax
GRANT
ON TO
[WITH GRAN OPTION];
Penghapusan hak yang diberikan (Revoke)
Syntax
REVOKE
FROM ;
Spesifikasi akses
All Privileges; Semua hak diberikan.
Select; Untuk seleksi
Update; Untuk mengubah data
Insert; Untuk menyisipkan data
Delete; Untuk menghapus data
IV. EKSPRESI
FROM
Untuk mendefenisikan tabel yang menjadi sumber data dari suatu perintah seleksi
Contoh :
SELECT * FROM Pelajar
WHERE
Untuk mendefenisikan kondisi pengambilan data dari suatu perintah seleksi
Contoh :
SELECT * FROM Pelajar WHERE No_Induk = ‘00311217’;
GROUP BY
Untuk 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 BY
Untuk mengurutkan data hasil seleksi
Syntax :
SELECT
FROM
WHERE
ORDER BY [DESC];
Contoh :
SELECT * FROM Pelajar
ORDER BY No_Induk;
HAVING
Untuk 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. PREDIKAT
COMPARISON
Pembanding 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, <=
BETWEN
Pembanding 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 LIKE
Untuk 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 NULL
Untuk membandingkan suatu nilai dengan NULL
Syntax :
... IS NULL
... IS NOT NULL
Contoh :
SELECT * FROM Pelajar
WHERE Kelas IS NULL
EXIST
Untuk 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);
Catatan
Keyword dari program SQL tidak selalu sama sehingga perlu sedikit modifikasi sesuai dengan standar SQL yang digunakan perusahaan pembuatnyaSyntax diatas dapat dikembangkan sesuai kebutuhan tergantung kreatifitas dalam pemrograman seperti penambahan sekuens looping, function, procedure, trigger dan lain – lainSyntax di atas juga dapat diselipkan pada aplikasi lain seperti web programming, visual programming dan relational programming.Tanda [] merupakan optional.
1. SQL inner join adalah salah satu syntaks SQL yang berfungsi untuk menghubungkan dua tabel / merelasikan beberapa tabel yang berbeda untuk mengambil beberapa fields yang dibutuhkan. Rumus SQL inner join adalah :
Select field1.tabel1, field2.tabel1, field1.tabel2 from tabel1 inner join tabel2 on field1.tabel1 = field1.tabel2
Untuk lebih jelasnya, anggap saja kita mempunyai 3 tabel sederhana seperti berikut :
t_siswa
nim
nama
201
Annisa Nurdilla
202
Delvi Arsalwa
t_pelajaran
kode_pelajaran
mata_pelajaran
kkm
mtk
Matematika
70
bid
Bahasa Indonesia
75
t_nilai
nim
kode_pelajaran
nilai
201
mtk
80
202
mtk
75
Dari 3 buah tabel diatas, misalkan kita ingin menampilkan laporan nilai siswa, kita dapat mengambil beberapa field dari tabel t_siswa dan t_pelajaran. Tujuannya supaya laporan nilai siswa dapat ditampilkan lebih detail dan mudah dipahami. Maka syntaks nya adalah :
select t_nilai.nim, t_siswa.nama, t_pelajaran.mata_pelajaran, t_pelajaran.kkm, t_nilai.nilai from t_nilai inner join t_siswa on t_nilai.nim = t_siswa.nim inner join t_pelajaran on t_nilai.kode_pelajaran = t_pelajaran.kode_pelajaran
Hasilnya :
nim
nama
mata_pelajaran
kkm
nilai
201
Annisa Nurdilla
Matematika
70
80
202
Anggie Sukma Dewi
Matematika
70
75
Selamat Mencoba dan berkreasi serta kembangkan logika Anda sendiri
<p>Your browser does not support iframes.</p>
2. SQL RIGHT JOIN Keyword
The RIGHT JOIN keyword returns all the rows from the right table (table_name2), even if there are no matches in the left table (table_name1).
SQL RIGHT JOIN Syntax
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
PS: In some databases RIGHT JOIN is called RIGHT OUTER JOIN.
SQL RIGHT JOIN Example
The "Persons" table:
P_Id
LastName
FirstName
Address
City
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger
The "Orders" table:
O_Id
OrderNo
P_Id
1
77895
3
2
44678
3
3
22456
1
4
24562
1
5
34764
15
Now we want to list all the orders with containing persons - if any, from the tables above.
We use the following SELECT statement:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName
The result-set will look like this:
LastName
FirstName
OrderNo
Hansen
Ola
22456
Hansen
Ola
24562
Pettersen
Kari
77895
Pettersen
Kari
44678
34764
The RIGHT JOIN keyword returns all the rows from the right table (Orders), even if there are no matches in the left table (Persons).
3. SQL FULL JOIN Keyword
The FULL JOIN keyword return rows when there is a match in one of the tables.
SQL FULL JOIN Syntax
SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name
SQL FULL JOIN Example
The "Persons" table:
P_Id
LastName
FirstName
Address
City
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger
The "Orders" table:
O_Id
OrderNo
P_Id
1
77895
3
2
44678
3
3
22456
1
4
24562
1
5
34764
15
Now we want to list all the persons and their orders, and all the orders with their persons.
We use the following SELECT statement:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName
The result-set will look like this:
LastName
FirstName
OrderNo
Hansen
Ola
22456
Hansen
Ola
24562
Pettersen
Kari
77895
Pettersen
Kari
44678
Svendson
Tove
34764
The FULL JOIN keyword returns all the rows from the left table (Persons), and all the rows from the right table (Orders). If there are rows in "Persons" that do not have matches in "Orders", or if there are rows in "Orders" that do not have matches in "Persons", those rows will be listed as well.
4. SQL LEFT JOIN Keyword
The LEFT JOIN keyword returns all rows from the left table (table_name1), even if there are no matches in the right table (table_name2).
SQL LEFT JOIN Syntax
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
PS: In some databases LEFT JOIN is called LEFT OUTER JOIN.
SQL LEFT JOIN Example
The "Persons" table:
P_Id
LastName
FirstName
Address
City
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger
The "Orders" table:
O_Id
OrderNo
P_Id
1
77895
3
2
44678
3
3
22456
1
4
24562
1
5
34764
15
Now we want to list all the persons and their orders - if any, from the tables above.
We use the following SELECT statement:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName
The result-set will look like this:
LastName
FirstName
OrderNo
Hansen
Ola
22456
Hansen
Ola
24562
Pettersen
Kari
77895
Pettersen
Kari
44678
Svendson
Tove
The LEFT JOIN keyword returns all the rows from the left table (Persons), even if there are no matches in the right table (Orders).