SQL 20 ~ 21 Part.1

이재훈·2024년 2월 8일
1

Zerobase_DA3_SQL

목록 보기
10/16

Python With MySQL

import mysql.connector
remote = mysql.connector.connect (
host = "database-1.cn462iy0q6hf.ap-southeast-2.rds.amazonaws.com",
port = 3306,
user = "admin",
password = "adminadmin",
database = "zerobase"
)
mycursor = remote.cursor() // 이 문법은 알아봐야겠음
mycursor.execute("CREATE TABLE sql_file(id int, filename varchar(16))")
remote.close()

//실행결과

zerobase에 sql_file이라는 테이블 생성

그럼 테이블 삭제는 ? 동일한 코드에서 execte절에서 DROP 사용 !

import mysql.connector
remote = mysql.connector.connect (
host = "database-1.cn462iy0q6hf.ap-southeast-2.rds.amazonaws.com",
port = 3306,
user = "admin",
password = "adminadmin",
database = "zerobase"
) //여기까지는 AWS RDS 연결
mycursor = remote.cursor()
sql = open ("test03.sql").read() // sql 변수에 test03파일을 읽고 넣어라
mycursor.execute(sql) // sql 변수 실행
remote.close()

예시1) 파이썬을 통해서 테이블에 데이터 넣기

import mysql.connector
remote = mysql.connector.connect (
host = "database-1.cn462iy0q6hf.ap-southeast-2.rds.amazonaws.com",
port = 3306,
user = "admin",
password = "adminadmin",
database = "zerobase"
)
mycursor = remote.cursor()
sql = open ("test04.sql").read()
for result_iterator in mycursor.execute(sql, multi=True):
if result_iterator.with_rows:
print(result_iterator.fetchall())
else:
print(result_iterator.statement)
remote.commit()
remote.close()

Fetchall

Fetch all

Mycursor.execute()

Result = mycursor.fetchall()
For data in result
print(data)

지난시간에 쿼리를 한 이후에 결과값이 ROWS 인 경우 fetchall 사용
실행쿼리가 아닌 셀렉트 처럼 조회쿼리 경우 fetchall을 통해 가져올 수 있는데
반복문을 쓸 경우 ROW마다 프린트 할 수 있음

result = mycursor.fetchall()
for result_iterator in result:
print(result_iterator)

예시1) * 반복문 미활용

import mysql.connector
remote = mysql.connector.connect (
host = "database-1.cn462iy0q6hf.ap-southeast-2.rds.amazonaws.com",
port = 3306,
user = "admin",
password = "adminadmin",
database = "zerobase"
)
mycursor = remote.cursor(buffered=True)
mycursor.execute("SELECT * FROM sql_file")
result = mycursor.fetchall()
print(result)
remote.close()

이 경우 fetchall을 통해 가져온 데이터들이 열마다 구분이 되지않고
한번에 출력되는 결과를 가져온다.

예시1) * 반복문 활용

import mysql.connector
remote = mysql.connector.connect (
host = "database-1.cn462iy0q6hf.ap-southeast-2.rds.amazonaws.com",
port = 3306,
user = "admin",
password = "adminadmin",
database = "zerobase"
)
mycursor = remote.cursor(buffered=True)
mycursor.execute("SELECT * FROM sql_file")
result = mycursor.fetchall()
for result_iterator in result:
print(result_iterator)
remote.close()

각각 row마다 결과를 내준다.

profile
💻 To be a Data analyst

0개의 댓글