Резюме :в този урок ще научите как да използвате 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
оператор за запитване на данни от една таблица.