거울아거울아 스터디 - 6
한사람이 딴짓을 하는 것 같은데.. 무엇을 배웠는가? 안영님의 요약을 통해 4장에서 관계형 데이터베이스, sqlite3을 다루는 방법을 공부했습니다. 관계형 데이터베이스 : 관계형 데이터 모델에 기초한 데이터베이스 관계형 데이터베이스에서 데이터는 행, 열의 2차원 테이블로 표현 테이블에서 고유 키로 각 열을 구별 다른 테이블과 연결 가능 SQL : 관계형 데이터베이스에서 데이터를 다루기 위해 사용하는 일반적인 명령어 집합 create table - 새로운 테이블을 만듭니다. select - 테이블에서 특정한 열 데이터를 읽어옵니다. where - 데이터를 특정한 조건에 따라 행 단위로 필터링합니다. insert into - 테이블에 데이터를 추가합니다. 파이썬 내장 모듈 sqlite3 인메모리(in-memory) 데이터베이스 생성 지원 데이터베이스를 별도로 설치하지 않고도, 파이썬 코드를 통해 가벼운 데이터베이스 사용 가능 SQL 쿼리 언어로 접근 가능 sqlite3 예시 :memory: 명칭을 사용해 메모리에 데이터베이스를 생성합니다. sqlite3.connect() 메서드로 사용할 db 파일에 접근합니다. 테이블 만들기 execute() 메서드로 SQL 쿼리를 실행합니다. commit() 메서드로 데이터베이스의 변동사항을 저장합니다. 데이터 삽입하기 튜플로 이루어진 리스토로 삽입할 데이터를 정의합니다. SQL insert into 구문 안에 values(?,?,?,?) 식으로 변수의 위치를 할당합니다. excute() 또는 excutemany() 메서드에 SQL문과 데이터를 전달합니다. excutemany() 메서드는 복수개의 행 데이터를 한 번에 처리할 수 있습니다. 테이블에서 데이터 가져오기 fetchall() 메서드를 사용해 row에 전체 데이터를 할당합니다. 테이블에 새 레코드 삽입하기/갱신하기 cursor() 메서드로 Cursor 객체를 생성합니다. cursor 객체의 execute() 메서드로 SQL문을 실행합니다. 새로운 레코드를 삽입할 때 INSERT INTO 구문을 사용합니다. 레코드를 갱신할 때 UPDATE 구문을 사용합니다. connection 객체의 commit() 메서드로 데이터베이스의 변경사항을 저장합니다. 심화 과정 psycopg2와 sqlalchemy를 활용해 데이터베이스 서버에 접속하고, SQL 쿼리문을 작성해 특정 데이터를 읽어오는 것을 실습했습니다. 또한 jupyter notebook 상에서 로그인 정보를 사용해야 할 때 getpass 모듈을 활용해 패스워드를 입력하는 방법도 배웠습니다. 어땠는가? 실제 업무에서 SQL 쿼리로 데이터를 뽑는 일이 많았는데, 파이썬에서 데이터베이스를 다룰 때도 쿼리를 그대로 쓸 수 있어서 좋았습니다. 특히 심화 시간에 회사에서 사용하는 데이터베이스를 가지고 실습해 볼 수 있어서 더욱 이해하기 편했습니다. 이번 장도 기본 개념 자체는 복잡하지 않았지만, 이것을 활용해 무언가 프로그램다운 기능을 하게 하려면 더 많은 공부가 필요할 것 같다는 생각이 듭니다. csv, 엑셀, 데이터베이스까지, 이제 파이썬 데이터 분석 입문에서 데이터 부분이 얼마 안 남았네요. 모두들 고생 많으셨고 남은 스터디도 화이팅입니닷 치킨이 두시간 지각..
