안녕하세요 강사님~
211
작성한 질문수 7
안녕하세요 강사님~
강의를 듣다가 모르는 부분이 있어서 질문을 올리게되었습니다.
패턴으로 익히는 파이썬과 MySQL - 데이터 입력과 검색 강의에서 반복문을 활용한 부분입니다.
import pymysql
db = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='funcoding', db='ecommerce', charset='utf8')
cursor = db.cursor()
for index in range(10):
product_code = 215673140 + index + 1
sql = """INSERT INTO product VALUES(
'""" + str(product_code) + """', '스위트바니 여름신상5900원~롱원피스티셔츠/긴팔/반팔', 23000, 6900, 70, 'F'); """
print (sql)
cursor.execute(sql)
db.commit()
db.close()
강사님이 작성하신 위 코드 중
VALUES(
'""" + str(product_code) + """', '스위트바니 여름신상5900원~롱원피스티셔츠/긴팔/반팔', 23000, 6900, 70, 'F'); """
이 부분에서 '""" + str(product_code) + """' 이 앞뒤 데이터와 연결되는 형태를 가진 것도 아닌데
1) 왜 str(product_code) 앞 뒤에 + 를 써주셨는지 모르겠습니다. (참고로, +가 없이 실행 시 오류가 났습니다.)
또한, 강사님의 파이썬 강의를 수강을 한 상태이기 때문에
""" """ 가 문자열이 길어 row를 바꿔 작성해줘야할 때 쓴다고 알고있습니다. 그런데,
2) product_code 변수가 row를 바꿔줄만큼 길지도 않고, 데이터타입인 varchar(20)에 들어갈 수 있는 크기인데 """ """ 를 써야하는지 모르겠습니다. (참고로, 따옴표 하나로 실행 시 오류가 났습니다.)
마지막으로, product_code 변수를 만들 때
product_code = 215673140 + index + 1 를
product_code = 215673140 + index 로 선언하면 primary key와 관련한 오류가 발생하는 걸 알았습니다.
3) 강사님과 달리 table에 데이터가 채워져있지 않은 상태였음에도 불구하고, 오류가 나는 이유가 무엇인지 궁금합니다.
긴 질문글 읽어주셔서 감사하고, 항상 양질의 강의 또한 감사합니다.
남은 하루도 좋은 시간되시길 바랍니다.
답변 1
1
안녕하세요. 양질의 강의라고 말씀해주셔서 감사합니다.
질문이 길어서, 제가 답변을 잘 하는 건지는 잘 모르겠어요.
1) SQL 구문을 프로그래밍으로 만들기 위해, SQL 구문을 문자열 형태로 만들었어요. 그 문자열 안에 특정 변수 값이 들어가야 하는데, 문자열 과 변수를 붙이려면 + 을 사용해서 문자열 + 문자열 변수 + 문자열 과 같이 붙일 수 있습니다. 그런데 중간에 들어간 값이 문자열 변수가 아닌, 숫자 타입일 경우를 대비해서 str(변수) 를 사용해서 문자열 변수로 만들어준 것입니다.
2) """ 로 써도 되고, " 으로 써도 됩니다. 이 부분은 선호의 차이라고 볼 수 있습니다. """ 으로 쓰면 여러 줄에 걸쳐서 문자열을 만들때 유용하기 때문에, 일괄적으로 """ 으로 썼습니다.
3) 반복문에서 index는 0부터 시작하기 때문에 index + 1을 하였구요. 본래 강의에서 설명드리면서 사용한 코드들은 해당 테이블 스키마에 product_code 관련 필드가 unique 값이어야 하고, 심지어 foreign key로 다른 테이블과 연결될 수 있습니다. 이런 제약 조건들 때문에, 해당 데이터를 변경하여 넣었을 경우, 제약조건에 걸려서 에러가 난 것으로 이해합니다.
1번 같은 경우는 아무래도 파이썬 문법과 관련이 있는데, 관련 다음 강의에 효과적으로 연습하고, 파이썬 기본을 쌓을 수 있도록 모아놓아서, 이 강의도 한번 참고하시면 좀더 좋을 것 같습니다. 3번은 해당 테이블의 스키마와 관련 강의를 다시 한번 보시면 좋을 것 같습니다.
https://www.inflearn.com/course/Python-crawling-basic
감사합니다.
실습을 따라하는데 데이터베이스가 보이지 않아요
0
54
1
섹션1 4강부터 강의 실행 안됨 이슈
0
77
1
강의 자료 다운로드 관
0
90
1
강의 영상이 안나와요..
0
82
1
섹션4 화면 자체가 안나와요
0
118
1
강의 화면이 안 보이고, 목소리밖에 안나와요 ;;
0
116
1
데이터 삭제 질문
0
123
1
mysql 설치가 되지 않습니다.
0
1387
3
강의 결과 질문 - SQLD, 데이터베이스 설계, 프로젝트 구축 하여 취업
0
147
1
지마켓 파일 불러왔는데, 테이블이 생성이 안됩니다
0
119
1
실습 코드 깃허브 업로드
0
145
1
sql_safe_updates 옵션
0
154
1
sql 설치 문제
0
1424
2
서브쿼리를 JOIN으로 바꾸기
0
157
1
중고급 SQL과 실전 데이터 문의
1
158
1
(맥환경) workbench 이용할 때 패스워드 입력 안해도 자동으로 활성화 가능해져요..
0
351
1
강의 커리큘럼 질문 있습니다.
0
176
1
강의 자료 이미지가 보이지 않습니다.
0
162
1
Join 구문에서 메인 테이블
0
178
1
예제문제 추가 쿼리 질문
0
204
2
강의 화면 출력이 되지 않는 현상
0
211
1
파이썬으로 다루는 MySQL
0
208
1
JOIN 활용 SQL 연습문제
0
179
1
Dbeaver 라는 SQL 쿼리 실행 툴을 써도 될까요?
0
305
1





