Akashic Records

10.1 SQL 데이터베이스 본문

Python for Beginners

10.1 SQL 데이터베이스

Andrew's Akashic Records 2023. 3. 31. 11:23
728x90

파이썬에서 SQL 데이터베이스와 연동하기 위해 일반적으로 sqlite3 또는 MySQL Connector, psycopg2(PostgreSQL) 등의 라이브러리를 사용합니다. 이 예시에서는 SQLite를 사용하여 SQL 데이터베이스와 연동하는 방법을 설명합니다.

SQLite는 서버 설치가 필요 없는 경량화된 데이터베이스로, 파이썬 표준 라이브러리에 포함되어 있습니다.

예시 코드:

import sqlite3

# 데이터베이스에 연결 (또는 데이터베이스 파일이 없으면 새로 생성)
conn = sqlite3.connect('example.db')

# 커서 객체 생성
cursor = conn.cursor()

# 테이블 생성
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    age INTEGER NOT NULL
)
''')

# 데이터 삽입
cursor.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cursor.execute("INSERT INTO users (name, age) VALUES ('Bob', 25)")

# 변경사항 저장
conn.commit()

# 데이터 조회
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()

for row in rows:
    print(row)

# 데이터베이스 연결 종료
conn.close()



위 예시 코드는 SQLite 데이터베이스와 연결하여 테이블을 생성하고, 데이터를 삽입하고, 데이터를 조회하는 과정을 보여줍니다. MySQL 또는 PostgreSQL 등 다른 SQL 데이터베이스를 사용하려면 해당 데이터베이스에 맞는 라이브러리와 연결 설정을 사용해야 합니다.

MySQL 예시:

먼저, MySQL Connector 라이브러리를 설치합니다.

pip install mysql-connector-python

 

다음 코드를 사용하여 MySQL 데이터베이스와 연결합니다.

import mysql.connector

# MySQL 데이터베이스에 연결
config = {
    'user': 'username',
    'password': 'password',
    'host': 'localhost',
    'database': 'database_name',
}

conn = mysql.connector.connect(**config)

# 나머지 코드는 SQLite 예시와 유사하게 사용할 수 있습니다.


PostgreSQL 예시:

먼저, psycopg2 라이브러리를 설치합니다.

pip install psycopg2

 

다음 코드를 사용하여 PostgreSQL 데이터베이스와 연결합니다.

import psycopg2

# PostgreSQL 데이터베이스에 연결
config = "dbname='database_name' user='username' host='localhost' password='password'"

conn = psycopg2.connect(config)

# 나머지 코드는 SQLite 예시와 유사하게 사용할 수 있습니다.

 

다양한 데이터베이스와의 연동을 좀 더 쉽게 하기 위해 SQLAlchemy와 같은 ORM(Object-Relational Mapping) 라이브러리를 사용할 수도 있습니다. SQLAlchemy는 데이터베이스의 테이블과 파이썬 클래스를 매핑하여, SQL 문법을 사용하지 않고 파이썬 객체를 통해 데이터베이스를 조작할 수 있게 해줍니다.

728x90

'Python for Beginners' 카테고리의 다른 글

10.3 ORM(Object-Relational Mapping)  (0) 2023.03.31
10.2 NoSQL 데이터베이스  (0) 2023.03.31
9.3 데이터 시각화(Matplotlib, Seaborn 등)  (0) 2023.03.27
9.2 판다스(Pandas)  (0) 2023.03.27
9.1 넘파이(Numpy)  (0) 2023.03.27
Comments