sql >> Databáze >  >> RDS >> SQLite

SQLite Tutorial:Vše, co potřebujete vědět

Pokud jste pracovali s relačními databázovými systémy, je pravděpodobné, že jste slyšeli o populárních databázových systémech, jako je MySQL, SQL Server nebo PostgreSQL. SQLite je další extrémně užitečný RDBMS, který se velmi jednoduše nastavuje a ovládá. Oproti jiným relačním databázím má také mnoho odlišných funkcí. Tento výukový program SQLite učí základní koncepty, které potřebujete znát, pomocí rozsáhlých praktických postupů.

Témata probíraná v tomto článku jsou:

  • Co je SQLite?
    • Funkce SQLite
  • Instalace SQLite na Windows
  • Příkazy SQLite
    • Databázové příkazy
    • Tabulkové příkazy
    • Operace CRUD
    • Klauzule/podmínky SQLite
    • Připojí se k SQLite
  • Nevýhody SQLite

Výukový program SQLite:Co je SQLite?

Zde je průmyslová standardní definice SQLite:

SQLite je open source, nulová konfigurace, samostatný, samostatný, transakční relační databázový stroj navržený pro vložení do aplikace.

Můžete zvážit SQLite jako „zapalovač ” verze jiného komplexního RDBMS (Oracle, SQL atd.), kde je jeho databázový stroj nakonfigurován pro nezávislé zpracování (knihovna v procesu) tj. bezserverový, samostatný, bez konfigurace a transakční . Je známý svou přenositelností, spolehlivostí a silným výkonem i v prostředí s nízkou pamětí. SQLite je také oblíbenou volbou jako vestavěná databáze pro lokální/klientské úložiště v koncových programech nebo aplikacích, na rozdíl od jiných RDBMS, kde je konfigurován klient-server DB engine.

Funkce SQLite

SQLite nabízí mnoho odlišných funkcí, jako jsou:

  • Bez serveru: Většina databází SQL je implementována jako samostatný serverový proces, ale SQLite samostatný serverový proces nemá. Jedná se o databázový stroj bez serveru. Čte a zapisuje přímo na běžné soubory na disku.
  • Nulová konfigurace: Ke spuštění nevyžaduje žádnou konfiguraci. To znamená, že neexistuje žádný serverový proces, který je třeba spouštět, zastavovat nebo konfigurovat jako v systému klient/server.
  • Manifestní typ: SQLite používá typování manifestu, které umožňuje ukládání libovolného množství libovolného datového typu do libovolného sloupce bez ohledu na deklarovaný datový typ sloupce. Upozorňujeme, že z tohoto pravidla existují určité výjimky.
  • Nízká: Jak název napovídá, knihovna SQLite je velmi lehká. Věc se má tak, že i když se místo, které využívá, liší v závislosti na systému, kde je nainstalováno, může zabírat méně než 600 kB místa.
  • Přenosné: Na rozdíl od jiných DBMS je celá databáze SQLite uložena v jediném souboru. Tento soubor lze velmi snadno sdílet prostřednictvím vyměnitelných médií nebo protokolu pro přenos souborů.
  • Různý výběr: Mnoho programovacích jazyků poskytuje vazby pro SQLite, včetně C, C++, C#, Java, JavaScript, Ruby, Python a mnoha dalších.
  • Zdarma: SQLite je zdarma a s otevřeným zdrojovým kódem. Pro práci s SQLite není vyžadována komerční licence.

Jak je uvedeno výše, SQLite je známý svou nulovou konfigurací, což znamená, že není potřeba žádné složité nastavení nebo administrace. V další části tohoto výukového programu SQLite se podíváme, jak nainstalovat SQLite do vašeho systému.

Výukový program SQLite:Instalace SQLite na Windows

Postupujte takto:

Krok 1: Přejděte na oficiální web SQLite a kliknutím na vhodný odkaz stáhněte předkompilované binární soubory.

Krok 2: Stáhněte si soubor zip příkazového řádku SQLite (zde:sqlite-tools-win32-x86-3270200.zip) a rozbalte tyto soubory do složky dle vašeho výběru.

Tento nástroj příkazového řádku SQLite bude obsahovat následující produkty SQLite

  • Jádro SQLite :Jádro SQLite obsahuje skutečný databázový stroj a veřejné API.
  • Nástroj příkazového řádku SQLite3 :Aplikace sqlite3 je nástroj příkazového řádku, který je postaven na jádru SQLite.
  • Rozšíření Tcl :Tato knihovna je v podstatě kopií jádra SQLite s připojenými vazbami Tcl.
  • Nástroj pro analýzu SQLite :Nástroj SQLite analyzátor se používá k analýze databázových souborů.

Krok 3: Poté je spuštění příkazového řádku SQLite stejně jednoduché jako kliknutí na aplikaci sqlite3, čímž se příkazový řádek zobrazí.

Pokud chcete testovat dále, jednoduše zadejte .help příkaz z sqlite> zobrazí všechny dostupné příkazy v sqlite3 jako je uvedeno níže.

Poznámka: Ve výchozím nastavení používá relace SQLite databázi v paměti, takže po skončení relace budou všechny změny odstraněny.

Dost jednoduché, že? Pak začněme s příkazy SQLite.

Výukový program SQLite:Příkazy SQLite

Tato část výukového programu SQLite představuje základní příkazy SQL, které můžete použít s SQLite.

Poznámka: Příkazy SQLite končí středníkem (; ). Říká SQLite, že váš příkaz je dokončen a měl by být spuštěn. Svůj příkaz můžete také rozložit na více řádků a na posledním řádku použít středník.

Databázové příkazy

Tato sekce se skládá z těch příkazů, pomocí kterých můžete pracovat s vaší databází. Příkazy jsou:

  • SQLite Create Database

SQLite nepoužívá příkaz CREATE DATABASE jako v jiných systémech správy relačních databází, jako je MySQL, SQL Server atd. Chcete-li vytvořit novou databázi v SQLite, jednoduše zadejte sqlite3 následovaný podle názvu souboru, který chcete použít pro databázi. Následující kód vytvoří databázový soubor s názvem StudentDetails.db:

Příklad

sqlite3 StudentDetails.db;

sqlite> .databases 
main: D:sqliteStudentDetails.db;
  • SQLite Attach Database

Pokud máte více databází, můžete najednou používat pouze jednu. V SQLite se příkaz ATTACH DATABASE používá k připojení konkrétní databáze pro aktuální připojení. Po tomto příkazu budou všechny příkazy SQLite provedeny v připojené databázi.

Příklad

 sqlite> ATTACH DATABASE 'DepartmentDetails.db' AS 'Department';

sqlite> .databases
main: D:sqliteStudentDetails.db;
Department: D:sqliteDepartmentDetails.db
  • SQLite Detach Database

V SQLite se příkaz DETACH DATABASE používá k odpojení aliasově pojmenované databáze od databázového připojení, které bylo dříve připojeno pomocí příkazu ATTACH. Pokud byl stejný databázový soubor připojen s více aliasy, pak tento příkaz odpojí pouze dané jméno a zbytek přílohy bude nadále existovat. Databáze v rámci in-memory nebo dočasné databáze budou zcela zničeny a obsah bude ztracen.

Příklad

sqlite> .databases
main: D:sqliteStudentDetails.db;
Department: D:sqliteDepartmentDetails.db
Student: D:sqliteStudentDetails.db
DeptInformation: D:sqliteDepartmentDetails.db

sqlite> DETACH DATABASE 'Department';

sqlite> .databases
main: D:sqliteStudentDetails.db;
Student: D:sqliteStudentDetails.db
DeptInformation: D:sqliteDepartmentDetails.db

Příkazy tabulky

Zde se naučíme, jak zacházet s tabulkami při používání SQLite.

  • SQL Create Table

V SQLite se k vytvoření nové tabulky používá příkaz CREATE TABLE. Při vytváření tabulky musíte tabulku pojmenovat a definovat její sloupec a datové typy každého sloupce.

Syntaxe:

CREATE TABLE table_name(
         Column1 column_type [constraints]
         Column2 column_type [constraints]
         [.....]
          );

Příklad


CREATE TABLE StudentInfo(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
DEPARTMENTID INTEGER NOT NULL,
PHONE TEXT DEFAULT 'UNKNOWN',
FOREIGN KEY(DEPARTMENTID) REFERENCES DepartmentInfo(DeptID)
); 

Zda byla tabulka vytvořena či nikoli, můžete zkontrolovat pomocí .tables příkaz, jak je znázorněno níže. Všimněte si, že jsem již vytvořil tabulku s názvem DepartmentInfo kde DeptID je primární klíč. Tabulka Oddělení má omezení cizího klíče na tabulku Studenti.

 

sqlite> .tables
StudentInfo Contacts Emp_Master

  • SQLite Drop Table

V SQLite vám příkaz DROP TABLE umožňuje odstranit nebo odstranit tabulku z databáze SQLite. Jakmile je tabulka zrušena, všechna data, která obsahuje, jsou trvale odstraněna z databáze. Všechny související indexy a spouštěče jsou také odstraněny. Pokud je v této tabulce povoleno jakékoli omezení cizího klíče, bude to odstraněno ekvivalentně pro každý řádek v tabulce a všechny spouštěče spojené s tabulkou budou také zrušeny.

Syntaxe

DROP TABLE [ IF EXISTS ] table_name;

Příklad

 DROP TABLE Department;
Error: no such table: Department

DROP TABLE Company;
sqlite> .tables
StudentInfo

Poznámka: IF EXISTS je volitelná klauzule. Pokud je zadán, příkaz DROP TABLE nevyvolá chybu, pokud jedna z tabulek neexistuje.

K dispozici je také příkaz SQLite Alter Table , které pochopíme v několika následujících částech tohoto článku. Nyní, když jsme vytvořili tabulku, pojďme se podívat, jak vložit, odstranit a upravit data.

Výukový program SQLite:Operace CRUD

  • Dotaz na vložení SQLite

Po vytvoření tabulky lze příkaz SQLite Insert Into použít k vytvoření nových řádků v zadané tabulce. Existují dvě smysluplné formy příkazu SQLite insert. První formulář používá klauzuli VALUES k určení seznamu hodnot, které se mají vložit.

Syntaxe


INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]  
VALUES (value1, value2, value3,...valueN);

Příklad

INSERT INTO StudentInfo ( ID, NAME, AGE, ADDRESS, DEPARTMENTID, PHONE)
VALUES (1,'Dean', 20, 'California', 2, '934*******');

Výstup

SELECT *from StudentInfo;
ID          NAME        AGE         ADDRESS     DEPARTMENTID  PHONE
----------  ----------  ----------  ----------  ----------  ----------
1           Dean        20          California  2  934*******

Zde se vytvoří jeden nový řádek a každá hodnota se zaznamená do příslušného sloupce. Upozorňujeme, že oba seznamy musí mít stejné počet položek. Zde je seznam sloupců je volitelný. Data do tabulky můžeme vkládat ibez uvedení seznamu sloupců .

Příklad

INSERT INTO StudentInfo 
VALUES ( 2, 'SAM', 22, 'Texas', 2, '976*******');

Výstup

 SELECT *from StudentInfo;
ID          NAME        AGE         ADDRESS     DEPARTMENTID  PHONE
----------  ----------  ----------  ----------  ----------  ----------
1           Dean        20          California  2  934*******
2           SAM         22          Texas        2  976*******

SQLite také nabízí funkcivložení více řádků v jediném příkazu INSERT. Syntaxe je uvedena níže.

Příklad

INSERT INTO StudentInfo
VALUES (3,'John',23,'Norway',1,'923*******'),
(4,'Mitch',22,'Houston',3,'934*******');

Výstup

 Select *from StudentInfo;
1|Dean|20|California|2|934*******
2|SAM|22|Texas|2|976*******
3|John|23|Norway|1|923*******
4|Mitch|22|Houston|3|934*******

Jak vidíte, formát výstupu není úplně podobný tomu předchozímu. Jak tedy změníte formát výstupu v SQLite? Naformátujme výstup, aby byly naše výsledky o něco snáze čitelné.

  • Formátování

Ke změně výstupního režimu můžete použít .mode. Výše uvedený příklad používá .mode seznam, který zobrazí výsledky jako seznam. Můžete také použít .headers příkaz k určení, zda se mají či nemají zobrazovat záhlaví sloupců. Jakmile provedete změny, můžete nastavení zobrazit pomocí .show příkaz.

Příklad

 sqlite>.mode 'column'
sqlite> .headers on
sqlite> .show
echo: off
eqp: off
explain: auto
headers: on
mode: column
nullvalue: ""
output: stdout
colseparator: "|"
rowseparator: "n"
stats: off
width:
filename: StudentDetails.db

Výstup

 SELECT *FROM StudentInfo;

ID NAME AGE ADDRESS DEPARTMENT PHONE
---------- ---------- ---------- ---------- ---------- ----------
1 Dean 20 California 2 934*******
2 SAM 22 Texas 2 976*******
3 John 23 Norway 1 923*******
4 Mitch 22 Houston 3 934*******
  • Výběrový dotaz SQLite

V SQLite se k načítání dat z tabulky používá příkaz Select, který vrací data ve formě výsledkové tabulky. Tyto výsledkové tabulky se také nazývají sady výsledků. Pomocí příkazu SQLite select můžeme provádět jednoduché výpočty nebo více výrazů na základě našich požadavků. Při vkládání dat jsme již dříve použili příkaz SELECT.

Syntaxe

SELECT [ALL | DISTINCT] result [FROM table-list]
[WHERE expr]
  • DISTINCT – Když v příkazu select použijeme odlišné klíčové slovo, vrátí pouze odlišné řádky dat.
  • VŠECHNY – Pokud v příkazu select použijeme klíčové slovo ALL, vrátí všechny řádky dat, i když jsou duplicitní.
  • ZE seznamu tabulek – Je to seznam tabulek, ze kterých chcete získat data.
  • výraz WHERE – Výraz WHERE se používá k definování našich vlastních podmínek pro získání požadovaných dat z tabulek.

Příklad1

 SELECT ID, NAME FROM StudentInfo WHERE AGE < 21;

Výstup

ID NAME
---------- ----------
1 Dean

Příklad 2

Select NAME FROM StudentInfo WHERE DEPARTMENTID
= (SELECT DeptID FROM DepartmentInfo WHERE DeptName = 'Psychology');

Výstup

//fetches people from department whose id is 2

NAME
----------
Dean
SAM
  • Aktualizační dotaz SQLite

V SQLite lze příkaz UPDATE použít k úpravě existujících záznamů v tabulce. Klauzuli WHERE SQLite lze použít k přesnému určení, které řádky by měly být aktualizovány. V závislosti na podmínkách filtrování použitých klauzulí WHERE můžete snadno aktualizovat všechny řádky, některé řádky nebo žádný.

Syntaxe

UPDATE table_name  
SET column1 = value1, column2 = value2...., columnN = valueN  
WHERE [condition];

Příklad

UPDATE StudentInfo SET DEPARTMENTID = 4 WHERE ID = '2';

Výstup

 SELECT *FROM StudentInfo;
ID          NAME        AGE         ADDRESS     DEPARTMENTID  PHONE
----------  ----------  ----------  ----------  ------------  ----------
1           Dean        20          California  2             934*******
2           SAM         22          Texas       4             976*******
3           John        23          Norway      1             923*******
4           Mitch       22          Houston     3             934*******
  • SQLite Delete Query

V SQLite lze k odstranění záznamu z tabulky použít příkaz DELETE. V závislosti na podmínkách filtrování použitých klauzulí WHERE můžete snadno odstranit všechny řádky, některé řádky nebo žádný.

Příklad

 DELETE FROM DepartmentInfo WHERE DeptName = 'Science';

Výstup

 SELECT *FROM DepartmentInfo;
DeptID DeptName
---------- -----------
1 Mathematics
2 Psychology
3 Sports
4 Music

Pokud se pokusíte odstranit záznam, na který odkazuje cizí klíč, zobrazí se chyba. Před odstraněním záznamu primárního klíče budete muset nejprve odstranit záznamy cizího klíče. Zkusme smazat oddělení vědy.

Příklad

DELETE FROM DepartmentInfo WHERE DeptName = 'Music';
Error: FOREIGN KEY constraint failed

Před odstraněním primárního klíče tedy musíme odstranit záznamy cizích klíčů.

DELETE FROM StudentInfo WHERE DEPARTMENTID = 4;

sqlite> DELETE FROM DepartmentInfo WHERE DeptName = 'Music';

sqlite> SELECT *FROM DepartmentInfo;
DeptID      DeptName
----------  -----------
1           Mathematics
2           Psychology
3           Sports

 SELECT *FROM StudentInfo;
ID          NAME        AGE         ADDRESS     DEPARTMENTID  PHONE
----------  ----------  ----------  ----------  ------------  ----------
1           Dean        20          California  2             934*******
3           John        23          Norway      1             923*******
4           Mitch       22          Houston     3             934*******

Nyní víte, jak upravovat záznamy v tabulce databáze SQLite. V tomto výukovém blogu SQLite dále probereme různé klauzule a podmínky, se kterými se v SQLite nejčastěji setkáváte.

Klauzule/podmínky SQLite

Než začnete s klauzulemi, zde je úplná syntaxe příkazu SELECT v SQLite.

Syntaxe

SELECT [ALL | DISTINCT] result [FROM table-list]
[WHERE expr]
[GROUP BY expr-list]
[HAVING expr]
[compound-op select]*
[ORDER BY sort-expr-list]
[LIMIT integer [(OFFSET|,) integer]]

Poznámka:Aktualizoval jsem tabulky StudentInfo a DepartmentInfo, jak je uvedeno níže.

//Student 
Table ID          NAME        AGE         ADDRESS     DEPARTMENTID  PHONE
----------  ----------  ----------  ----------  ------------  ----------
1           Dean        20          California  2             934*******
3           John        23          Norway      1             923*******
4           Mitch       22          Houston     3             934*******
2           SAM         22          Texas       4             976*******
5           Johny       23          Norway      2             945*******
6           Robin       23          Norway      2             UNKNOWN

//Department Details
DeptID      DeptName
----------  -----------
1           Mathematics
2           Psychology
3           Sports
4           Music
5           Science
  • KDE SQLite

V SQLite se klauzule WHERE používá k omezení příkazu SELECT definováním jedné nebo více podmínek pro získání požadovaných dat z tabulek v databázi. Pokud je zadaná podmínka splněna nebo pravdivá, vrátí konkrétní hodnotu z tabulky. Jak jste viděli dříve Klauzule WHERE se používá nejen v příkazu SELECT, ale také v příkazu UPDATE, DELETE atd.

Příklad

SELECT NAME FROM StudentInfo WHERE AGE = 23;NAME
----------
John
Johny
Robin

V SQLite existuje řada relačních operátorů, které lze použít s klauzulí WHERE.

  • SQLite GROUP BY

V SQLite se klauzule GROUP BY používá k agregaci dat do jednoho řádku, kde se opakuje hodnota jednoho nebo více zadaných sloupců. Tato klauzule se používá s klauzulí WHERE v příkazu SELECT a předchází klauzuli ORDER BY.

Syntaxe

SELECT result
FROM [table-list]
GROUP BY [expr-list]
SELECT NAME, ADDRESS FROM StudentInfo GROUP BY NAME;

NAME ADDRESS
---------- ----------
Dean California
John Norway
Johny Norway
Mitch Houston
Robin Norway
SAM Texas

Všimněte si, že proces seskupování má dva kroky. Nejprve se výraz GROUP BY používá k uspořádání řádků tabulky do různých skupin. Jakmile jsou skupiny definovány, příkaz SELECT definuje, jak jsou tyto skupiny sloučeny do jednoho řádku.

  • SQLite ORDER BY

Tabulky SQLite obecně ukládají data v nespecifikovaném pořadí a při načítání dat pomocí příkazu SQLite select vrátí záznamy ve stejném nespecifikovaném pořadí. V takových případech můžete použít klauzuli ORDER BY, která se používá k řazení záznamů ve sloupcích buď ve vzestupném nebo sestupném pořadí. V níže uvedeném příkladu jsem seskupil a seřadil9v sestupném pořadí) data na základě adresy.

Syntaxe

SELECT expressions
FROM tables-list
[WHERE conditions]
ORDER BY column1, column2,... [ ASC | DESC ];

Příklad

SELECT ADDRESS, COUNT(ADDRESS) FROM StudentInfo GROUP BY ADDRESS ORDER BY ADDRESS DESC;
ADDRESS COUNT(ADDRESS)
---------- --------------
Texas 1
Norway 3
Houston 1
California 1
  • HAVING BY SQLite

V SQLite MÍT klauzule je totožná s klauzulí WHERE doložka. Klauzule HAVING je další podmínkou aplikovanou poté, co dojde k agregaci společně se skupinou pomocí příkazu select. Obecně v SQLite, KDE klauzule se používá k aplikaci podmínky na jednotlivé prvky v tabulce a HAVING klauzule se používá k přidání podmínek filtru na základě skupin vytvořených klauzulí Seskupit podle.

Příklad

SELECT ADDRESS, COUNT(ADDRESS) FROM StudentInfo 
GROUP BY ADDRESS 
HAVING COUNT(*)>1;

ADDRESS     COUNT(ADDRESS)
----------  --------------
Norway      3
  • Ustanovení o omezení SQLite

V SQLite se klauzule LIMIT používá k nastavení limitu pro záznamy vrácené příkazem select. Podívejme se na příklad, abychom porozuměli konceptu.

Syntaxe

SELECT expressions
FROM tables-list
[WHERE conditions]
LIMIT number_rows OFFSET offset_value;

Příklad

SELECT NAME, ADDRESS FROM StudentInfo LIMIT 4 OFFSET 2;
NAME        ADDRESS
----------  ----------
Mitch       Houston
SAM         Texas
Johny       Norway
Robin       Norway 

OFFSET je volitelný a určuje, kolik řádků se má přeskočit na začátku sady výsledků na základě hodnota_offsetu .

  • SQLite AND &OR

V SQLite se operátory AND &OR používají k provádění více podmínek u příkazů select, insert, update a delete na základě našich požadavků. Operátor SQLite AND vrátí řádky nebo záznamy, které splňují podmínky definované pomocí operátoru AND.

Příklad1

SELECT NAME FROM StudentInfo WHERE AGE = 22 AND ADDRESS = 'Texas';
NAME
----------
SAM

Podmínka OR se používá k definování více podmínek v příkazech SQLite a vrátí řádky nebo záznamy z příkazu, pokud je splněna některá z podmínek.

Příklad 2

SELECT NAME FROM StudentInfo WHERE (AGE = 22 AND ADDRESS = 'Norway') OR ADDRESS = 'Norway';
NAME
----------
John
Johny
Robin
  • Operátor SQLite GLOB

V SQLite se operátor GLOB používá ke kontrole, zda daná hodnota řetězce odpovídá konkrétnímu vzoru nebo ne. V případě, že se hodnota řetězce shoduje s hodnotou vzoru, vrátí hodnotu true a je podobný operátoru LIKE. GLOB také rozlišujevelká a malá písmena.

Syntaxe

SELECT * FROM table_name
WHERE column_name GLOB 'search-expression'

Příklad

SELECT *FROM StudentInfo WHERE NAME GLOB 'Joh*';
ID NAME AGE ADDRESS DEPARTMENTID PHONE
---------- ---------- ---------- ---------- ------------ ----------
3 John 23 Norway 1 923*******
5 Johny 23 Norway 2 945*******
  • Rozlišení SQLite

V SQLite klíčové slovo DISTINCT prohledá sadu výsledků příkazu SELECT a odstraní jakékoli duplicitní řádky. Hodnoty NULL se také považují za duplikáty, takže pokud použijeme klauzuli DISTINCT se sloupcem, který má hodnoty NULL, zachová pouze jeden řádek s hodnotou NULL. Když použijete DISTINCT pro více sloupců, vrátí příkaz každou jedinečnou kombinaci coulnm1 a sloupec 2.

Příklad

SELECT DISTINCT AGE FROM StudentInfo;
AGE
----------
20
23
22
  • Operátor SQLite IN

V SQLite se operátor IN používá k určení, zda daná hodnota odpovídá seznamu daných hodnot nebo výsledku vrácenému poddotazem.

Příklad

SELECT NAME FROM StudentInfo WHERE ADDRESS IN ('Texas', 'Houston');
NAME
----------
Mitch
SAM
  • SQLite UNION &UNION ALL

V SQLite se operátor UNION používá ke kombinaci sad výsledků 2 nebo více příkazů SELECT a odstraní duplicitní řádky mezi různými příkazy SELECT. Pamatujte, že příkazy SELECT, které jsme použili s operátorem UNION, musí mít stejný počet polí ve výsledkových sadách s podobnými datovými typy.

Syntaxe

SELECT expression1, expression2,... expression_n
FROM tables
[WHERE conditions]

UNION / UNION ALL

SELECT expression1, expression2,... expression_n
FROM tables
[WHERE conditions];

Příklad

 SELECT DEPARTMENTID FROM StudentInfo 
UNION
SELECT DeptId FROM DepartmentInfo ORDER BY DEPARTMENTID ASC;

DEPARTMENTID
------------
1
2
3
4
5

Operátor UNION ALL se používá ke kombinaci sad výsledků 2 nebo více příkazů SELECT a vrátí všechny řádky včetně duplikátů.

Příklad

SELECT DEPARTMENTID FROM StudentInfo UNION ALL SELECT DeptId FROM DepartmentInfo ORDER BY DEPARTMENTID ASC;
DEPARTMENTID
------------
1
1
2
2
2
2
3
3
4
4
5

Tímto jsme pokryli nejzákladnější příkazy, které možná budete muset používat při práci s SQLite. Posuneme-li se v tomto tutoriálu SQLite vpřed, podívejme se na příkaz join v SQLite.

Připojí se k SQLite

V SQLite se spojení používají ke spojení záznamů ze dvou nebo více tabulek v databázi a získání záznamů na základě našich požadavků. Různé typy JOINS dostupné v SQLite jsou:

  • Vnitřní spojení – INNER JOIN se používá ke kombinování a vracení pouze odpovídajících záznamů z vícenásobných tabulek na základě podmínek definovaných v příkazech SQLite.
  • Vnější spojení – SQLite Outer Join vybere odpovídající řádky z více tabulek stejně jako Inner Join a některé další řádky mimo vztah. Zjednodušeně lze říci, že SQLite OUTER JOIN je doplňkem INNER JOIN. Obecně máme ve standardu SQL tři typy vnějších spojení, kterými jsou LEFT, RIGHT a FULL Outer Joins, ale SQLite podporuje pouze LEFT OUTER JOIN.
  • Křížové připojení – Používá se k získání kartézského součinu řádků porovnáním každého řádku první tabulky s každým řádkem druhé tabulky.
  • Vlastní připojení – Používá se ke spojení stejného stolu se sebou samým. Abychom mohli používat Self Join, musíme vytvořit různé názvy aliasů pro stejnou tabulku, aby bylo možné provádět operace na základě našich požadavků.

Koncept je podobný jako u jiných relačních databázových systémů, jako je SQL. Chcete-li se tedy dozvědět více, můžete se podívat na tento článek o SQL Joins.

Tímto jsme pokryli základní příkazy SQLite. Pokročilé koncepty zde nejsou zahrnuty. Takže zůstaňte naladěni na další článek o pokročilých konceptech SQLite. I přes všechny dobré funkce, které SQLite nabízí, má také určité nevýhody.

Výukový program SQLite:Nevýhody SQLite

Níže jsou uvedeny nevýhody používání SQLite:

  • Nefunguje dobře v architektuře klient/server.
  • Velikost databáze SQLite je ve většině případů omezena na 2 GB.
  • SQLite neimplementovalo RIGHT OUTER JOIN a FULL OUTER JOIN. S SQLite můžeme implementovat pouze LEFT OUTER JOIN.
  • Zobrazení v SQLite jsou pouze pro čtení. S Views nemůžeme používat příkazy DML (Insert, Update a Delete).
  • S SQLite nemůžeme používat příkazy GRANT a REVOKE.

Tímto se dostáváme ke konci tohoto kurzu SQLite.

Pokud se chcete dozvědět více o MySQL a poznat tuto relační databázi s otevřeným zdrojovým kódem, podívejte se na naše školení certifikace MySQL DBA který přichází s instruktorem vedeným živým školením a reálnými zkušenostmi z projektů. Toto školení vám pomůže porozumět MySQL do hloubky a pomůže vám dosáhnout zvládnutí tohoto předmětu.

Máte na nás otázku? Zmiňte to prosím v sekci komentářů tohoto SQLite Tutoriálu a já se vám ozvu.


  1. Musím v Oracle vytvářet indexy cizích klíčů?

  2. ORA-01461:lze svázat hodnotu LONG pouze pro vložení do sloupce LONG-Vyskytuje se při dotazování

  3. Jak získat záznamy za posledních 7 dní v MySQL

  4. Požadavky na obnovu před zálohováním