SQL Advanced Part 2 [In,Between,Alias,Joins,Inner Join]



The IN Operator

Operator IN memungkinkan Anda untuk menentukan beberapa nilai dalam klausa WHERE.

SQL IN Syntax

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)


IN Operator Example

The "Persons" table:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger


Sekarang kita ingin memilih orang dengan nama belakang sama dengan "Hansen" atau "Pettersen" dari tabel di atas.
Kami menggunakan pernyataan SELECT berikut:


SELECT * FROM Persons
WHERE LastName IN ('Hansen','Pettersen')

Hasil-set akan terlihat seperti ini:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
3PettersenKariStorgt 20Stavanger

The BETWEEN Operator

The BETWEEN Operator memilih berbagai data antara dua nilai. Nilai-nilai dapat angka, teks, atau tanggal.

SQL BETWEEN Syntax

SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2


BETWEEN Operator Example

The "Persons" table:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger


Sekarang kita ingin memilih orang dengan nama belakang abjad antara "Hansen" dan "Pettersen" dari tabel di atas.
Kami menggunakan pernyataan SELECT berikut:


SELECT * FROM Persons
WHERE LastName
BETWEEN 'Hansen' AND 'Pettersen'

Hasil-set akan terlihat seperti ini:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes

Example 2

Untuk menampilkan orang di luar rentang di contoh sebelumnya, menggunkan NOT BETWEEN:

SELECT * FROM Persons
WHERE LastName
NOT BETWEEN 'Hansen' AND 'Pettersen'

Hasil-set akan terlihat seperti ini:

P_IdLastNameFirstNameAddressCity
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

SQL Alias

SQL Alias Syntax for Tables

SELECT column_name(s)
FROM table_name
AS alias_name

SQL Alias Syntax for Columns

SELECT column_name AS alias_name
FROM table_name


Alias Example


Anggaplah kita memiliki tabel bernama "Persons" dan tabel lain yang disebut "Product_Orders". Kami akan memberikan alias meja dari "p" dan "po" masing-masing.
Sekarang kita ingin menampilkan semua perintah yang "Ola Hansen" bertanggung jawab atas.
Kami menggunakan pernyataan SELECT berikut:


SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p,
Product_Orders AS po
WHERE p.LastName='Hansen' AND p.FirstName='Ola'

Statemen SELECT yang sama tanpa alias:

SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName
FROM Persons,
Product_Orders
WHERE Persons.LastName='Hansen' AND Persons.FirstName='Ola'

Seperti yang akan Anda lihat dari dua pernyataan SELECT di atas; alias dapat membuat query lebih mudah untuk menulis maupun membaca.

SQL JOIN

Lihatlah tabel "Persons":

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger


Perhatikan bahwa "P_Id" kolom adalah kunci utama dalam tabel "Persons". Ini berarti bahwa tidak ada dua baris dapat memiliki P_Id sama. P_Id membedakan dua orang bahkan jika mereka memiliki nama yang sama.
Selanjutnya, kita memiliki "Orders" tabel:


O_IdOrderNoP_Id
1778953
2446783
3224561
4245621
53476415

Note bahwa "o_id" kolom adalah kunci utama dalam tabel "Orders" dan bahwa "P_Id" kolom mengacu pada orang-orang dalam tabel "Persons" tanpa menggunakan nama mereka.
Perhatikan bahwa hubungan antara dua tabel di atas adalah "P_Id" kolom.



Different SQL JOINs

Sebelum kita melanjutkan dengan contoh, kami akan memberikan daftar jenis JOIN dapat Anda gunakan, dan perbedaan antara mereka.
  • JOINKembali baris jika ada setidaknya satu pertandingan di kedua tabel
  • LEFT JOINMengembalikan semua baris dari tabel kiri, bahkan jika tidak ada pertandingan di tabel kanan
  • RIGHT JOINMengembalikan semua baris dari tabel kanan, bahkan jika tidak ada yang di tabel kiri
  • FULL JOINKembali baris ketika ada pertandingan di salah satu meja

SQL INNER JOIN Keyword

The INNER JOIN keyword kembali baris jika ada setidaknya satu pertandingan di kedua tabel.

SQL INNER JOIN Syntax

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
PS: INNER JOIN is the same as JOIN.

SQL INNER JOIN Example

The "Persons" table:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

The "Orders" table:

O_IdOrderNoP_Id
1778953
2446783
3224561
4245621
53476415


Sekarang kita ingin membuat daftar semua orang dengan perintah.
Kami menggunakan pernyataan SELECT berikut:


SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

Hasil-set akan terlihat seperti ini:

LastNameFirstNameOrderNo
HansenOla22456
HansenOla24562
PettersenKari77895
PettersenKari44678

The INNER JOIN baris kata kunci kembali ketika ada setidaknya satu pertandingan di kedua tabel. Jika ada baris dalam "Orang" yang tidak memiliki pertandingan di "Perintah", baris itu TIDAK akan dicantumkan.