파이썬은 sqlite3, MySQLdb, psycopg2와 같이 데이터베이스와 상호작용하기 위한 여러 모듈을 제공합니다. 이러한 모듈은 데이터를 효율적으로 저장, 검색 및 조작하기 위한 쉬운 데이터베이스 상호 작용을 허용합니다. 파이썬 언어와 SQL 구문에 대한 기본적인 이해만으로 데이터베이스를 효과적이고 효율적으로 구축, 변경 및 관리할 수 있습니다.
Python을 사용한 데이터베이스 생성 단계
1 단계
사용하려는 데이터베이스 관리 시스템과 일치하는 데이터베이스 어댑터를 설치하십시오. 예를 들어 SQLite를 사용하려는 경우 sqlite3 모듈을 설치할 수 있습니다. MySQL의 경우 MySQLdb 모듈을 설치하고 PostgreSQL의 경우 psycopg2를 설치할 수 있습니다. 이 튜토리얼에서는 SQLite, MongoDB 및 MySQLdb를 고려합니다. 파이썬 코드에서 SQLite를 사용하려면 sqlite3 모듈을 가져와야 합니다:
import sqlite3
적절한 모듈을 설치한 후 데이터베이스에 대한 연결을 만들어야 합니다. 이는 파이썬 코드와 데이터베이스 사이의 다리 역할을 하며 명령을 보내고 결과를 받을 수 있게 해줍니다. 예를 들어 SQLite에서 다음 코드를 사용하여 연결을 만들 수 있습니다.
school.db라는 데이터베이스의 예로 다음과 같이 연결합니다.
conn = sqlite3.connect('school.db')
2 단계
데이터베이스에 테이블을 생성합니다. 데이터베이스에 테이블을 생성하려면 연결에서 얻은 커서 객체를 사용하여 SQL 문을 작성해야 합니다. 예를 들어, “id”, “username”, 급여, 부서, “email” 컬럼을 가진 “employees”라는 테이블을 생성하려면 다음 코드를 사용합니다:
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE employees (
id INTEGER PRIMARY KEY,
username TEXT,
email,
salary REAL,
department TEXT
)
''')
3단계
데이터베이스에서 데이터를 삽입, 업데이트 및 검색하려면 SQL 명령어와 커서 객체를 사용합니다. 테이블에 데이터를 추가하려면 “INSERT INTO” SQL 문을 사용할 수 있습니다. `commit()` 메서드를 사용하여 데이터를 저장합니다. 예를 들어, 다음 코드는 “employees” 테이블에 데이터를 삽입합니다:
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
cursor.execute("INSERT INTO employees (username, email, salary, department) VALUES ('Joseph', 'joseph@gmail,com' 70000, 'IT')")
conn.commit()
4단계
테이블에서 데이터를 검색합니다. 테이블에서 데이터를 검색하려면 “SELECT” SQL 문을 사용할 수 있습니다. 예를 들어, “users” 테이블에서 모든 사용자를 검색하려면 다음 코드를 사용할 수 있습니다:
cursor.execute("SELECT * FROM employees")
rows = cursor.fetchall()
for row in rows:
print(row)
5단계
CREATE VIEW 문을 실행하여 뷰를 생성하고, 커서 객체의 `execute()` 메서드를 사용하여 CREATE VIEW 문을 실행합니다.
# CREATE VIEW 문 실행
cursor.execute('''
CREATE VIEW employees_view AS
SELECT name, age, department, email, FROM employees;
''')
6단계
연결을 닫습니다. 데이터베이스 작업을 마친 후에는 리소스를 해제하기 위해 연결을 닫는 것이 중요합니다. 예를 들어 연결 객체의 close() 메서드를 사용하여 연결을 닫을 수 있습니다:
conn.commit()
conn.close()
MySQLdb 샘플
MySQLdb 데이터베이스를 생성하려면 MYSQLdb 모듈을 가져와서 `connect()` 메서드를 사용하여 데이터베이스에 연결하세요. 커서를 생성하고 SQL 명령을 실행하는 데 사용할 수 있습니다. `execute()` 메서드는 테이블을 생성하고 데이터를 삽입하는 데 사용됩니다. 변경 사항을 커밋한 후 커서를 사용하여 테이블에서 데이터를 선택하고 `fetchall()` 메서드를 사용하여 모든 데이터를 가져옵니다. 마지막으로, 커서와 데이터베이스 연결을 닫습니다.
import MySQLdb
# 데이터베이스에 연결
conn = MySQLdb.connect(host="localhost", user="std", passwd="@12343!J", db="school.db")
# SQL 명령을 실행할 커서 생성
cursor = conn.cursor()
# 테이블 생성
cursor.execute("""
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
salary DECIMAL(10,2),
department VARCHAR(255)
)
""")
# 테이블에 데이터 삽입
cursor.execute("""
INSERT INTO employees (name, salary, department)
VALUES
("Joseph", 70000, "IT"),
("Jane", 80000, "Marketing")
""")
# 데이터베이스에 변경 사항 커밋
conn.commit()
# 테이블에서 데이터 선택
cursor.execute("SELECT * FROM employees")
# 모든 데이터 가져오기
employees = cursor.fetchall()
# 데이터 출력
for employee in employees:
print(employee)
# 커서와 연결 닫기
cursor.close()
conn.close()
MongoDB 샘플
pymongo 모듈을 가져와서 `MongoClient()` 클래스를 사용하여 데이터베이스에 연결하세요. 그런 다음 SQL의 테이블과 동일한 데이터베이스 및 컬렉션에 대한 참조를 가져옵니다. `insert_many()` 메서드는 컬렉션에 데이터를 삽입하는 데 사용됩니다. `find()` 메서드는 컬렉션에서 데이터를 쿼리하는 데 사용되며, 데이터는 for 루프를 사용하여 가져옵니다. 마지막으로 `close()` 메서드를 사용하여 데이터베이스 연결을 닫습니다.
from pymongo import MongoClient
# 데이터베이스에 연결
client = MongoClient("mongodb://localhost:27017/")
# 데이터베이스에 대한 참조 가져오기
db = client["school.db"]
# SQL의 테이블과 동일한 컬렉션에 대한 참조 가져오기
collection = db["employees"]
# 컬렉션에 데이터 삽입
employee1 = { "name": "Joseph", "salary": 70000, "department": "IT" }
employee2 = { "name": "Jane", "salary": 80000, "department": "Marketing" }
collection.insert_many([employee1, employee2])
# 컬렉션에서 데이터 쿼리
employees = collection.find()
# 데이터 출력
for employee in employees:
print(employee)
# 연결 닫기
client.close()
결론
결론적으로, 파이썬은 MySQL과 MongoDB와 같은 다양한 데이터베이스와 상호작용할 수 있는 여러 모듈을 제공합니다. MySQL 데이터베이스와 상호작용하기 위해 MySQLdb 모듈을 사용하고, MongoDB 데이터베이스와 상호작용하기 위해 pymongo 모듈을 사용합니다. 두 모듈 모두 개발자가 테이블 생성, 데이터 삽입, 데이터 쿼리 등과 같은 일반적인 데이터베이스 작업을 수행하기 쉽게 만들어줍니다. 파이썬의 단순성과 사용의 편리함으로 인해 데이터베이스 기반 애플리케이션 개발에 인기 있는 선택지가 되었습니다. 초보 개발자이든 경험 많은 개발자이든, 이러한 모듈을 사용하면 파이썬에서 데이터베이스 작업을 수월하게 할 수 있습니다.
Source:
https://dzone.com/articles/an-overview-of-creating-databases-with-python-2