Search

240821_1813_SQLite+node

SQLite는 C로 작성된 오픈 소스 임베디드 관계형 데이터베이스 관리 시스템(RDBMS).

서버가 필요 없는 파일 기반의 데이터베이스로, 모든 데이터가 단일 파일에 저장.
주로 소형 애플리케이션, 모바일 애플리케이션, 데스크탑 소프트웨어 등에 사용됨.
ACID(원자성, 일관성, 고립성, 내구성) 속성을 지원.
SQL 표준을 준수하며, 복잡한 쿼리도 처리 가능.
외부 라이브러리 없이 사용 가능하여 배포와 유지 관리가 간편.

[주요 특징]

경량화된 구조로 매우 작은 메모리 및 디스크 공간 사용.
단일 데이터베이스 파일을 사용하여 손쉬운 배포 가능.
트랜잭션을 지원하여 데이터 무결성 유지.
풍부한 데이터 타입 지원(정수, 실수, 텍스트, BLOB 등).
외부 종속성이 없으며 크로스 플랫폼 지원.

[요약]

sqlite3: Node.js에서 SQLite 데이터베이스에 연결하기 위한 패키지.
Database: SQLite 데이터베이스를 열거나 생성하는 메서드.
CREATE TABLE: users라는 이름의 테이블을 생성.
INSERT INTO: 데이터 삽입을 위해 준비된 문(statement)을 실행.
db.each: 테이블에서 데이터를 조회하고 각 행을 출력.
db.close: 데이터베이스 연결을 종료.
// Copyright (C) 2024 GloryKim (glory@keti.re.kr) /* SQLite는 C로 작성된 오픈 소스 임베디드 관계형 데이터베이스 관리 시스템(RDBMS). - 서버가 필요 없는 파일 기반의 데이터베이스로, 모든 데이터가 단일 파일에 저장. - 주로 소형 애플리케이션, 모바일 애플리케이션, 데스크탑 소프트웨어 등에 사용됨. - ACID(원자성, 일관성, 고립성, 내구성) 속성을 지원. - SQL 표준을 준수하며, 복잡한 쿼리도 처리 가능. - 외부 라이브러리 없이 사용 가능하여 배포와 유지 관리가 간편. [주요 특징] - 경량화된 구조로 매우 작은 메모리 및 디스크 공간 사용. - 단일 데이터베이스 파일을 사용하여 손쉬운 배포 가능. - 트랜잭션을 지원하여 데이터 무결성 유지. - 풍부한 데이터 타입 지원(정수, 실수, 텍스트, BLOB 등). - 외부 종속성이 없으며 크로스 플랫폼 지원. [요약] sqlite3: Node.js에서 SQLite 데이터베이스에 연결하기 위한 패키지. Database: SQLite 데이터베이스를 열거나 생성하는 메서드. CREATE TABLE: users라는 이름의 테이블을 생성. INSERT INTO: 데이터 삽입을 위해 준비된 문(statement)을 실행. db.each: 테이블에서 데이터를 조회하고 각 행을 출력. db.close: 데이터베이스 연결을 종료. */ /* JavaScript로 SQLite 구현 예제 SQLite는 서버가 필요 없는 데이터베이스이기 때문에, Node.js 환경에서 이를 쉽게 구현할 수 있음. sqlite3 패키지를 사용하여 SQLite 데이터베이스에 접근 가능. */ const sqlite3 = require('sqlite3').verbose(); // 데이터베이스 연결 (test.db 파일이 없으면 생성됨) const db = new sqlite3.Database('test.db'); // 테이블 생성 db.serialize(() => { db.run("CREATE TABLE IF NOT EXISTS users (id INT, name TEXT)"); // 데이터 삽입 const stmt = db.prepare("INSERT INTO users VALUES (?, ?)"); stmt.run(1, "김영광"); stmt.run(2, "김광영"); stmt.finalize(); // 데이터 조회 db.each("SELECT id, name FROM users", (err, row) => { if (err) { console.error(err.message); } else { console.log(`User ID: ${row.id}, Name: ${row.name}`); } }); }); // 데이터베이스 연결 종료 db.close((err) => { if (err) { console.error(err.message); } else { console.log('Database connection closed.'); } }); /* 터미널 결과 mac@macui-MacBookPro platform % cd 240821_1658_SQLlite+node mac@macui-MacBookPro 240821_1658_SQLlite+node % npm install sqlite3 npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm WARN deprecated gauge@4.0.4: This package is no longer supported. npm WARN deprecated are-we-there-yet@3.0.1: This package is no longer supported. npm WARN deprecated @npmcli/move-file@1.1.2: This functionality has been moved to @npmcli/fs npm WARN deprecated npmlog@6.0.2: This package is no longer supported. added 123 packages in 6s 12 packages are looking for funding run `npm fund` for details mac@macui-MacBookPro 240821_1658_SQLlite+node % node main.js User ID: 1, Name: Alice User ID: 2, Name: Bob Database connection closed. mac@macui-MacBookPro 240821_1658_SQLlite+node % node main.js User ID: 1, Name: Alice User ID: 2, Name: Bob User ID: 1, Name: Alice User ID: 2, Name: Bob Database connection closed. mac@macui-MacBookPro 240821_1658_SQLlite+node % node main.js User ID: 1, Name: Alice User ID: 2, Name: Bob User ID: 1, Name: Alice User ID: 2, Name: Bob User ID: 1, Name: 김영광 User ID: 2, Name: 김광영 Database connection closed. mac@macui-MacBookPro 240821_1658_SQLlite+node % */
Plain Text
복사

안녕하세요

한국전자기술연구원 김영광입니다.
관련 기술 문의와 R&D 공동 연구 사업 관련 문의는 “glory@keti.re.kr”로 연락 부탁드립니다.

Hello

I'm Yeonggwang Kim from the Korea Electronics Research Institute.
For technical and business inquiries, please contact me at “glory@keti.re.kr”