1. 데이터베이스 기초 개념
1.1 데이터베이스(Database)란 무엇인가
데이터베이스(Database)는 데이터를 구조화하여 체계적으로 저장하고 관리하는 시스템입니다. 이를 통해 데이터를 효율적으로 검색, 수정, 삭제할 수 있습니다.
1.2 SQL(Structured Query Language) 개념과 기본 문법
SQL은 데이터베이스에서 데이터를 조회, 삽입, 수정, 삭제하는 언어입니다. 주요 SQL 명령어는 다음과 같습니다:
SELECT
: 데이터를 조회INSERT
: 데이터를 삽입UPDATE
: 데이터를 수정DELETE
: 데이터를 삭제
2. SQLite와 Python 연동
2.1 SQLite란 무엇인가
SQLite는 서버 기반이 아닌 파일 기반의 경량 데이터베이스 시스템입니다. Python 내장 모듈 sqlite3
를 통해 쉽게 사용할 수 있습니다.
2.2 sqlite3 모듈을 사용한 데이터베이스 연결
import sqlite3
# 데이터베이스 연결 (파일이 없으면 새로 생성됨)
conn = sqlite3.connect("example.db")
2.3 테이블 생성과 데이터 삽입
# 커서 객체 생성
cursor = conn.cursor()
# 테이블 생성
cursor.execute('''
CREATE TABLE IF NOT EXISTS contacts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
phone TEXT NOT NULL
)
''')
# 데이터 삽입
cursor.execute("INSERT INTO contacts (name, phone) VALUES (?, ?)", ("Alice", "010-1234-5678"))
# 변경 사항 저장
conn.commit()
3. 간단한 데이터베이스 프로젝트
3.1 간단한 연락처 관리 프로그램 작성
import sqlite3
def create_table():
conn = sqlite3.connect("contacts.db")
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS contacts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
phone TEXT NOT NULL
)
''')
conn.commit()
conn.close()
def add_contact(name, phone):
conn = sqlite3.connect("contacts.db")
cursor = conn.cursor()
cursor.execute("INSERT INTO contacts (name, phone) VALUES (?, ?)", (name, phone))
conn.commit()
conn.close()
def search_contact(name):
conn = sqlite3.connect("contacts.db")
cursor = conn.cursor()
cursor.execute("SELECT * FROM contacts WHERE name = ?", (name,))
rows = cursor.fetchall()
conn.close()
return rows
# 연락처 관리 기능 실행
create_table()
add_contact("Bob", "010-5678-1234")
result = search_contact("Bob")
print(result) # 출력: [(1, 'Bob', '010-5678-1234')]
3.2 SQLite를 활용한 데이터베이스 조회 프로그램
def display_all_contacts():
conn = sqlite3.connect("contacts.db")
cursor = conn.cursor()
cursor.execute("SELECT * FROM contacts")
rows = cursor.fetchall()
for row in rows:
print(f"ID: {row[0]}, Name: {row[1]}, Phone: {row[2]}")
conn.close()
# 모든 연락처 표시
display_all_contacts()
'python' 카테고리의 다른 글
19편 Python 네트워킹과 소켓 프로그래밍 (0) | 2024.11.23 |
---|---|
18편 Python 고급 문법: 클래스와 객체의 고급 기능 (0) | 2024.11.22 |
16편 Python 기초 문법: 데이터 시각화 (2) | 2024.11.20 |
15편 Python 기초 문법: 외부 라이브러리 사용하기 (0) | 2024.11.19 |
14편 Python 기초 문법: 날짜와 시간 다루기 (0) | 2024.11.18 |