Tutorial SQLite subquery Terbaik Pada tahun 2024, Dalam tutorial ini Anda dapat mempelajari SELECT subquery,contoh,INSERT pernyataan subquery,contoh,UPDATE pernyataan subquery,contoh,Pernyataan DELETE subquery,contoh,
Subquery atau query bersarang atau query internal tertanam dalam query klausa WHERE dalam permintaan SQLite lain.
Penggunaan sub-query mengembalikan data akan digunakan dalam query utama sebagai syarat untuk lebih membatasi data yang akan diambil.
Subqueries dapat digunakan dengan SELECT, INSERT, UPDATE, dan DELETE bisa disertai dengan operator digunakan seperti =, <,>,> =, <=, IN, ANTARA suka.
Berikut ini adalah beberapa aturan subquery yang harus diikuti:
Subqueries harus diapit tanda kurung.
Sub-query klausa SELECT hanya dapat memiliki satu kolom, kecuali beberapa kolom dalam query utama, perbandingan kolom subquery yang dipilih.
ORDER BY tidak dapat digunakan dalam subquery, meskipun permintaan utama dapat menggunakan ORDER BY. Anda dapat menggunakan GROUP BY di subqueries, berfungsi sama seperti ORDER BY.
lebih dari satu baris, hanya dapat digunakan kembali subquery dengan operator multi-nilai, seperti operator IN.
ANTARA Operator tidak dapat digunakan dengan sub-query, bagaimanapun, ANTARA dapat digunakan dalam subqueries.
Subquery biasanya digunakan dengan pernyataan SELECT. Sintaks dasar adalah sebagai berikut:
SELECT nama_kolom [, column_name] DARI table1 [, table2] MANA column_name OPERATOR (SELECT column_name [, column_name] DARI table1 [, table2] [MANA])
meja PERUSAHAAN Misalkan memiliki catatan berikut:
ID NAMA UMUR ALAMAT GAJI ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20.000,0 2 Allen 25 Texas 15.000,0 3 Teddy 23 Norwegia 20.000,0 4 Mark 25 Rich-Mond 65.000,0 5 David 27 Texas 85.000,0 6 Kim 22 South-Hall 45.000,0 7 James 24 Houston 10.000,0
Sekarang, mari kita memeriksa pernyataan subquery SELECT:
sqlite> SELECT * DARI PERUSAHAAN WHERE ID IN (SELECT ID DARI PERUSAHAAN MANA GAJI> 45000);
Ini menghasilkan hasil sebagai berikut:
ID NAMA UMUR ALAMAT GAJI ---------- ---------- ---------- ---------- ---------- 4 Mark 25 Rich-Mond 65.000,0 5 David 27 Texas 85.000,0
Subqueries juga dapat digunakan dengan pernyataan INSERT. Pernyataan INSERT menggunakan subquery untuk mengembalikan data ke meja lain. Di sub-query data yang dipilih dapat karakter apapun, tanggal, atau modifikasi fungsi numerik.
Sintaks dasar adalah sebagai berikut:
INSERT INTO table_name [(column1 [, column2])] SELECT [* | column1 [, column2] DARI table1 [, table2] [MANA VALUE OPERATOR]
Misalkan COMPANY_BKP PERUSAHAAN struktur tabel dan serupa, dan dapat menggunakan CREATE TABLE yang sama untuk membuat, hanya mengubah nama COMPANY_BKP meja. Sekarang salin seluruh tabel PERUSAHAAN ke COMPANY_BKP, sintaks adalah sebagai berikut:
sqlite> INSERT INTO COMPANY_BKP SELECT * DARI PERUSAHAAN WHERE ID IN (SELECT ID DARI PERUSAHAAN);
Subqueries dapat digunakan dengan pernyataan UPDATE. Bila menggunakan pernyataan UPDATE subquery, kolom satu atau beberapa diperbarui dalam tabel.
Sintaks dasar adalah sebagai berikut:
tabel UPDATE SET column_name = new_value [MANA OPERATOR [VALUE] (SELECT COLUMN_NAME DARI TABLE_NAME) [MANA)]
Misalkan kita memiliki COMPANY_BKP meja, meja PERUSAHAAN cadangan.
Contoh berikut tabel PERUSAHAAN semua AGE dari atau sama dengan 27 klien GAJI diperbarui asli 0.50 kali lipat:
sqlite> PERUSAHAAN UPDATE SET GAJI = GAJI * 0.50 MANA USIA DI (SELECT UMUR DARI COMPANY_BKP MANA AGE> = 27);
Hal ini akan mempengaruhi dua baris catatan PERUSAHAAN terakhir dalam tabel sebagai berikut:
ID NAMA UMUR ALAMAT GAJI ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 10.000,0 2 Allen 25 Texas 15.000,0 3 Teddy 23 Norwegia 20.000,0 4 Mark 25 Rich-Mond 65.000,0 5 David 27 Texas 42.500,0 6 Kim 22 South-Hall 45.000,0 7 James 24 Houston 10.000,0
Subqueries dapat digunakan dengan pernyataan DELETE, seperti laporan lain seperti yang disebutkan di atas.
Sintaks dasar adalah sebagai berikut:
DELETE FROM TABLE_NAME [MANA OPERATOR [VALUE] (SELECT COLUMN_NAME DARI TABLE_NAME) [MANA)]
Misalkan kita memiliki COMPANY_BKP meja, meja PERUSAHAAN cadangan.
Contoh berikut menghapus semua catatan pelanggan yang lebih besar dari atau sama AGE 27 meja PERUSAHAAN:
sqlite> DELETE DARI PERUSAHAAN MANA USIA DI (SELECT UMUR DARI COMPANY_BKP MANA AGE> 27);
Hal ini akan mempengaruhi dua baris catatan PERUSAHAAN terakhir dalam tabel sebagai berikut:
ID NAMA UMUR ALAMAT GAJI ---------- ---------- ---------- ---------- ---------- 2 Allen 25 Texas 15.000,0 3 Teddy 23 Norwegia 20.000,0 4 Mark 25 Rich-Mond 65.000,0 5 David 27 Texas 42.500,0 6 Kim 22 South-Hall 45.000,0 7 James 24 Houston 10.000,0