SQLite Criar índice

SQLite Criar índice

Um índice é uma ferramenta de dados específica para organizar e otimizar as informações para uma coluna inteira para consultar. Os índices (ou índices) são exclusivos da pesquisa de banco de dados, pois permitem que certas linhas em um registro sejam localizadas sem precisar digitalizar toda a tabela. Como resultado, os índices podem dar a algumas operações um ganho de desempenho significativo. Os índices geralmente são conectados a uma única tabela, embora possam compreender várias colunas dessa tabela.

Assim, decidimos cobrir o tópico dos índices usados ​​no sqlite neste artigo hoje. Vamos começar com o banco de dados SQLite em nosso shell de terminal recém -lançado. Para isso, experimente o comando de uma palavra na área de consulta, eu.e., “Sqlite3”. O console shell sqlite será lançado, como mostrado abaixo:

Depois de lançar o shell sqlite, usamos o “.Instrução de tabelas ”em seu shell para exibir todas as tabelas já feitas do nosso banco de dados.

Assim, precisamos de pelo menos uma tabela em nosso banco de dados para criar índices em suas colunas. Então, estamos tentando criar a instrução de tabela que criará uma tabela chamada "Info". Esta tabela conterá um total de três colunas dentro dela. A coluna de identificação e a coluna de idade será do tipo inteiro, enquanto a coluna de identificação será usada como uma chave primária desta tabela. A coluna de nome será do tipo de texto. A tabela foi criada com sucesso e tentamos a instrução selecionada para buscar todos os seus registros. Infelizmente, não há registros na tabela até agora.

SQLITE> Criar informações da tabela (ID int Primary Key, Nome Text, Age Int);
SQLITE> SELECT * FROM INFO;
sqlite>.mesas

Vamos começar a inserir vários registros nas informações da tabela usando a inserção na instrução do banco de dados SQLite. Para isso, você precisa especificar os nomes das colunas de tabela usadas para inserir registros, eu.e., Id, nome e idade. Os nomes das colunas serão seguidos pela palavra -chave "valores" usando os valores dentro dos colchetes. Adicionamos cinco registros dentro da tabela "Info".

sqlite> inserir em informações (id, nome, idade) valores (1, "bella", 34);
sqlite> inserir em informações (id, nome, idade) valores (2, "bella", 23);
SQLITE> Inserir em informações (ID, nome, idade) valores (3, "George", 26);
SQLITE> Inserir em informações (ID, nome, idade) valores (4, "George", 29);
sqlite> inserir em informações (id, nome, idade) valores (5, "ema", 30);

Depois disso, usamos a instrução SELECT para exibir todos os registros recém -inseridos das informações da tabela. Os cinco registros para colunas ID, nome e idade de uma tabela foram exibidos no shell.

SQLITE> SELECT * FROM INFO;

Como todos sabemos, a coluna de identificação da tabela "info" já está especificada como uma chave primária. Assim, verificaremos como uma restrição de chave primária reagirá à inserção de valor duplicado. Então, estamos usando a inserção na instrução para inserir novos registros na tabela "Info", enquanto o valor da coluna "ID" é 5, I I.e., repetido. A execução desta afirmação leva ao erro “restrição única falhou: informações.EU IA". Isso significa que não podemos adicionar um valor duplicado para a coluna "ID".

sqlite> inserir em informações (id, nome, idade) valores (5, "tom", 35);

Índice único

Vamos criar um único índice em uma coluna específica de uma tabela de informações. Para isso, você precisa utilizar a instrução Create Index seguida pelo nome de um índice a ser criado, i.e., Age_index, a palavra -chave "on", o nome de uma tabela, eu.e., "Info" seguido pelo nome da coluna, eu.e., "Idade" em que aplicaremos o índice. Depois de criar um índice "Age_index" para a coluna "Age", inserimos o novo registro dentro das informações da tabela usando a inserção na instrução. Temos repetido o valor da coluna "idade" nesta instrução, eu.e., 30. Ao pesquisar todos os registros de uma tabela "Info", temos os seguintes registros:

SQLITE> Criar índice Age_index on Info (idade);
sqlite> inserir em informações (id, nome, idade) valores (6, "ema", 30);
SQLITE> SELECT * FROM INFO;

O mesmo foi feito para a coluna "nome", eu.e., criou um índice "name_index". Em seguida, inserimos o registro duplicado para a coluna "Nome" usando a inserção na instrução e exibimos todos os registros da tabela "Info".

sqlite> criar índice name_index na info (nome);
sqlite> inserir em informações (id, nome, idade) valores (7, "ema", 20);
SQLITE> SELECT * FROM INFO;

Você pode listar todos os índices recém -criados do seu banco de dados usando o “.INDICICES ”Instrução, juntamente com o nome específico de uma tabela,“ Info ”, que contém ou usa esses índices.

sqlite> .Informações dos índices

Índice composto

Se você criar um índice para mais de uma coluna de uma tabela específica, diz -se que é o índice composto. Então, estamos criando um índice composto "Comp_index" para o nome das colunas e a idade de uma tabela "informações" usando a instrução Create Index exibida na imagem. Quando tentamos inserir registros duplicados dentro do nome e da idade da coluna da tabela "Info" com a inserção na instrução, ele retornou o erro "restrição única falhou".

SQLITE> Criar índice Comp_Index on info (nome, idade);
sqlite> inserir em informações (id, nome, idade) valores (7, "bella", 23);

Normalmente, os índices oferecem a possibilidade de criar entradas duplicadas. No entanto, a palavra-chave exclusiva impede que valores repetidos sejam inseridos ou atualizados em um registro com uma entrada não única. Um índice exclusivo pode não proibir um ou nulo adicional, já que Null não é considerado um valor. Não deve ser especificado na declaração inicial da tabela para evitar nulos. Vamos criar um índice exclusivo na coluna "ID" de uma informação de tabela com a instrução Create Index. Temos sete registros para a tabela "informações" deste banco de dados. Então, tentamos a inserção na instrução para adicionar o valor duplicado para a coluna de identificação de uma tabela. Ele retornou o mesmo erro de "restrição exclusiva falhou" em nossa tela.

SQLITE> Criar índice exclusivo uindex na info (id);
SQLITE> SELECT * FROM INFO;
sqlite> inserir em informações (id, nome, idade) valores (7, "Ana", 19);

Vamos criar uma nova tabela, "teste", com duas colunas ID e idade, sem chaves primárias. Depois disso, criamos um índice exclusivo, "ULENS_Index", em ambas as colunas e adicionamos dois registros exclusivos e um registro duplicado com a inserção na instrução. O terceiro registro lança um erro porque os valores de ambas as colunas foram repetidos.

SQLITE> Criar teste de tabela (ID int, AGE INT);
sqlite> criar índice exclusivo exclusivo_index no teste (id, idade);
SQLITE> Inserir no teste (ID, idade) valores (1, 23);
SQLITE> Inserir no teste (ID, idade) valores (2, 24);
SQLITE> Inserir no teste (ID, idade) valores (2, 24);

Conclusão:

Este artigo foi sobre o uso de diferentes índices das colunas da tabela. Discutimos os usos dos índices e tentamos criar os índices únicos, compostos e exclusivos em diferentes colunas de tabela com a instrução Create Index no nosso fim.