SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

SQLite SEPERTI

Ringkasan :dalam tutorial ini, Anda akan mempelajari cara membuat kueri data berdasarkan pencocokan pola menggunakan SQLite LIKE operator.

Pengantar SQLite LIKE operator

Terkadang, Anda tidak tahu persis kata kunci lengkap yang ingin Anda kueri. Misalnya, Anda mungkin tahu bahwa lagu favorit Anda berisi kata,elevator tapi Anda tidak tahu persis namanya.

Untuk menanyakan data berdasarkan informasi parsial, gunakan LIKE operator di WHERE klausa dari SELECT pernyataan sebagai berikut:

SELECT
	column_list
FROM
	table_name
WHERE
	column_1 LIKE pattern;Code language: SQL (Structured Query Language) (sql)

Perhatikan bahwa Anda juga dapat menggunakan LIKE operator di WHERE klausa pernyataan lain seperti DELETE dan UPDATE .

SQLite menyediakan dua wildcard untuk membangun pola. Mereka adalah tanda persen % dan garis bawahi _ :

  1. Tanda persen % wildcard cocok dengan urutan nol karakter atau lebih.
  2. Garis bawah _ wildcard cocok dengan karakter tunggal apa pun.

Tanda persen % contoh wildcard

s% pola yang menggunakan wildcard tanda persen ( % ) cocok dengan string apa pun yang dimulai dengan s misalnya,son dan so .

%er pola cocok dengan string apa pun yang diakhiri dengan er seperti peter , clever , dll.

Dan %per% pola cocok dengan string apa pun yang berisi per seperti percent dan peeper .

garis bawah _ contoh wildcard

h_nt pola cocok dengan hunt , hint , dll. __pple pola cocok dengan topple , supple , tipple , dll.
Perhatikan bahwa SQLite LIKE operator tidak peka huruf besar/kecil. Artinya "A" LIKE "a" benar.

Namun, untuk karakter Unicode yang tidak berada dalam rentang ASCII, tanda LIKE operator peka huruf besar/kecil mis., "Ä" LIKE "ä" adalah palsu.
Jika Anda ingin membuat LIKE operator bekerja dengan peka huruf besar-kecil, Anda perlu menggunakan PRAGMA berikut:

PRAGMA case_sensitive_like = true;Code language: SQL (Structured Query Language) (sql)

SQLite LIKE contoh

Kami akan menggunakan tabel tracks dalam database sampel untuk demonstrasi.

Untuk menemukan trek yang namanya dimulai dengan Wild string literal, Anda menggunakan tanda persen % wildcard di akhir pola.

SELECT
	trackid,
	name	
FROM
	tracks
WHERE
	name LIKE 'Wild%'Code language: SQL (Structured Query Language) (sql)

Cobalah

Untuk menemukan trek yang namanya diakhiri dengan Wild kata, Anda menggunakan % wildcard di awal pola.

SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name LIKE '%Wild'Code language: SQL (Structured Query Language) (sql)

Cobalah

Untuk menemukan trek yang namanya mengandung Wild string literal, Anda menggunakan % wildcard di awal dan akhir pola:

SELECT
	trackid,
	name	
FROM
	tracks
WHERE
	name LIKE '%Wild%';Code language: SQL (Structured Query Language) (sql)

Cobalah

Pernyataan berikut menemukan trek yang namanya mengandung:nol atau lebih karakter (% ), diikuti dengan Br , diikuti oleh karakter ( _ ), diikuti oleh wn , dan diikuti oleh nol atau lebih karakter ( % ).

SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name LIKE '%Br_wn%';Code language: SQL (Structured Query Language) (sql)

Cobalah

SQLite LIKE dengan ESCAPE klausa

Jika pola yang ingin Anda cocokkan mengandung % atau _ , Anda harus menggunakan karakter escape dalam ESCAPE opsional klausa sebagai berikut:

column_1 LIKE pattern ESCAPE expression;
Code language: SQL (Structured Query Language) (sql)

Saat Anda menentukan ESCAPE klausa, LIKE operator akan mengevaluasi expression yang mengikuti ESCAPE kata kunci ke string yang terdiri dari satu karakter, atau karakter escape.

Kemudian Anda dapat menggunakan karakter escape ini dalam pola untuk menyertakan tanda persen literal (%) atau garis bawah (_ ). LIKE operator mengevaluasi tanda persen (% ) atau garis bawah (_ ) yang mengikuti karakter escape sebagai string literal, bukan karakter wildcard.

Misalkan Anda ingin mencocokkan string 10% dalam kolom tabel. Namun, SQLite menafsirkan simbol persen % sebagai karakter wildcard. Oleh karena itu, Anda harus keluar dari simbol persen ini % menggunakan karakter escape:

column_1 LIKE '%10\%%' ESCAPE '\';Code language: SQL (Structured Query Language) (sql)

Dalam ekspresi ini, LIKE operator menafsirkan tanda % pertama dan % terakhir sebagai wildcard dan tanda persen kedua sebagai simbol persen literal.

Perhatikan bahwa Anda dapat menggunakan karakter lain sebagai karakter escape mis., /, @, $.

Perhatikan contoh berikut:

Pertama, buat tabel t yang memiliki satu kolom:

CREATE TABLE t(
	c TEXT
);Code language: SQL (Structured Query Language) (sql)

Selanjutnya, masukkan beberapa baris ke dalam tabel t :

INSERT INTO t(c)
VALUES('10% increase'),
	('10 times decrease'),
	('100% vs. last year'),
	('20% increase next year');Code language: SQL (Structured Query Language) (sql)

Kemudian, kueri data dari t tabel:

SELECT * FROM t;Code language: SQL (Structured Query Language) (sql)
c                     
----------------------
10% increase          
10 times decrease     
100% vs. last year    
20% increase next yearCode language: Shell Session (shell)

Keempat, coba cari baris yang nilainya di c kolom berisi 10% string literal:

SELECT c 
FROM t 
WHERE c LIKE '%10%%';Code language: SQL (Structured Query Language) (sql)

Namun, ia mengembalikan baris yang nilainya di kolom c berisi 10:

c                 
------------------
10% increase      
10 times decrease 
100% vs. last year

Kelima, untuk mendapatkan hasil yang benar, gunakan ESCAPE klausa seperti yang ditunjukkan dalam kueri berikut:

SELECT c 
FROM t 
WHERE c LIKE '%10\%%' ESCAPE '\';Code language: SQL (Structured Query Language) (sql)

Berikut adalah kumpulan hasil:

c           
------------
10% increaseCode language: Shell Session (shell)

Dalam tutorial ini, Anda telah mempelajari cara menggunakan SQLite LIKE operator untuk meminta data berdasarkan pencocokan pola menggunakan tanda persen dua karakter wildcard (% ) dan garis bawah (_ ).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite CHECK kendala

  2. Tabel tidak dibuat sqlite android

  3. Tentang SQLite

  4. SQLite Intersect

  5. TypeError yang tidak tertangkap tidak dapat memanggil metode 'opendatabase' dari plugin SQLite yang tidak ditentukan dengan cordova 3.5