Резюме :в този урок ще научите как да използвате SQLite SELECT оператор за запитване на данни от една таблица.
SELECT изразът е един от най-често използваните изрази в SQL. SQLite SELECT операторът предоставя всички функции на SELECT израз в стандарт SQL.
Проста употреба на SELECT изявление
Можете да използвате SELECT изявление за извършване на просто изчисление, както следва:
SELECT 1 + 1;Code language: SQL (Structured Query Language) (sql) Опитайте го
Можете да използвате множество изрази в SELECT изявление, както следва:
SELECT
10 / 5,
2 * 4 ;Code language: SQL (Structured Query Language) (sql) Опитайте го
Запитване на данни от таблица с помощта на SELECT изявление
Често използваме SELECT оператор за запитване на данни от една или повече таблици. Синтаксисът на SELECT изявлението е както следва:
SELECT DISTINCT column_list
FROM table_list
JOIN table ON join_condition
WHERE row_filter
ORDER BY column
LIMIT count OFFSET offset
GROUP BY column
HAVING group_filter;Code language: SQL (Structured Query Language) (sql)
SELECT операторът е най-сложният израз в SQLite. За да помогнем за по-лесното разбиране на всяка част, ще разбием SELECT изявление в множество лесни за разбиране уроци.
- Използвайте клаузата ORDER BY, за да сортирате набора от резултати
- Използвайте клауза DISTINCT за заявка за уникални редове в таблица
- Използвайте клаузата WHERE за филтриране на редове в набора от резултати
- Използвайте клаузите LIMIT OFFSET, за да ограничите броя на върнатите редове
- Използвайте INNER JOIN или LEFT JOIN, за да заявите данни от множество таблици с помощта на присъединяване.
- Използвайте GROUP BY, за да разпределите груповите редове в групи и да приложите обобщена функция за всяка група.
- Използвайте клауза HAVING за филтриране на групи
В този урок ще се съсредоточим върху най-простата форма на SELECT израз, който ви позволява да заявявате данни от една таблица.
SELECT column_list
FROM table;Code language: SQL (Structured Query Language) (sql)
Въпреки че SELECT клаузата се появява преди FROM клауза, SQLite оценява FROM първо клауза и след това SELECT клауза, следователно:
- Първо посочете таблицата, от която искате да получите данни в
FROMклауза. Забележете, че можете да имате повече от една таблица вFROMклауза. Ще го обсъдим в следващия урок. - Второ, посочете колона или списък с колони, разделени със запетая, в
SELECTклауза.
Използвате точка и запетая (;), за да прекратите изявлението.
SQLite SELECT примери
Нека да разгледаме tracks таблица в примерната база данни.
tracks таблицата съдържа колони и редове. Прилича на електронна таблица.
За да получите данни от таблицата с песни, като например trackid, име на песен, композитор и единична цена, използвате следното изявление:
SELECT
trackid,
name,
composer,
unitprice
FROM
tracks;Code language: SQL (Structured Query Language) (sql) Опитайте го
Вие посочвате имена на колони от списък, за които искате да получите данни, в SELECT клауза и tracks таблица в FROM клауза. SQLite връща следния резултат:
За да получите данни от всички колони, посочвате колоните на tracks таблица в SELECT клауза, както следва:
SELECT
trackid,
name,
albumid,
mediatypeid,
genreid,
composer,
milliseconds,
bytes,
unitprice
FROM
tracks;Code language: SQL (Structured Query Language) (sql) Опитайте го
За таблица с много колони заявката ще бъде толкова дълга, че ще отнеме време за въвеждане. За да избегнете това, можете да използвате звездичката (*), която е съкращението за всички колони на таблицата, както следва:
SELECT * FROM tracks;Code language: SQL (Structured Query Language) (sql) Опитайте го
Заявката вече е по-кратка и по-чиста.
Въпреки това...
Трябва да използвате звездичката (*) само за целите на тестването, а не при разработването на реално приложение.
Защото...
Когато разработвате приложение, трябва да контролирате какво SQLite връща към вашето приложение. Да предположим, че една таблица има 3 колони и вие използвате звездичката (*), за да извлечете данните и от трите колони.
Ами ако някой премахне колона, приложението ви няма да работи правилно, защото предполага, че има три върнати колони и логиката за обработка на тези три колони ще бъде нарушена.
Ако някой добави повече колони, приложението ви може да работи, но получава повече данни, отколкото е необходимо, което създава повече I/O служебни разходи между базата данни и приложението.
Затова се опитайте да избягвате използването на звездичката (*) като добър навик, когато използвате SELECT изявление.
В този урок научихте как да използвате проста форма на SQLite SELECT оператор за запитване на данни от една таблица.