Se hai lavorato con sistemi di database relazionali, è probabile che tu abbia sentito parlare di sistemi di database popolari come MySQL, SQL Server o PostgreSQL. SQLite è un altro RDBMS estremamente utile che è molto semplice da configurare e utilizzare. Inoltre, ha molte caratteristiche distinte rispetto ad altri database relazionali. Questo tutorial su SQLite insegna i concetti di base che devi conoscere con l'aiuto di ampie pratiche pratiche.
Gli argomenti trattati in questo articolo sono:
- Cos'è SQLite?
- Caratteristiche di SQLite
- Installazione di SQLite su Windows
- Comandi SQLite
- Comandi del database
- Comandi tabella
- Operazioni CRUD
- Clausole/Condizioni SQLite
- Entra in SQLite
- Svantaggi di SQLite
Tutorial SQLite:cos'è SQLite?
Ecco la definizione standard del settore di SQLite:
SQLite è un motore di database relazionale transazionale, open source, a configurazione zero, autonomo, progettato per essere incorporato in un'applicazione.
Puoi considerare SQLite come "accendino ” versione di altri RDBMS complessi (Oracle, SQL, ecc.), in cui il motore di database è configurato per elaborazione indipendente (libreria in-process) ovvero un serverless, autonomo, a configurazione zero e transazionale . È noto per la sua portabilità, affidabilità e prestazioni elevate anche in ambienti con poca memoria. Inoltre, SQLite è una scelta popolare come database incorporato per l'archiviazione locale/client in programmi o applicazioni finali, a differenza di altri RDBMS, in cui è configurato il motore DB client-server.
Caratteristiche di SQLite
SQLite offre molte caratteristiche distinte come:
- Senza server: La maggior parte dei database SQL viene implementata come processo server separato, ma SQLite non dispone di un processo server separato. È un motore di database senza server. Legge e scrive direttamente sui normali file del disco.
- Configurazione zero: Non richiede alcuna configurazione per farlo funzionare. Ciò significa che non esiste alcun processo server che deve essere avviato, arrestato o configurato come in un sistema client/server.
- Digitazione manifest: SQLite utilizza la tipizzazione manifest, che consente la memorizzazione di qualsiasi quantità di qualsiasi tipo di dati in qualsiasi colonna indipendentemente dal tipo di dati dichiarato della colonna. Tieni presente che ci sono alcune eccezioni a questa regola.
- Leggero: Come suggerisce il nome, la libreria SQLite è molto leggera. Il fatto è che, sebbene lo spazio che utilizza vari a seconda del sistema in cui è installato, può occupare meno di 600 KiB di spazio.
- Portatile: A differenza di altri DBMS, un intero database SQLite viene archiviato in un unico file. Questo file può essere condiviso molto facilmente tramite un supporto rimovibile o un protocollo di trasferimento file.
- Scelta diversificata: Molti linguaggi di programmazione forniscono collegamenti per SQLite, inclusi C, C++, C#, Java, JavaScript, Ruby, Python e molti altri.
- Gratuito: SQLite è gratuito e open source. Per lavorare con SQLite non è richiesta una licenza commerciale.
Come elencato sopra, SQLite è noto per la sua configurazione zero, il che significa che non è richiesta alcuna configurazione o amministrazione complessa. Nella parte successiva di questo tutorial su SQLite, vediamo come installare SQLite sul tuo sistema.
Tutorial SQLite:installazione di SQLite su Windows
I passaggi da seguire sono:
Passaggio 1: Vai al sito Web ufficiale di SQLite e fai clic sul collegamento appropriato per scaricare i binari precompilati.
Passaggio 2: Scarica il file zip della riga di comando di SQLite (qui:sqlite-tools-win32-x86-3270200.zip) ed espandi questi file in una cartella a tua scelta.
Questo strumento da riga di comando SQLite conterrà i seguenti prodotti SQLite
- Nucleo SQLite :Il core SQLite contiene il motore di database e l'API pubblica effettivi.
- Strumento da riga di comando SQLite3 :L'applicazione sqlite3 è uno strumento da riga di comando basato sul core SQLite.
- Estensione Tcl :Questa libreria è essenzialmente una copia del core SQLite con i collegamenti Tcl aggiunti.
- Strumento di analisi SQLite :lo strumento di analisi SQLite viene utilizzato per analizzare i file di database.
Passaggio 3: Dopodiché, avviare la riga di comando di SQLite è semplice come fare clic sull'applicazione sqlite3, che farà apparire la riga di comando.
Se vuoi testare ulteriormente, digita semplicemente .help comando da sqlite> chiedere di vedere tutti i comandi disponibili in sqlite3 come mostrato di seguito.
Nota: Per impostazione predefinita, una sessione SQLite utilizza il database in memoria, quindi tutte le modifiche andranno perse al termine della sessione.
Abbastanza semplice vero? Quindi, iniziamo con i comandi SQLite.
Tutorial SQLite:comandi SQLite
Questa sezione dell'esercitazione SQLite presenta le istruzioni SQL di base che puoi utilizzare con SQLite.
Nota: I comandi SQLite terminano con un punto e virgola (;
). Dice a SQLite che il tuo comando è completo e dovrebbe essere eseguito. Inoltre, puoi distribuire il comando su più righe e utilizzare il punto e virgola sull'ultima riga.
Comandi del database
Questa sezione è composta da quei comandi con i quali puoi gestire il tuo database. I comandi sono:
- SQLite Crea database
SQLite non utilizza l'istruzione CREATE DATABASE come in altri sistemi di gestione di database relazionali, come MySQL, SQL Server, ecc. Per creare un nuovo database in SQLite, inserisci semplicemente sqlite3 seguito dal nome del file che si desidera utilizzare per il database. Il codice seguente crea un file di database chiamato StudentDetails.db:
Esempio
sqlite3 StudentDetails.db; sqlite> .databases main: D:sqliteStudentDetails.db;
- SQLite Allega database
Quando hai più database, puoi usarne solo uno alla volta. In SQLite, l'istruzione ATTACH DATABASE viene utilizzata per allegare un determinato database per la connessione corrente. Dopo questo comando, tutte le istruzioni SQLite verranno eseguite nel database allegato.
Esempio
sqlite> ATTACH DATABASE 'DepartmentDetails.db' AS 'Department'; sqlite> .databases main: D:sqliteStudentDetails.db; Department: D:sqliteDepartmentDetails.db
- Database di scollegamento SQLite
In SQLite, l'istruzione DETACH DATABASE viene utilizzata per scollegare il database con nome alias da una connessione al database precedentemente collegata tramite l'istruzione ATTACH. Se lo stesso file di database è stato allegato con più alias, questo comando disconnetterà solo il nome specificato e il resto dell'allegato continuerà a esistere. I database all'interno del database in memoria o temporaneo verranno distrutti completamente e il contenuto andrà perso.
Esempio
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
Comandi tabella
Qui impareremo come gestire le tabelle quando si utilizza SQLite.
- Crea tabella SQL
In SQLite, l'istruzione CREATE TABLE viene utilizzata per creare una nuova tabella. Durante la creazione della tabella, è necessario assegnare un nome alla tabella e definire la colonna e i tipi di dati di ciascuna colonna.
Sintassi:
CREATE TABLE table_name( Column1 column_type [constraints] Column2 column_type [constraints] [.....] );
Esempio
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) );
Puoi verificare se la tabella è stata creata o meno utilizzando .tables comando come mostrato di seguito. Nota che ho già creato una tabella chiamata DepartmentInfo dove DeptID è la chiave primaria. La tabella Dipartimenti ha un vincolo Chiave esterna per la tabella Studenti.
sqlite> .tables StudentInfo Contacts Emp_Master
- Tabella di rilascio SQLite
In SQLite, l'istruzione DROP TABLE consente di rimuovere o eliminare una tabella dal database SQLite. Una volta eliminata la tabella, tutti i dati in essa contenuti vengono rimossi definitivamente dal database. Vengono rimossi anche tutti gli indici e i trigger associati. Se è presente un vincolo di chiave esterna abilitato su quella tabella, verrà rimosso in modo equivalente per ogni riga della tabella e verranno eliminati anche tutti i trigger associati alla tabella.
Sintassi
DROP TABLE [ IF EXISTS ] table_name;
Esempio
DROP TABLE Department; Error: no such table: Department DROP TABLE Company; sqlite> .tables StudentInfo
Nota: IF EXISTS, è una clausola facoltativa. Se specificato, l'istruzione DROP TABLE non genererà un errore se una delle tabelle non esiste.
Inoltre, c'è una istruzione SQLite Alter Table , che capiremo nelle prossime sezioni di questo articolo. Ora che abbiamo creato una tabella, vediamo come inserire, eliminare e modificare i dati.
Tutorial SQLite:operazioni CRUD
- Query di inserimento SQLite
Dopo aver creato la tabella, è possibile utilizzare il comando SQLite Inserisci in per creare nuove righe nella tabella specificata. Esistono due forme significative dell'istruzione di inserimento SQLite. Il primo modulo utilizza una clausola VALUES per specificare un elenco di valori da inserire.
Sintassi
INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)] VALUES (value1, value2, value3,...valueN);
Esempio
INSERT INTO StudentInfo ( ID, NAME, AGE, ADDRESS, DEPARTMENTID, PHONE) VALUES (1,'Dean', 20, 'California', 2, '934*******');
Risultato
SELECT *from StudentInfo; ID NAME AGE ADDRESS DEPARTMENTID PHONE ---------- ---------- ---------- ---------- ---------- ---------- 1 Dean 20 California 2 934*******
Qui viene creata una singola nuova riga e ogni valore viene registrato nella rispettiva colonna. Tieni presente che entrambi gli elenchi devono avere lo stesso numero di articoli. Qui, l'elenco delle colonne è facoltativo. Possiamo anche inserire dati nella tabella senza specificare l'elenco delle colonne .
Esempio
INSERT INTO StudentInfo VALUES ( 2, 'SAM', 22, 'Texas', 2, '976*******');
Risultato
SELECT *from StudentInfo; ID NAME AGE ADDRESS DEPARTMENTID PHONE ---------- ---------- ---------- ---------- ---------- ---------- 1 Dean 20 California 2 934******* 2 SAM 22 Texas 2 976*******
SQLite offre anche una funzione perinserire più righe in una singola istruzione INSERT. La sintassi è quella mostrata di seguito.
Esempio
INSERT INTO StudentInfo VALUES (3,'John',23,'Norway',1,'923*******'), (4,'Mitch',22,'Houston',3,'934*******');
Risultato
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*******
Come puoi vedere, il formato dell'output non è del tutto simile a quello precedente. Quindi, come si cambia il formato dell'output in SQLite? Formattiamo l'output in modo che i nostri risultati siano un po' più facili da leggere.
- Formazione
Puoi usare .mode per cambiare la modalità di output. L'esempio precedente utilizza .mode list, che visualizza i risultati come un elenco. Inoltre, puoi utilizzare .headers per specificare se visualizzare o meno le intestazioni di colonna. Dopo aver apportato le modifiche, puoi visualizzare l'impostazione utilizzando .show comando.
Esempio
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
Risultato
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*******
- Query di selezione SQLite
In SQLite, l'istruzione Select viene utilizzata per recuperare i dati da una tabella, che restituisce i dati sotto forma di tabella dei risultati. Queste tabelle dei risultati sono anche chiamate insiemi di risultati. Utilizzando l'istruzione select di SQLite possiamo eseguire calcoli semplici o più espressioni in base ai nostri requisiti. Abbiamo già utilizzato un'istruzione SELECT in precedenza quando abbiamo inserito i dati.
Sintassi
SELECT [ALL | DISTINCT] result [FROM table-list] [WHERE expr]
- DISTINTA – Quando utilizziamo una parola chiave distinta in un'istruzione select, restituisce solo righe di dati distinte.
- TUTTI – Se utilizziamo la parola chiave ALL in un'istruzione select, restituisce tutte le righe di dati anche se è duplicata.
- DALL'elenco delle tabelle – È un elenco di tabelle da cui desideri ottenere i dati.
- Espressione WHERE – L'espressione WHERE viene utilizzata per definire le nostre condizioni personalizzate per ottenere i dati richiesti dalle tabelle.
Esempio1
SELECT ID, NAME FROM StudentInfo WHERE AGE < 21;
Risultato
ID NAME ---------- ---------- 1 Dean
Esempio2
Select NAME FROM StudentInfo WHERE DEPARTMENTID = (SELECT DeptID FROM DepartmentInfo WHERE DeptName = 'Psychology');
Risultato
//fetches people from department whose id is 2 NAME ---------- Dean SAM
- Query di aggiornamento SQLite
In SQLite, l'istruzione UPDATE può essere utilizzata per modificare i record esistenti in una tabella. La clausola WHERE di SQLite può essere utilizzata per specificare esattamente quali righe devono essere aggiornate. Puoi aggiornare facilmente tutte le righe, alcune righe o nessuna, a seconda delle condizioni di filtro applicate dalla clausola WHERE.
Sintassi
UPDATE table_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];
Esempio
UPDATE StudentInfo SET DEPARTMENTID = 4 WHERE ID = '2';
Risultato
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*******
- Query di eliminazione di SQLite
In SQLite, l'istruzione DELETE può essere utilizzata per eliminare il record dalla tabella. Puoi eliminare facilmente tutte le righe, alcune righe o nessuna, a seconda delle condizioni di filtro applicate dalla clausola WHERE.
Esempio
DELETE FROM DepartmentInfo WHERE DeptName = 'Science';
Risultato
SELECT *FROM DepartmentInfo; DeptID DeptName ---------- ----------- 1 Mathematics 2 Psychology 3 Sports 4 Music
Se tenti di eliminare un record a cui fa riferimento una chiave esterna, otterrai un errore. Sarà necessario eliminare prima i record di chiave esterna, prima di eliminare il record di chiave primaria. Proviamo a cancellare il dipartimento di scienze.
Esempio
DELETE FROM DepartmentInfo WHERE DeptName = 'Music'; Error: FOREIGN KEY constraint failed
Quindi, dobbiamo eliminare i record di chiave esterna prima di eliminare la chiave primaria.
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*******
Ora sai come modificare i record nella tabella del database SQLite. Andando oltre in questo blog tutorial di SQLite, discutiamo le diverse clausole e condizioni che incontri più frequentemente in SQLite.
Clausole/condizioni SQLite
Prima di iniziare con le clausole, ecco la sintassi completa dell'istruzione SELECT in SQLite.
Sintassi
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]]
Nota:ho aggiornato le tabelle StudentInfo e DepartmentInfo come mostrato di seguito.
//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
- SQLite DOVE
In SQLite, la clausola WHERE viene utilizzata per imporre restrizioni all'istruzione SELECT definendo una o più condizioni per ottenere i dati richiesti dalle tabelle nel database. Se la condizione specificata soddisfatta o vera, restituisce un valore specifico dalla tabella. Come hai visto prima, la clausola WHERE non solo viene utilizzata nell'istruzione SELECT, ma viene utilizzata anche nell'istruzione UPDATE, DELETE, ecc.
Esempio
SELECT NAME FROM StudentInfo WHERE AGE = 23;NAME ---------- John Johny Robin
In SQLite esistono numerosi operatori relazionali che possono essere utilizzati con la clausola WHERE.
- GRUPPO SQLite PER
In SQLite, la clausola GROUP BY viene utilizzata per aggregare i dati in un'unica riga in cui viene ripetuto il valore di una o più colonne specificate. Questa clausola viene utilizzata con la clausola WHERE nell'istruzione SELECT e precede la clausola ORDER BY.
Sintassi
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
Nota che il processo di raggruppamento ha due passaggi. Innanzitutto, l'espressione GROUP BY viene utilizzata per disporre le righe della tabella in gruppi diversi. Una volta definiti i gruppi, l'istruzione SELECT definisce il modo in cui tali gruppi vengono appiattiti in un'unica riga.
- SQLite ORDINA PER
In genere, le tabelle SQLite memorizzano i dati in un ordine non specificato e restituiranno i record nello stesso ordine non specificato durante il recupero dei dati utilizzando l'istruzione SQLite select. In questi casi, è possibile utilizzare la clausola ORDER BY per ordinare i record delle colonne in ordine crescente o decrescente. Nell'esempio seguente, ho raggruppato e ordinato9in ordine decrescente) i dati in base all'indirizzo.
Sintassi
SELECT expressions FROM tables-list [WHERE conditions] ORDER BY column1, column2,... [ ASC | DESC ];
Esempio
SELECT ADDRESS, COUNT(ADDRESS) FROM StudentInfo GROUP BY ADDRESS ORDER BY ADDRESS DESC; ADDRESS COUNT(ADDRESS) ---------- -------------- Texas 1 Norway 3 Houston 1 California 1
- SQLite AVENDO DA
In SQLite, il HAVING la clausola è identica a WHERE clausola. La clausola HAVING è un'ulteriore condizione applicata dopo che l'aggregazione è avvenuta insieme al gruppo nell'istruzione select. Generalmente in SQLite, WHERE La clausola viene utilizzata per applicare una condizione a singoli elementi in una tabella e HAVING La clausola viene utilizzata per aggiungere condizioni di filtro in base ai gruppi creati dalla clausola Group By.
Esempio
SELECT ADDRESS, COUNT(ADDRESS) FROM StudentInfo GROUP BY ADDRESS HAVING COUNT(*)>1; ADDRESS COUNT(ADDRESS) ---------- -------------- Norway 3
- Clausola limite SQLite
In SQLite, la clausola LIMIT viene utilizzata per impostare un limite ai record restituiti dall'istruzione select. Consideriamo un esempio per comprendere il concetto.
Sintassi
SELECT expressions FROM tables-list [WHERE conditions] LIMIT number_rows OFFSET offset_value;
Esempio
SELECT NAME, ADDRESS FROM StudentInfo LIMIT 4 OFFSET 2; NAME ADDRESS ---------- ---------- Mitch Houston SAM Texas Johny Norway Robin Norway
OFFSET è facoltativo e definisce quante righe saltare all'inizio del set di risultati in base a offset_value .
- SQLite AND &OR
In SQLite, gli operatori AND &OR vengono utilizzati per eseguire più condizioni su select, inserire, aggiornare ed eliminare istruzioni in base ai nostri requisiti. L'operatore AND di SQLite restituirà righe o record che soddisfano le condizioni definite utilizzando l'operatore AND.
Esempio1
SELECT NAME FROM StudentInfo WHERE AGE = 22 AND ADDRESS = 'Texas'; NAME ---------- SAM
La condizione OR viene utilizzata per definire più condizioni nelle istruzioni SQLite e restituirà righe o record dall'istruzione se una qualsiasi delle condizioni è soddisfatta.
Esempio2
SELECT NAME FROM StudentInfo WHERE (AGE = 22 AND ADDRESS = 'Norway') OR ADDRESS = 'Norway'; NAME ---------- John Johny Robin
- Operatore GLOB SQLite
In SQLite, l'operatore GLOB viene utilizzato per verificare se il valore della stringa specificato corrisponde o meno a un modello specifico. Nel caso in cui il valore della stringa corrisponda al valore del modello, restituirà true ed è simile all'operatore LIKE. Inoltre, GLOB fa distinzione tra maiuscole e minuscole.
Sintassi
SELECT * FROM table_name WHERE column_name GLOB 'search-expression'
Esempio
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*******
- SQLite Distinct
In SQLite, la parola chiave DISTINCT analizzerà il set di risultati dell'istruzione SELECT ed elimina le righe duplicate. Inoltre, i valori NULL sono considerati duplicati, quindi se utilizziamo la clausola DISTINCT con una colonna che ha valori NULL, manterrà solo una riga di un valore NULL. Quando applichi DISTINCT per più colonne, l'istruzione restituisce ciascuna combinazione univoca di coulnm1 e colonna 2.
Esempio
SELECT DISTINCT AGE FROM StudentInfo; AGE ---------- 20 23 22
- Operatore SQLite IN
In SQLite, l'operatore IN viene utilizzato per determinare se il valore specificato corrisponde a un elenco di valori dati o al risultato restituito dalla sottoquery.
Esempio
SELECT NAME FROM StudentInfo WHERE ADDRESS IN ('Texas', 'Houston'); NAME ---------- Mitch SAM
- SQLite UNION &UNION ALL
In SQLite, l'operatore UNION viene utilizzato per combinare i set di risultati di 2 o più istruzioni SELECT e rimuove le righe duplicate tra le varie istruzioni SELECT. Ricorda che le istruzioni SELECT che abbiamo usato con l'operatore UNION devono avere lo stesso numero di campi nei set di risultati con tipi di dati simili.
Sintassi
SELECT expression1, expression2,... expression_n FROM tables [WHERE conditions] UNION / UNION ALL SELECT expression1, expression2,... expression_n FROM tables [WHERE conditions];
Esempio
SELECT DEPARTMENTID FROM StudentInfo UNION SELECT DeptId FROM DepartmentInfo ORDER BY DEPARTMENTID ASC; DEPARTMENTID ------------ 1 2 3 4 5
L'operatore UNION ALL viene utilizzato per combinare i set di risultati di 2 o più istruzioni SELECT e restituirà tutte le righe inclusi i duplicati.
Esempio
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
Con questo, abbiamo coperto i comandi più basilari che potresti dover usare quando lavori con SQLite. Andando avanti con questo tutorial su SQLite, diamo un'occhiata all'istruzione join in SQLite.
Entra in SQLite
In SQLite, i join vengono utilizzati per combinare record da due o più tabelle in un database e ottenere record in base ai nostri requisiti. Diversi tipi di JOINS disponibili in SQLite sono:
- Inner Join – INNER JOIN viene utilizzato per combinare e restituire solo record corrispondenti da tabelle multiple in base alle condizioni definite nelle istruzioni SQLite.
- Unisciti esterni – SQLite Outer Join selezionerà le righe corrispondenti da più tabelle come Inner Join e alcune altre righe al di fuori della relazione. In termini semplici, possiamo dire che SQLite OUTER JOIN è un'aggiunta di INNER JOIN. In generale, abbiamo tre tipi di Outer Join nello standard SQL:LEFT, RIGHT e FULL Outer Join, ma SQLite supporta solo LEFT OUTER JOIN.
- Partecipa incrociata – Viene utilizzato per ottenere il prodotto cartesiano delle righe facendo corrispondere ogni riga della prima tabella con ogni riga della seconda tabella.
- Partecipa autonomamente – Serve per unire lo stesso tavolo con se stesso. Per utilizzare Self Join dobbiamo creare nomi di alias diversi per la stessa tabella per eseguire operazioni in base ai nostri requisiti.
Il concetto è simile a quello di altri sistemi di database relazionali come SQL. Quindi, per saperne di più puoi fare riferimento a questo articolo sui join SQL.
Con questo, abbiamo coperto i comandi di base di SQLite. I concetti avanzati non sono trattati qui. Quindi, resta sintonizzato per un altro articolo sui concetti avanzati di SQLite. Nonostante tutte le buone caratteristiche che SQLite ha da offrire, presenta anche alcuni svantaggi.
Tutorial SQLite:Svantaggi di SQLite
Di seguito sono elencati i demeriti dell'utilizzo di SQLite:
- Non funziona bene nell'architettura client/server.
- Nella maggior parte dei casi, la dimensione di un database SQLite è limitata a 2 GB.
- SQLite non ha implementato RIGHT OUTER JOIN e FULL OUTER JOIN. Con SQLite, possiamo implementare solo LEFT OUTER JOIN.
- Le viste in SQLite sono di sola lettura. Non possiamo utilizzare le istruzioni DML (Inserisci, Aggiorna ed Elimina) con le visualizzazioni.
- Non possiamo utilizzare le istruzioni GRANT e REVOKE con SQLite.
Con questo, giungiamo al termine di questo tutorial SQLite.
Se desideri saperne di più su MySQL e conoscere questo database relazionale open source, dai un'occhiata al nostro Formazione sulla certificazione DBA MySQL che viene fornito con una formazione dal vivo con istruttore e un'esperienza di progetto nella vita reale. Questa formazione ti aiuterà a comprendere in modo approfondito MySQL e a raggiungere la padronanza dell'argomento.
Hai una domanda per noi? Per favore menzionalo nella sezione commenti di questo tutorial di SQLite e ti risponderò.