기본 세팅
PyMySQL설치 (설치 경로 유의)
DB생성 (여기서 자세하게 다루진 않습니다)
- MySQL 설치
- root user에 권한 부여(GRANT)
- 여기선 새로운 user인 blog생성한 상태(마찬가지로 권한 부여)
- CREATE로 DB생성
blog_db가 생성되었으면 같은 이름으로 생성할때 이미 존재한다고 메세지가 뜬다.
show databases명령으로 존재하는 db를 확인할 수 있다.
use blog_db 명령어로 아까 생성한 db를 사용하도록 한다.
해당 db에 create table 명령으로 테이블을 하나 생성해주며 db생성을 마친다.
DB 연결
pip로 다운받았던 pymysql을 import하고
connect메소드에 파라미터값을 지정하고
MYSQL_CONN라는 이름의 connect 객체를 생성하여 db와 연결을 한다.
connect객체가 연결되었는지 확인하기 위해
connect객체에서 cursor객체를 가져와 test를 print해본다.
SQL문 사용
test라는 이름 대신 SQL_cursor이름으로 커서 객체를 생성하고
cursor객체에 execute를 사용해 sql문을 집어넣어본다.
SHOW TABLES의 execute결과는 1로 터미널 창에 출력된다.
아까 테이블을 하나만 생성했기에 나오는 결과이다.
테이블 생성
이번엔 새로 테이블을 하나 더 생성해본다.
sql문을 작성하고 execute로 실행한다.
sql문을 실행하는 것은 cursor객체의 execute면 실행되지만
db를 변경하는 사항은 connect객체의 commit도 사용해준다.
일전의 show tables문은 1을 리턴했고
새로운 test라는 테이블을 생성한 후
show tables은 2를 리턴하게 된다.
테이블 삭제
이번엔 drop으로 방금 만든 test라는 테이블을 삭제해본다.
마찬가지로 db변경이 있으므로 commit을 사용해준다.
test테이블을 삭제한 후 show를 확인해보니
테이블이 하나 남았다고 1을 리턴해준다.
테이블에 데이터 삽입
이번엔 user_info 테이블에 insert문을 사용해
값을 넣어본다.
테이블 데이터 조회
조회를 위한 select문을 execute한 뒤
가져온 데이터를 모두 담기 위해서
커서 객체에서 fetchall을 사용해 results에 담아준다.
(fetchall = 모두 가져오기, fetchone = 하나만 가져오기)
나열된 데이터인 results를 for문을 사용해 모두 출력해본다.
일전에 삽입했던 데이터가 출력되는 것을 볼 수 있다.
데이터를 두개 더 삽입하고 select문으로 조회하니
세 개의 데이터 모두 조회가 되는 것을 확인할 수 있다.
데이터 삭제
delete문을 사용해 user_id가 2인 데이터를 삭제한다.
일전에 db생성시 user_id는 auto increment로 자동으로 매겨지는 속성으로 설정했기에
user_id=2는 두번째 데이터를 삭제하는 것이다.
하나의 데이터가 지워졌다는 1이 리턴이되며
다시 select로 데이터를 조회하니
두번째 데이터가 사라진 두개의 데이터만 조회된다.
데이터베이스 연결 끊기
필요한 모든 sql문을 다 사용했다면 마지막으로 db연결을 끊어준다.
'Back-end' 카테고리의 다른 글
[Flask] 파이썬 db연결, MongoDB, Pymongo (0) | 2022.07.12 |
---|---|
[Flask] MVC패턴을 위한 BluePrint, 파이썬 파일끼리 import하기 (0) | 2022.07.04 |
[Flask] 플라스크에서 지원하는 데코레이터 (0) | 2022.07.01 |
[Flask] 에러페이지 처리, 에러 로그파일로 저장 (0) | 2022.07.01 |
[Back-end] put, get, post, delete 방식별 RestAPI구현 (0) | 2022.06.29 |