1. pymssql 설치
명령 프롬프트 실행 → pip install pymssql
* 파이썬을 Anaconda 패키지로 설치했을 경우
Anaconda Prompt를 실행해 conda install pymssql 로도 설치 가능
이 경우, Anaconda 서버에서 패키지를 가져오는데 pip 보다 좀 더 낮은 버전이 설치된다.
2. tcp/ip 사용 설정 및 ip확인
SQL Server 구성 관리자(SQL Server Configuration Manager) 실행
좌측 항목에서 SQL Server 서비스 → SQL Server (MSSQLSERVER) 실행중 확인
SQL Server 네트워크 구성 → 하위 항목의 MSSQLSERVER에 대한 프로토콜 선택
TCP/IP가 '사용'인지 확인 → '사용 안 함' 일 경우 마우스 우클릭 - '사용' 으로 변경
TCP/IP 더블클릭 → TCP/IP 속성 창에서 IP 주소 탭 선택
최하단의 IPAll 에서 TCP 포트 확인 (기본값 1433)
확인을 눌러 창을 닫고 다시 SQL Server 서비스를 찾아 SQL Server (MSSQLSERVER) 우클릭 - '다시 시작'
3. 파이썬 코드 작성
1. select
import pymssql
conn = pymssql.connect(host='127.0.0.1', port='1433', user='sa', password='python', database='python')
# 커서 생성 및 질의문 작성
cursor = conn.cursor()
cursor.execute('SELECT * FROM emp;')
# 커서에서 행들을 가져옴
row = cursor.fetchone()
# 행을 하나씩 가져옴
while row:
for i in range(len(row)):
print(row[i], end='')
if i != len(row) - 1:
print(', ', end='')
print()
row = cursor.fetchone()
cursor.close()
conn.close()
# 출력 결과
# 1, 1, 1, 1
# 2, 2, 2, 2
* fetchall
import pymssql
conn = pymssql.connect(host='127.0.0.1', port='1433', user='sa', password='python', database='python')
# 커서 생성 및 질의문 작성
cursor = conn.cursor()
cursor.execute('SELECT * FROM emp;')
# 행을 한 번에 다 가져옴
row = cursor.fetchall()
print(row)
cursor.close()
conn.close()
# 출력 결과
# 리스트에 담긴 튜플 형태로 값이 출력된다.
# [('1', '1', '1', '1'), ('2', '2', '2', '2')]
2. insert
import pymssql
conn = pymssql.connect(host='127.0.0.1', port='1433', user='sa', password='python', database='python')
# 커서 생성 및 질의문 작성
cursor = conn.cursor()
sql = '''
INSERT INTO emp (e_id, e_name, gender, addr)
VALUES ('3', '3', '3', '3');
'''
cursor.execute(sql)
print(cursor.rowcount) # 영향을 받은 행의 개수를 출력
cursor.close()
conn.commit()
conn.close()
3. update
import pymssql
conn = pymssql.connect(host='127.0.0.1', port='1433', user='sa', password='python', database='python')
# 커서 생성 및 질의문 작성
cursor = conn.cursor()
e_id = '4'
e_name = '5'
addr = '5'
gender = '5'
sql = f'''
UPDATE emp SET e_name = {e_name},
gender = {gender},
addr = {addr},
WHERE e_id = {e_id};
'''
cursor.execute(sql)
print(cursor.rowcount) # 영향을 받은 행의 개수를 출력
cursor.close()
conn.commit()
conn.close()
4. delete
import pymssql
conn = pymssql.connect(host='127.0.0.1', port='1433', user='sa', password='python', database='python')
# 커서 생성 및 질의문 작성
cursor = conn.cursor()
sql = '''
DELETE FROM emp
WHERE e_id = '4';
'''
cursor.execute(sql);
print(cursor.rowcount) # 영향을 받은 행의 개수를 출력
cursor.close()
conn.commit()
conn.close()
'Python' 카테고리의 다른 글
파이썬 FastAPI 첫 시작 (1) | 2023.01.04 |
---|---|
파이썬 sqlite 연동 (0) | 2023.01.04 |
파이썬 문자열을 리스트로 변환 (0) | 2023.01.02 |
파이썬 배열 값 포함 여부 확인 (0) | 2023.01.02 |
파이썬 문자열 형식화 (0) | 2022.12.30 |