Resumo : neste tutorial, você aprenderá como anexar bancos de dados adicionais à conexão de banco de dados atual usando a ATTACH DATABASE
instrução SQLite.
Introdução à ATTACH DATABASE
instrução SQLite
Quando você se conecta a um banco de dados, seu nome main
independe do nome do arquivo do banco de dados. Além disso, você pode acessar o banco de dados temporário que contém tabelas temporárias e outros objetos de banco de dados por meio do temp
banco de dados.
Portanto, toda conexão de banco de dados SQLite possui o main
banco de dados e também temp
o banco de dados caso você lide com objetos de banco de dados temporários.
Para anexar um banco de dados adicional à conexão de banco de dados atual, use a ATTACH DATABASE
instrução a seguir:
ATTACH DATABASE file_name AS database_name;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A instrução associa o arquivo de banco de dados file_name
à conexão de banco de dados atual sob o nome do banco de dados lógico database_name
.
Se o arquivo de banco de dados file_name
não existir, a instrução cria um novo arquivo de banco de dados.
Depois que o banco de dados adicional for anexado, você poderá consultar todos os objetos no banco de dados com o nome database_name
. Por exemplo, para se referir à people
tabela no contacts
banco de dados, você usa a extensão contacts.people
.
Caso você queira criar um novo banco de dados de memória e anexá-lo à conexão de banco de dados atual, use :memory:
filename.
Você pode anexar vários bancos de dados na memória ao mesmo tempo, com a condição de que cada banco de dados na memória seja exclusivo.
Se você especificar um nome de arquivo vazio ''
, a instrução criará um banco de dados temporário com suporte de arquivo.
Observe que o SQLite exclui automaticamente todos os bancos de dados temporários e de memória quando a conexão com o banco de dados é fechada.
ATTACH DATABASE
Exemplo SQLite
Primeiro, conecte-se ao banco de dados de amostra chinook usando sqlite3
o comando a seguir:
>sqlite3 c:\sqlite\db\chinook.db;
Linguagem de código: CSS ( css )
A seguir, use o .databases
comando para listar todos os bancos de dados na conexão de banco de dados atual.
sqlite> .databases
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
SQLite retorna a seguinte saída.
seq name file
--- --------------- ----------------------------------------------------------
0 main c:\sqlite\db\chinook.db
Linguagem de código: CSS ( css )
Em seguida, use a ATTACH DATABASE
instrução para criar um novo banco de dados nomeado contacts
e associá-lo à conexão de banco de dados atual.
sqlite> attach database 'c:\sqlite\db\contacts.db' as contacts;
Linguagem de código: JavaScript ( javascript )
Quarto, use o .database
comando para exibir todos os bancos de dados na conexão de banco de dados atual.
sqlite> .databases
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
SQLite retorna 2 bancos de dados da seguinte forma:
seq name file
--- --------------- ----------------------------------------------------------
0 main c:\sqlite\db\chinook.db
2 contacts c:\sqlite\db\contacts.db
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Depois disso, crie uma nova tabela nomeada people
no contacts
banco de dados e preencha os dados da customers
tabela no main
banco de dados.
sqlite> CREATE TABLE contacts.people(first_name text, last_name text);
sqlite> INSERT INTO contacts.people SELECT firstName, lastName FROM customers;
Linguagem de código: CSS ( css )
Observe que nos referimos à people
tabela no contacts
banco de dados usando a contacts.people
convenção de nomenclatura.
Por fim, consulte os dados da people
tabela no contacts
banco de dados.
SELECT * FROM contacts.people;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Para mais informações sobre o ATTACH DATABASE
extrato, confira sua documentação .
Neste tutorial, você aprendeu como usar a ATTACH DATABASE
instrução SQLite para associar bancos de dados adicionais na conexão de banco de dados atual.