SQL Advanced (TOP,LIKE,WILDCARD)




The TOP Clause

Klausa TOP digunakan untuk menentukan jumlah record untuk kembali.
Klausa TOP dapat sangat berguna di meja besar dengan ribuan catatan. Kembali sejumlah besar catatan dapat berdampak pada kinerjaote: Tidak semua sistem database mendukung klausa TOP

SQL Server Syntax

SELECT TOP number|percent column_name(s)
FROM table_name



SQL SELECT TOP Equivalent in MySQL and Oracle

MySQL Syntax

SELECT column_name(s)
FROM table_name
LIMIT number

Example

SELECT *
FROM Persons
LIMIT 5

Oracle Syntax

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number

Example

SELECT *
FROM Persons
WHERE ROWNUM <=5



SQL TOP Example

The "Persons" table:

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


Sekarang kita ingin memilih hanya dua catatan pertama dalam tabel di atas.
Kami menggunakan pernyataan SELECT berikut:



SELECT TOP 2 * FROM Persons

Hasil-set akan terlihat seperti ini:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes



SQL TOP PERCENT Example

The "Persons" table:

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


Sekarang kita ingin memilih hanya 50% dari catatan dalam tabel di atas.
Kami menggunakan pernyataan SELECT berikut:



SELECT TOP 50 PERCENT * FROM Persons

Hasil-set akan terlihat seperti ini:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes

The LIKE Operator

The LIKE operator is used to search for a specified pattern in a column.

SQL LIKE Syntax

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern



LIKE Operator Example

The "Persons" table:

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


Sekarang kita ingin memilih orang yang tinggal di kota yang dimulai dengan "s" dari tabel di atas.
Kami menggunakan pernyataan SELECT berikut:



SELECT * FROM Persons
WHERE City LIKE 's%'


The "%" tanda dapat digunakan untuk mendefinisikan wildcard (hilang huruf dalam pola) baik sebelum dan setelah pola.


Hasil-set akan terlihat seperti ini:



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


Selanjutnya, kita ingin memilih orang yang tinggal di kota yang diakhiri dengan "s" dari tabel "Persons".
Kami menggunakan pernyataan SELECT berikut:



SELECT * FROM Persons
WHERE City LIKE '%s'

Hasil-set akan terlihat seperti ini:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes


Selanjutnya, kita ingin memilih orang yang tinggal di sebuah kota yang berisi pola "TAV" dari tabel "Persons".

Kami menggunakan pernyataan SELECT berikut:




SELECT * FROM Persons
WHERE City LIKE '%tav%'

Hasil-set akan terlihat seperti ini:

P_IdLastNameFirstNameAddressCity
3PettersenKariStorgt 20Stavanger


Hal ini juga memungkinkan untuk memilih orang yang tinggal di kota yang TIDAK berisi pola "TAV" dari tabel "Persons", dengan menggunakan TIDAK kata kunci.
Kami menggunakan pernyataan SELECT berikut:



SELECT * FROM Persons
WHERE City NOT LIKE '%tav%'

Hasil-set akan terlihat seperti ini:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes

SQL Wildcards 


Wildcard SQL dapat menggantikan satu atau lebih karakter ketika mencari data dalam database.
Wildcard SQL harus digunakan dengan SQL SEPERTI operator.
Dengan SQL, wildcard berikut dapat digunakan


WildcardDescription
%Pengganti untuk nol atau lebih karakter
_Sebuah pengganti tepat satu karakter
[charlist]Setiap karakter tunggal dalam charlist
[^charlist]or
[!charlist]
Setiap karakter tunggal tidak charlist



SQL Wildcard Examples

We have the following "Persons" table:


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



Using the % Wildcard


Sekarang kita ingin memilih orang yang tinggal di kota yang dimulai dengan "sa" dari tabel "Persons".
Kami menggunakan pernyataan SELECT berikut:


SELECT * FROM Persons
WHERE City LIKE 'sa%'

Hasil-set akan terlihat seperti ini:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes


Selanjutnya, kita ingin memilih orang yang tinggal di sebuah kota yang berisi pola "nes" dari tabel "Persons".
Kami menggunakan pernyataan SELECT berikut:



SELECT * FROM Persons
WHERE City LIKE '%nes%'

Hasil-set akan terlihat seperti ini:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes



Using the _ Wildcard


Sekarang kita ingin memilih orang dengan FirstName yang dimulai dengan karakter apapun, diikuti dengan "la" dari tabel "Persons".
Kami menggunakan pernyataan SELECT berikut:



SELECT * FROM Persons
WHERE FirstName LIKE '_la'

Hasil-set akan terlihat seperti ini:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes


Selanjutnya, kita ingin memilih orang dengan LastName yang dimulai dengan "S", diikuti dengan sembarang karakter, diikuti dengan "akhir", diikuti dengan sembarang karakter, diikuti dengan "pada" dari tabel "Persons".
Kami menggunakan pernyataan SELECT berikut:




SELECT * FROM Persons
WHERE LastName LIKE 'S_end_on'

Hasil-set akan terlihat seperti ini:

P_IdLastNameFirstNameAddressCity
2SvendsonToveBorgvn 23Sandnes



Using the [charlist] Wildcard


Sekarang kita ingin memilih orang dengan nama belakang yang dimulai dengan "b" atau "s" atau "p" dari tabel "Persons".
Kami menggunakan pernyataan SELECT berikut:



SELECT * FROM Persons
WHERE LastName LIKE '[bsp]%'

Hasil-set akan terlihat seperti ini:


P_IdLastNameFirstNameAddressCity
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger


Selanjutnya, kita ingin memilih orang dengan LastName yang tidak dimulai dengan "b" atau "s" atau "p" dari tabel "Persons".
Kami menggunakan pernyataan SELECT berikut:



SELECT * FROM Persons
WHERE LastName LIKE '[!bsp]%'

Hasil-set akan terlihat seperti ini:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes


Bersambung........................