티스토리 뷰

반응형

풀스택 개발자를 그리도 부르짖지만

자바스크립트는 프론트와 백을 할 수 있지만

디비를 에스큐엘을 db sql 을 다루기는 번거롭기 때문에

방법을 알려주도록 하겠다

js로 쉽게 디비를 다루는 방법

쉬운 디비 sqlite3 를 사용한다

여기 JavaScript를 사용하여 데이터베이스와 상호 작용하는 예가 있습니다. 이 예에서는 SQLite를 데이터베이스 엔진으로 사용하고 패키지를 사용하여 sqlite3데이터베이스와 상호 작용합니다.

먼저 패키지가 설치되어 있는지 확인하십시오 sqlite3. 다음 명령을 실행하여 npm을 사용하여 설치할 수 있습니다.

npm install sqlite3

패키지가 설치되면 다음 코드를 사용하여 새 SQLite 데이터베이스를 만들고, 테이블을 만들고, 일부 데이터를 삽입하고, 검색할 수 있습니다.

const sqlite3 = require(‘sqlite3’).verbose();

// Open a new database connection
const db = new sqlite3.Database(‘:memory:’);

// Create a table
db.serialize(() => {
db.run(‘CREATE TABLE users (id INT PRIMARY KEY, name TEXT)’);
});

// Insert some data into the table
db.serialize(() => {
db.run(‘INSERT INTO users (id, name) VALUES (?, ?)’, [1, ‘John Doe’]);
db.run(‘INSERT INTO users (id, name) VALUES (?, ?)’, [2, ‘Jane Smith’]);
});

// Retrieve data from the table
db.serialize(() => {
db.each(‘SELECT id, name FROM users’, (err, row) => {
if (err) {
console.error(err);
} else {
console.log(${row.id}: ${row.name});
}
});
});

// Close the database connection
db.close();

이 예제는 새로운 메모리 내 SQLite 데이터베이스를 만들고, 열 id(정수)과 name열(텍스트)이 있는 “users”라는 테이블을 만들고, 두 행의 데이터를 테이블에 삽입하고, 쿼리를 사용하여 데이터를 검색하는 SELECT방법 을 보여줍니다. . 마지막으로 데이터베이스 연결이 닫힙니다.

실제 애플리케이션에서는 일반적으로 메모리 내 데이터베이스 대신 영구 데이터베이스 파일에 연결합니다. 그에 따라 코드를 수정하여 파일 기반 SQLite 데이터베이스에 연결할 수 있습니다.

Verbose() 뜻

verbose() 함수는 sqlite3 모듈에서 제공되는 메서드로, 디버깅 정보를 자세히 출력하기 위해 사용됩니다. 이 함수를 호출하면 SQLite3 모듈이 더 많은 정보를 출력하게 됩니다.

“verbose”라는 단어는 “상세한”, “자세한”이라는 뜻을 가지며, 따라서 verbose() 함수는 SQLite3 모듈이 더 자세한 정보를 출력하도록 설정하는 역할을 합니다. 이 함수를 사용하여 SQLite3 모듈이 생성하는 이벤트와 디버깅 메시지 등의 정보를 확인할 수 있습니다

Db.serialize 뜻

db.serialize()는 SQLite3 라이브러리에서 제공되는 메서드입니다. 이 메서드는 SQLite 데이터베이스와 상호 작용하는 일련의 작업을 순차적으로 실행하기 위해 사용됩니다.

SQLite3은 기본적으로 비동기 방식으로 동작하는데, db.serialize()를 사용하면 일련의 작업을 순차적으로 실행할 수 있습니다. 이는 데이터베이스 작업의 일관성과 안정성을 유지하기 위해 중요합니다. db.serialize() 내에서 실행된 작업은 다음 작업이 실행되기 전에 완료됩니다.

예를 들어, db.serialize() 내에서 db.run() 메서드를 사용하여 SQL 문을 실행하거나 db.each() 메서드를 사용하여 쿼리 결과를 반복적으로 처리할 수 있습니다. db.serialize() 내에서 실행되는 작업은 순차적으로 진행되므로 결과의 일관성을 유지할 수 있습니다.

아래는 db.serialize()의 간단한 예제입니다:

const sqlite3 = require(‘sqlite3’).verbose();

const db = new sqlite3.Database(‘:memory:’);

db.serialize(() => {
db.run(‘CREATE TABLE users (id INT PRIMARY KEY, name TEXT)’);

db.run(‘INSERT INTO users (id, name) VALUES (?, ?)’, [1, ‘John Doe’]);

db.each(‘SELECT id, name FROM users’, (err, row) => {
if (err) {
console.error(err);
} else {
console.log(${row.id}: ${row.name});
}
});
});

db.close();

이 예제에서 db.serialize()는 데이터베이스 작업을 순차적으로 실행하는 블록을 나타내고 있습니다. db.run() 메서드를 사용하여 테이블을 생성하고 데이터를 삽입한 후, db.each() 메서드를 사용하여 테이블의 데이터를 반복적으로 처리합니다. db.serialize() 블록 내에서 실행되는 작업은 순차적으로 진행되므로, 데이터베이스 작업의 일관성이 유지됩니다.

db.each 뜻

db.each()는 SQLite3 라이브러리에서 제공되는 메서드로, 쿼리 결과를 한 줄씩 반복적으로 처리하는데 사용됩니다.

db.each() 메서드는 SELECT 문을 실행한 후, 결과 집합의 각 행에 대해 지정한 콜백 함수를 호출합니다. 이 콜백 함수는 각 행에 대한 데이터를 전달받고 원하는 작업을 수행할 수 있습니다. 보통 콜백 함수에서는 결과를 로깅하거나 가공하는 등의 작업을 수행합니다.

db.each()의 구문은 다음과 같습니다:

db.each(sql, [params], callback, [complete])

sql: 실행할 SELECT 문입니다.
params (선택 사항): SQL 문에 전달할 매개변수입니다.
callback: 각 행에 대해 호출될 콜백 함수입니다. 이 콜백 함수는 (err, row) 형태의 매개변수를 받습니다. err는 오류 객체이고, row는 결과 행의 데이터를 담고 있는 객체입니다.
complete (선택 사항): 모든 행을 처리한 후에 호출될 콜백 함수입니다.
아래는 db.each()의 간단한 예제입니다:

const sqlite3 = require(‘sqlite3’).verbose();

const db = new sqlite3.Database(‘:memory:’);

db.serialize(() => {
db.run(‘CREATE TABLE users (id INT PRIMARY KEY, name TEXT)’);
db.run(‘INSERT INTO users (id, name) VALUES (?, ?)’, [1, ‘John Doe’]);
db.run(‘INSERT INTO users (id, name) VALUES (?, ?)’, [2, ‘Jane Smith’]);

db.each(‘SELECT id, name FROM users’, (err, row) => {
if (err) {
console.error(err);
} else {
console.log(${row.id}: ${row.name});
}
});
});

db.close();

위 예제에서 db.each()는 SELECT id, name FROM users 쿼리를 실행하고, 결과 집합의 각 행에 대해 콜백 함수를 호출합니다. 콜백 함수는 각 행의 id와 name 값을 출력합니다. db.each()는 쿼리 결과를 순회하며 각 행을 처리하는 역할을 수행합니다.

반응형
댓글
반응형
공지사항
최근에 올라온 글