SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Tutorial SQLite:Tudo o que você precisa saber

Se você já trabalhou com sistemas de banco de dados relacionais, provavelmente já ouviu falar de sistemas de banco de dados populares como MySQL, SQL Server ou PostgreSQL. SQLite é outro RDBMS extremamente útil que é muito simples de configurar e operar. Além disso, possui muitos recursos distintos em relação a outros bancos de dados relacionais. Este tutorial SQLite ensina conceitos básicos que você precisa saber com a ajuda de extensas práticas práticas.

Os tópicos discutidos neste artigo são:

  • O que é SQLite?
    • Recursos do SQLite
  • Instalando o SQLite no Windows
  • Comandos SQLite
    • Comandos do banco de dados
    • Comandos de tabela
    • Operações CRUD
    • Cláusulas/condições SQLite
    • Junta-se no SQLite
  • Desvantagens do SQLite

Tutorial SQLite:O que é SQLite?


Aqui está a definição padrão da indústria de SQLite:
SQLite é um mecanismo de banco de dados relacional de transação de código aberto, configuração zero, independente e independente, projetado para ser incorporado em um aplicativo.

Você pode considerar SQLite como um “isqueiro ” de outro RDBMS complexo (Oracle, SQL, etc.), onde seu mecanismo de banco de dados é configurado para processamento independente (biblioteca em processo) ou seja, um sem servidor, autônomo, de configuração zero e transacional . É conhecido por sua portabilidade, confiabilidade e forte desempenho, mesmo em ambientes com pouca memória. Além disso, o SQLite é uma escolha popular como um banco de dados incorporado para armazenamento local/cliente em programas ou aplicativos finais, ao contrário de outros RDBMS, onde o mecanismo de banco de dados cliente-servidor é configurado.

Recursos do SQLite

O SQLite oferece muitos recursos distintos, como:

  • Sem servidor: A maioria dos bancos de dados SQL é implementada como um processo de servidor separado, mas o SQLite não possui um processo de servidor separado. É um mecanismo de banco de dados sem servidor. Ele lê e grava diretamente em arquivos de disco comuns.
  • Configuração zero: Não requer configuração para executá-lo. Isso significa que não há nenhum processo do servidor que precise ser iniciado, interrompido ou configurado como em um sistema cliente/servidor.
  • Digitação de manifesto: O SQLite usa a tipagem de manifesto, que permite o armazenamento de qualquer quantidade de qualquer tipo de dados em qualquer coluna, independentemente do tipo de dados declarado da coluna. Observe que há algumas exceções a essa regra.
  • Leve: Como o nome indica, a biblioteca SQLite é muito leve. O problema é que, embora o espaço usado varie dependendo do sistema em que está instalado, pode ocupar menos de 600KiB de espaço.
  • Portátil: Ao contrário de outros DBMS, um banco de dados SQLite inteiro é armazenado em um único arquivo. Este arquivo pode ser compartilhado via mídia removível ou protocolo de transferência de arquivos com muita facilidade.
  • Escolha diversificada: Muitas linguagens de programação fornecem ligações para SQLite, incluindo C, C++, C#, Java, JavaScript, Ruby, Python e muito mais.
  • Gratuito: SQLite é gratuito e de código aberto. Para trabalhar com SQLite não é necessária uma licença comercial.

Como listado acima, o SQLite é conhecido por sua configuração zero, o que significa que nenhuma configuração ou administração complexa é realmente necessária. Na próxima parte deste tutorial do SQLite, vamos ver como instalar o SQLite em seu sistema.

Tutorial do SQLite:Instalando o SQLite no Windows


Os passos a seguir são:

Etapa 1: Vá para o site oficial do SQLite e clique no link adequado para baixar os binários pré-compilados.

Etapa 2: Baixe o arquivo zip da linha de comando SQLite (aqui:sqlite-tools-win32-x86-3270200.zip) e expanda esses arquivos em uma pasta de sua escolha.

Esta ferramenta de linha de comando SQLite conterá os seguintes produtos SQLite
  • Núcleo SQLite :o núcleo SQLite contém o mecanismo de banco de dados real e a API pública.
  • Ferramenta de linha de comando SQLite3 :o aplicativo sqlite3 é uma ferramenta de linha de comando construída sobre o núcleo SQLite.
  • Extensão Tcl :Esta biblioteca é essencialmente uma cópia do núcleo SQLite com as ligações Tcl adicionadas.
  • Ferramenta de análise SQLite :A ferramenta SQLite Analyzer é usada para analisar arquivos de banco de dados.

Etapa 3: Depois disso, iniciar a linha de comando SQLite é tão simples quanto clicar no aplicativo sqlite3, que fará a linha de comando aparecer.

Se você quiser testar mais, basta digitar .help comando de sqlite> prompt para ver todos os comandos disponíveis em sqlite3 como mostrado abaixo.

Observação: Por padrão, uma sessão SQLite usa o banco de dados na memória, portanto, todas as alterações desaparecerão quando a sessão terminar.

Simples o suficiente certo? Então, vamos começar com os comandos SQLite.

Tutorial SQLite:Comandos SQLite


Esta seção do tutorial do SQLite apresenta instruções SQL básicas que você pode usar com o SQLite.

Observação: Os comandos SQLite terminam com um ponto e vírgula (; ). Ele informa ao SQLite que seu comando está completo e deve ser executado. Além disso, você pode espalhar seu comando por várias linhas e usar o ponto e vírgula na última linha.

Comandos do banco de dados


Esta seção consiste nesses comandos, pelos quais você pode lidar com seu banco de dados. Os comandos são:
  • Criar banco de dados SQLite

O SQLite não usa a instrução CREATE DATABASE como em outros sistemas de gerenciamento de banco de dados relacional, como MySQL, SQL Server, etc. Para criar um novo banco de dados no SQLite, basta digitar sqlite3 seguido pelo nome do arquivo que você deseja usar para o banco de dados. O código a seguir cria um arquivo de banco de dados chamado StudentDetails.db:

Exemplo

sqlite3 StudentDetails.db;

sqlite> .databases 
main: D:sqliteStudentDetails.db;
  • Banco de dados de anexação SQLite

Quando você tem vários bancos de dados, pode usar apenas um de cada vez. No SQLite, a instrução ATTACH DATABASE é usada para anexar um banco de dados específico à conexão atual. Após este comando, todas as instruções SQLite serão executadas no banco de dados anexado.

Exemplo

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

sqlite> .databases
main: D:sqliteStudentDetails.db;
Department: D:sqliteDepartmentDetails.db
  • Anexar banco de dados SQLite

No SQLite, a instrução DETACH DATABASE é usada para desanexar o banco de dados com nome de alias de uma conexão de banco de dados que foi anexada anteriormente usando a instrução ATTACH. Se o mesmo arquivo de banco de dados tiver sido anexado com vários aliases, esse comando desconectará apenas o nome fornecido e o restante do anexo continuará existindo. Os bancos de dados dentro do banco de dados em memória ou temporário serão destruídos completamente e o conteúdo será perdido.

Exemplo

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


Comandos de tabela

Aqui vamos aprender como lidar com tabelas ao usar o SQLite.
  • Criar tabela SQL

No SQLite, a instrução CREATE TABLE é usada para criar uma nova tabela. Ao criar a tabela, você precisa nomear a tabela e definir sua coluna e os tipos de dados de cada coluna.

Sintaxe:

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

Exemplo


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)
); 

Você pode verificar se a tabela foi criada ou não usando .tables comando como mostrado abaixo. Observe que já criei uma tabela chamada DepartmentInfo onde DeptID é a chave primária. A tabela Departments tem uma restrição de chave estrangeira para a tabela Students.

 

sqlite> .tables
StudentInfo Contacts Emp_Master

  • Tabela de descarte do SQLite

No SQLite, a instrução DROP TABLE permite remover ou excluir uma tabela do banco de dados SQLite. Depois que a tabela é eliminada, todos os dados que ela contém são removidos permanentemente do banco de dados. Quaisquer índices e gatilhos associados também são removidos. Se houver alguma restrição de chave estrangeira habilitada nessa tabela, isso será removido de forma equivalente para cada linha na tabela e quaisquer gatilhos associados à tabela também serão descartados.

Sintaxe

DROP TABLE [ IF EXISTS ] table_name;

Exemplo

 DROP TABLE Department;
Error: no such table: Department

DROP TABLE Company;
sqlite> .tables
StudentInfo

Observação: IF EXISTS, é uma cláusula opcional. Se especificado, a instrução DROP TABLE não gerará um erro se uma das tabelas não existir.

Além disso, há uma instrução SQLite Alter Table , que entenderemos nas próximas seções deste artigo. Agora que criamos uma tabela, vamos verificar como inserir, excluir e alterar os dados.

Tutorial SQLite:Operações CRUD

  • Consulta de inserção SQLite

Depois de criar a tabela, o comando SQLite Insert Into pode ser usado para criar novas linhas na tabela especificada. Existem duas formas significativas da instrução de inserção SQLite. O primeiro formulário usa uma cláusula VALUES para especificar uma lista de valores a serem inseridos.

Sintaxe


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

Exemplo

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

Saída

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

Aqui, uma única nova linha é criada e cada valor é registrado em sua respectiva coluna. Observe que ambas as listas devem ter o mesmo número de ítens. Aqui, a lista das colunas é opcional. Também podemos inserir dados na tabela sem especificar a lista de colunas .

Exemplo

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

Saída

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

O SQLite também oferece um recurso parainserir várias linhas em uma única instrução INSERT. A sintaxe é a mostrada abaixo.

Exemplo

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

Saída

 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*******

Como você pode ver, o formato da saída não é muito semelhante ao anterior. Então, como você altera o formato de saída no SQLite? Vamos formatar a saída para que nossos resultados sejam um pouco mais fáceis de ler.

  • Formatação

Você pode usar .mode para alterar o modo de saída. O exemplo acima usa .mode list, que exibe os resultados como uma lista. Além disso, você pode usar .headers para especificar se os cabeçalhos das colunas devem ou não ser exibidos. Depois de fazer as alterações, você pode visualizar a configuração usando .show comando.

Exemplo

 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

Saída

 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*******
  • Consulta de seleção SQLite

No SQLite, a instrução Select é usada para buscar dados de uma tabela, que retorna dados na forma de uma tabela de resultados. Essas tabelas de resultados também são chamadas de conjuntos de resultados. Usando a instrução SQLite select, podemos realizar cálculos simples ou várias expressões com base em nossos requisitos. Já usamos uma instrução SELECT anteriormente quando inserimos dados.

Sintaxe

SELECT [ALL | DISTINCT] result [FROM table-list]
[WHERE expr]
  • DISTINTO – Quando usamos a palavra-chave distinct em uma instrução select, ela retorna apenas linhas distintas de dados.
  • TODOS – Se usarmos a palavra-chave ALL em uma instrução select, ela retornará todas as linhas de dados, mesmo que esteja duplicada.
  • DE lista de tabelas – É uma lista de tabelas das quais você deseja obter dados.
  • expressão WHERE – A expressão WHERE é usada para definir nossas condições personalizadas para obter os dados necessários das tabelas.

Exemplo1

 SELECT ID, NAME FROM StudentInfo WHERE AGE < 21;

Saída

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

Exemplo2

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

Saída

//fetches people from department whose id is 2

NAME
----------
Dean
SAM
  • Consulta de atualização do SQLite

No SQLite, a instrução UPDATE pode ser usada para modificar os registros existentes em uma tabela. A cláusula WHERE do SQLite pode ser usada para especificar exatamente quais linhas devem ser atualizadas. Você pode atualizar facilmente todas as linhas, algumas linhas ou nenhuma, dependendo das condições de filtragem aplicadas pela cláusula WHERE.

Sintaxe

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

Exemplo

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

Saída

 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*******
  • Consulta de exclusão do SQLite

No SQLite, a instrução DELETE pode ser usada para excluir o registro da tabela. Você pode excluir facilmente todas as linhas, algumas linhas ou nenhuma, dependendo das condições de filtragem aplicadas pela cláusula WHERE.

Exemplo

 DELETE FROM DepartmentInfo WHERE DeptName = 'Science';

Saída

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

Se você tentar excluir um registro referenciado por uma chave estrangeira, receberá um erro. Você precisará excluir os registros de chave estrangeira primeiro, antes de excluir o registro de chave primária. Vamos tentar excluir a ciência do departamento.

Exemplo

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

Portanto, precisamos excluir os registros de chave estrangeira antes de excluir a chave primária.
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*******

Agora você sabe como editar os registros na tabela do Banco de Dados SQLite. Avançando neste blog de tutorial do SQLite, vamos discutir diferentes cláusulas e condições que você encontra no SQLite com mais frequência.

Cláusulas/condições SQLite


Antes de começar com as cláusulas, aqui está a sintaxe completa da instrução SELECT no SQLite.

Sintaxe
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]]

Observação:atualizei as tabelas StudentInfo e DepartmentInfo conforme mostrado abaixo.
//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 ONDE

No SQLite, a cláusula WHERE é usada para impor restrições à instrução SELECT, definindo uma ou mais condições para obter os dados necessários das tabelas do banco de dados. Se a condição especificada for satisfeita ou verdadeira, ela retornará o valor específico da tabela. Como você viu antes A cláusula WHERE não só é usada na instrução SELECT, mas também é usada na instrução UPDATE, DELETE, etc.

Exemplo

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

No SQLite, há vários operadores relacionais que podem ser usados ​​com a cláusula WHERE.

  • SQLite GROUP BY

No SQLite, a cláusula GROUP BY é usada para agregar dados em uma única linha onde o valor de uma ou mais colunas especificadas é repetido. Esta cláusula é usada com a cláusula WHERE na instrução SELECT e precede a cláusula ORDER BY.

Sintaxe

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

Observe que o processo de agrupamento tem duas etapas. Primeiro, a expressão GROUP BY é usada para organizar as linhas da tabela em diferentes grupos. Depois que os grupos são definidos, a instrução SELECT define como esses grupos são reduzidos em uma única linha.

  • SQLite ORDER BY

Geralmente, as tabelas SQLite armazenam dados em ordem não especificada e retornarão registros na mesma ordem não especificada ao buscar dados usando a instrução SQLite select. Nesses casos, você pode usar a cláusula ORDER BY para classificar os registros da coluna em ordem crescente ou decrescente. No exemplo abaixo, agrupei e ordenei 9 em ordem decrescente) os dados com base no endereço.

Sintaxe

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

Exemplo

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 TENDO POR

No SQLite, o HAVING cláusula é idêntica a WHERE cláusula. A cláusula HAVING é uma condição adicional aplicada após a agregação ocorrer junto com o group by na instrução select. Geralmente em SQLite, WHERE cláusula é usada para aplicar uma condição a elementos individuais em uma tabela e a cláusula HAVING A cláusula é usada para adicionar condições de filtro com base nos grupos criados pela cláusula Group By.

Exemplo

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

ADDRESS     COUNT(ADDRESS)
----------  --------------
Norway      3
  • Cláusula de limite SQLite

No SQLite, a cláusula LIMIT é usada para definir um limite para os registros retornados pela instrução select. Vamos considerar um exemplo para entender o conceito.

Sintaxe

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

Exemplo

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

OFFSET é opcional e define quantas linhas devem ser ignoradas no início do conjunto de resultados com base em offset_value .
  • SQLite AND &OR

No SQLite, os operadores AND &OR são usados ​​para executar várias condições em instruções de seleção, inserção, atualização e exclusão com base em nossos requisitos. O operador SQLite AND retornará linhas ou registros que satisfaçam as condições definidas usando o operador AND.

Exemplo1

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

A condição OR é usada para definir várias condições em instruções SQLite e retornará linhas ou registros da instrução se qualquer uma das condições for satisfeita.

Exemplo2

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

No SQLite, o operador GLOB é usado para verificar se o valor da string determinada corresponde a um padrão específico ou não. Caso o valor da string corresponda ao valor do padrão, ele retornará true e é semelhante ao operador LIKE. Além disso, o GLOB diferencia maiúsculas de minúsculas.

Sintaxe

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

Exemplo

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 distinto

No SQLite, a palavra-chave DISTINCT examinará o conjunto de resultados da instrução SELECT e eliminará quaisquer linhas duplicadas. Além disso, os valores NULL são considerados duplicados, portanto, se usarmos a cláusula DISTINCT com uma coluna que possui valores NULL, ela manterá apenas uma linha de um valor NULL. Quando você aplica DISTINCT para várias colunas, a instrução retorna cada combinação exclusiva de coulnm1 e coluna2.

Exemplo

SELECT DISTINCT AGE FROM StudentInfo;
AGE
----------
20
23
22
  • Operador SQLite IN

No SQLite, o operador IN é usado para determinar se o valor fornecido corresponde a uma lista de valores fornecidos ou ao resultado retornado pela subconsulta.

Exemplo

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

No SQLite, o operador UNION é usado para combinar os conjuntos de resultados de 2 ou mais instruções SELECT e remove linhas duplicadas entre as várias instruções SELECT. Lembre-se de que as instruções SELECT que usamos com o operador UNION devem ter o mesmo número de campos nos conjuntos de resultados com tipos de dados semelhantes.

Sintaxe

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

UNION / UNION ALL

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

Exemplo

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

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

O operador UNION ALL é usado para combinar os conjuntos de resultados de 2 ou mais instruções SELECT e retornará todas as linhas, incluindo as duplicatas.

Exemplo

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

Com isso, cobrimos os comandos mais básicos que você pode ter que usar ao trabalhar com SQLite. Avançando com este tutorial do SQLite, vamos verificar a instrução join no SQLite.

Junta-se no SQLite


No SQLite, Joins são usadas para combinar registros de duas ou mais tabelas em um banco de dados e obter registros com base em nossos requisitos. Os diferentes tipos de JOINS disponíveis no SQLite são:
  • Inner Join – INNER JOIN é usado para combinar e retornar apenas registros correspondentes de várias tabelas com base nas condições definidas nas instruções SQLite.
  • União externa – SQLite Outer Join selecionará linhas correspondentes de várias tabelas da mesma forma que Inner Join e algumas outras linhas fora do relacionamento. Em termos simples, podemos dizer que SQLite OUTER JOIN é uma adição de INNER JOIN. Geralmente, temos três tipos de Outer Joins no padrão SQL:LEFT, RIGHT e FULL Outer Joins, mas o SQLite suporta apenas LEFT OUTER JOIN.
  • Cross Join – É usado para obter o produto cartesiano de linhas, combinando cada linha da primeira tabela com cada linha da segunda tabela.
  • Autojunção – É usado para unir a mesma tabela consigo mesma. Para usar o Self Join, precisamos criar nomes de alias diferentes para a mesma tabela para realizar operações com base em nossos requisitos.

O conceito é semelhante ao de outros sistemas de banco de dados relacionais, como o SQL. Então, para saber mais, você pode consultar este artigo sobre SQL Joins.

Com isso, cobrimos os comandos básicos do SQLite. Conceitos avançados não são abordados aqui. Portanto, fique atento a outro artigo sobre conceitos avançados de SQLite. Mesmo com todos os bons recursos que o SQLite tem a oferecer, ele também apresenta algumas desvantagens.

Tutorial do SQLite:Desvantagens do SQLite


Listados abaixo estão os deméritos do uso do SQLite:
  • Não funciona bem na arquitetura cliente/servidor.
  • O tamanho de um banco de dados SQLite é limitado a 2 GB na maioria dos casos.
  • SQLite não implementou RIGHT OUTER JOIN e FULL OUTER JOIN. Com o SQLite, só podemos implementar LEFT OUTER JOIN.
  • As visualizações no SQLite são somente leitura. Não podemos usar instruções DML (Inserir, Atualizar e Excluir) com visualizações.
  • Não podemos usar instruções GRANT e REVOKE com SQLite.

Com isso, encerramos este Tutorial SQLite.

Se você deseja aprender mais sobre o MySQL e conhecer esse banco de dados relacional de código aberto, confira nosso Treinamento de certificação de DBA MySQL que vem com treinamento ao vivo conduzido por instrutor e experiência de projeto na vida real. Este treinamento ajudará você a entender o MySQL em profundidade e a dominar o assunto.

Tem alguma pergunta para nós? Por favor, mencione-o na seção de comentários deste Tutorial SQLite e eu entrarei em contato com você.