pymysql 과 같이 파이썬을 활용하여 DB 연결이 가능한 라이브러리이다. 간단하게만 살펴보고자 한다.!pip install sqlalchemy
from sqlalchemy import create_engine
mysql+pymysql://USER_ID:USER_PW@Host명/DB명db_conn_str = 'mysql+pymysql://crawluser:********@localhost/crawlDB'
db_conn = create_engine(db_conn_str)
conn2 = db_conn.connect()
from sqlalchemy import Table, select, MetaData
customer 테이블 조회metadata = MetaData()
users = Table('customer', metadata, autoload_with = db_conn)
sql = select(users)
rows3 = conn2.execute(sql)
for row in rows3:
print(row)
- 출력
(1, '김바람', '010-123-1111', datetime.date(2000, 1, 1))
(2, '남구름', '010-222-1111', datetime.date(2010, 1, 1))
(3, '서바다', '010-321-2111', datetime.date(2001, 5, 1))
(4, '홍하늘', '010-123-1311', datetime.date(2010, 2, 1))
(5, '이방', '010-443-1111', datetime.date(1981, 10, 10))
(6, '성춘향', '010-123-3333', datetime.date(2010, 10, 10))
(7, '이몽룡', '010-444-7777', datetime.date(2009, 5, 10))
(8, '강하늘', '010-777-3333', datetime.date(2011, 10, 10))
(9, '최장군', '010-555-7777', datetime.date(2019, 5, 10))
(10, '성자', '010-123-0099', datetime.date(2001, 3, 10))
(11, '방식', '010-444-7788', datetime.date(2008, 12, 10))
c 는 ColumnCollection 을 뜻한다.# id 와 name 컬럼 조회
sql = select(users.c.id, users.c.name)
rows = conn2.execute(sql)
for row in rows:
print(row)
- 출력
(1, '김바람')
(2, '남구름')
(3, '서바다')
(4, '홍하늘')
(5, '이방')
(6, '성춘향')
(7, '이몽룡')
(8, '강하늘')
(9, '최장군')
(10, '성자')
(11, '방식')
from sqlalchemy import update
UPDATE ... SET ... WHERE 형태로 사용한 것과는 다소 다른 구조이다.sql = (update(users).where(users.c.id == 1).values(name='김바다'))
result = conn2.execute(sql)
id 가 1 인 데이터가 변경된 모습이다.sql = select(users.c.id, users.c.name)
rows = conn2.execute(sql)
for row in rows:
print(row)
- 출력
(1, '김바다')
(2, '남구름')
(3, '서바다')
(4, '홍하늘')
(5, '이방')
(6, '성춘향')
(7, '이몽룡')
(8, '강하늘')
(9, '최장군')
(10, '성자')
(11, '방식')