Resumo : neste tutorial, você aprenderá como inserir uma ou mais linhas em uma tabela SQLite a partir de uma aplicação Node.js.
Para inserir dados em uma tabela SQLite de um aplicativo Node.js, siga estas etapas:
- Abra uma conexão de banco de dados .
- Execute uma
INSERT
instrução. - Feche a conexão com o banco de dados.
Para demonstração, criaremos um novo banco de dados nomeado sample.db
na db
pasta.
Ao abrir uma conexão de banco de dados no modo padrão, o banco de dados será criado se não existir.
let db = new sqlite3.Database('./db/sample.db');
Linguagem de código: JavaScript ( javascript )
No sample.db
banco de dados, criamos uma tabela chamada langs
para armazenar linguagens de programação:
db.run('CREATE TABLE langs(name text)');
Linguagem de código: JavaScript ( javascript )
Você pode executar o programa para criar o sample.db
banco de dados e langs
a tabela da seguinte maneira:
const sqlite3 = require('sqlite3').verbose();
let db = new sqlite3.Database('../db/sample.db');
db.run('CREATE TABLE langs(name text)');
db.close();
Linguagem de código: JavaScript ( javascript )
Agora estamos prontos para inserir dados na langs
tabela.
Inserir uma linha em uma tabela
Para executar uma INSERT
instrução, você usa o run()
método do Database
objeto:
db.run(sql, params, function(err){
//
});
Linguagem de código: JavaScript ( javascript )
O run()
método executa uma INSERT
instrução com parâmetros especificados e posteriormente chama um retorno de chamada.
Se ocorreu um erro, você pode encontrar informações detalhadas no err
argumento da função de retorno de chamada.
Caso a instrução seja executada com sucesso, o this
objeto da função de retorno de chamada conterá duas propriedades:
lastID
propriedade armazena o valor do último ID de linha inserido.changes
propriedade armazena as linhas afetadas pela consulta.
O insert.js
programa a seguir ilustra como inserir uma linha na langs
tabela:
const sqlite3 = require('sqlite3').verbose();
let db = new sqlite3.Database('./db/sample.db');
// insert one row into the langs table
db.run(`INSERT INTO langs(name) VALUES(?)`, ['C'], function(err) {
if (err) {
return console.log(err.message);
}
// get the last insert id
console.log(`A row has been inserted with rowid ${this.lastID}`);
});
// close the database connection
db.close();
Linguagem de código: JavaScript ( javascript )
Vamos executar o insert.js
programa:
>node insert.js
A row has been inserted with rowid 1
Linguagem de código: JavaScript ( javascript )
Funcionou como esperado.
Inserir várias linhas em uma tabela por vez
Para inserir várias linhas de uma vez em uma tabela, use a seguinte forma de INSERT
instrução:
INSERT INTO table_name(column_name)
VALUES(value_1), (value_2), (value_3),...
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Para simular isso no aplicativo Node.js, primeiro precisamos construir a INSERT
instrução com vários marcadores:
INSERT INTO table_name(column_name)
VALUES(?), (?), (?),...
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Suponha que você queira inserir linhas na langs
tabela com os dados do seguinte languages
array:
let languages = ['C++', 'Python', 'Java', 'C#', 'Go'];
Linguagem de código: JavaScript ( javascript )
Para construir a INSERT
instrução, usamos o map()
método para mapear cada elemento da languages
matriz (?)
e, em seguida, unir todos os espaços reservados.
let placeholders = languages.map((language) => '(?)').join(',');
let sql = 'INSERT INTO langs(name) VALUES ' + placeholders;
Linguagem de código: JavaScript ( javascript )
O insert-many.js
programa a seguir ilustra como inserir várias linhas na langs
tabela:
const sqlite3 = require('sqlite3').verbose();
// open the database connection
let db = new sqlite3.Database('../db/sample.db');
let languages = ['C++', 'Python', 'Java', 'C#', 'Go'];
// construct the insert statement with multiple placeholders
// based on the number of rows
let placeholders = languages.map((language) => '(?)').join(',');
let sql = 'INSERT INTO langs(name) VALUES ' + placeholders;
// output the INSERT statement
console.log(sql);
db.run(sql, languages, function(err) {
if (err) {
return console.error(err.message);
}
console.log(`Rows inserted ${this.changes}`);
});
// close the database connection
db.close();
Linguagem de código: JavaScript ( javascript )
Vamos executar o insert-many.js
programa para ver como funciona.
> node insert-many.js
INSERT INTO langs(name) VALUES (?),(?),(?),(?),(?)
Rows inserted 5
Linguagem de código: JavaScript ( javascript )
Ele inseriu 5 linhas na langs
tabela, o que esperávamos.
Neste tutorial, você aprendeu como inserir uma ou mais linhas em uma tabela SQLite de um aplicativo Node.js.