728x90
반응형
데이터베이스 연동은 애플리케이션에서 중요한 데이터를 저장하고 관리하기 위한 필수적인 작업입니다. Python은 SQLite, MySQL 등 다양한 데이터베이스 시스템을 지원하여 개발자들이 데이터를 효율적으로 처리할 수 있게 돕습니다. 이 글에서는 Python에서 SQLite와 MySQL 데이터베이스를 연동하는 방법을 살펴보겠습니다.
SQLite 데이터베이스 연동
SQLite는 서버가 필요 없는 내장형 데이터베이스로, 간단한 설정으로 사용할 수 있습니다. Python의 표준 라이브러리 중 하나인 sqlite3 모듈을 사용하여 SQLite 데이터베이스를 쉽게 조작할 수 있습니다.
SQLite 데이터베이스 사용하기
- 데이터베이스 연결: sqlite3.connect() 함수를 사용하여 데이터베이스 파일에 연결합니다. 파일이 존재하지 않으면 새로 생성됩니다.
import sqlite3
# 데이터베이스 연결
conn = sqlite3.connect('example.db')
- 커서 객체 생성: 데이터베이스를 조작하기 위한 커서 객체를 생성합니다.
c = conn.cursor()
- 테이블 생성: SQL 명령어를 실행하여 데이터베이스 테이블을 생성합니다.
c.execute('''CREATE TABLE stocks
(date text, trans text, symbol text, qty real, price real)''')
- 데이터 삽입: 데이터를 테이블에 삽입합니다.
c.execute("INSERT INTO stocks VALUES ('2020-01-05','BUY','RHAT',100,35.14)")
- 변경 사항 저장: 트랜잭션을 커밋하여 변경 사항을 데이터베이스에 반영합니다.
conn.commit()
- 조회: 데이터를 조회합니다.
for row in c.execute('SELECT * FROM stocks ORDER BY price'):
print(row)
- 연결 종료: 작업을 완료한 후 데이터베이스 연결을 종료합니다.
연결 종료: 작업을 완료한 후 데이터베이스 연결을 종료합니다.
MySQL 데이터베이스 연동
MySQL은 강력한 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다. Python과 MySQL을 연동하려면 mysql-connector-python 패키지를 설치해야 합니다.
MySQL 데이터베이스 사용하기
- 패키지 설치: mysql-connector-python 패키지를 설치합니다.
pip install mysql-connector-python
- 데이터베이스 연결: MySQL 데이터베이스 서버에 연결합니다.
import mysql.connector
conn = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
- 커서 객체 생성 및 조작: MySQL 데이터베이스에서 SQL 쿼리를 실행합니다.
c = conn.cursor()
# 테이블 생성
c.execute("CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))")
# 데이터 삽입
c.execute("INSERT INTO customers (name, address) VALUES ('John', 'Highway 21')")
conn.commit()
# 데이터 조회
c.execute("SELECT * FROM customers")
for row in c.fetchall():
print(row)
- 연결 종료:
conn.close()
결론
Python에서 SQLite와 MySQL을 포함한 다양한 데이터베이스 시스템과의 연동은 데이터 관리를 위한 강력한 도구를 제공합니다. 각 데이터베이스 시스템의 특성을 이해하고 적절히 활용하면, 데이터 저장, 검색, 수정 작업을 효율적으로 수행할 수 있습니다. 이를 통해 Python 애플리케이션의 기능을 크게 확장할 수 있습니다.
728x90
반응형
'Python' 카테고리의 다른 글
Python에서 데이터 시각화 기초: Matplotlib과 Seaborn 활용하기 (32) | 2024.05.18 |
---|---|
Python 웹 스크래핑 기초: 데이터 수집을 위한 첫걸음 (33) | 2024.05.17 |
Python에서 네트워크 통신 기초: 소켓 프로그래밍 이해하기 (29) | 2024.05.16 |
Python에서 쓰레드와 멀티프로세스 이해하기: 병렬 처리의 기초 (27) | 2024.05.16 |
Python 람다 함수 활용하기: 간결한 함수 표현의 힘 (25) | 2024.05.15 |