SQL

    [MySQL] 연습용 개인 서버 구축하기 (Mac)

    [MySQL] 연습용 개인 서버 구축하기 (Mac)

    Building a personal MySQL Server for practice in MacOs 실무에서 가장 많이 쓰이는 것이 데이터베이스이기에, 예전부터 SQL을 깊게 공부해보고 싶다는 생각을 많이 했다. 관련 자격증도 공부해보고 실무에서 SQL을 간접적으로도 사용하였지만 데이터 처리는 주로 Python의 Pandas를 이용하는 만큼 query를 직접 다뤄볼 일은 많지 않았다. 해서 개인용 DBMS를 구축하여 공부해보기로 했다. Mac을 사면서 첫 계획은 DB서버 역할을 하는 Windows 서버 하나를 구축하여 MS-SQL을 올려놓고 사용해 볼 계획이었으나,,, Apple Silicon칩은 docker를 활용해도 Windows 기반의 MS-SQL을 셋업하기가 힘들었다. 이에 대중적인 MySQL을 개..

    Python에서 SQL에 데이터 UPSERT하기

    Python에서 SQL에 데이터 UPSERT하기

    RTDB를 지속적으로 업데이트하게 되면서, key column에 대해 중복되지 않게 데이터를 업데이트하는 로직의 필요성이 생겼다. Pandas의 to_sql 메서드의 경우 같은 이름의 SQL 테이블이 존재할 때 3가지 방식을 지원하는데, 아래와 같다. if_exists: 'fail'일 때 테이블이 존재하면 ValueError를 일으킨다. if_exists: 'replace'일 때 테이블이 존재하면 기존의 테이블을 없애고 새로운 테이블을 덮어씌워 저장한다. if_exists: 'append'일 때 테이블이 존재하면 새로운 table을 새로운 행으로 추가하여 저장한다. 특정 column에 대해 중복된 행을 제외하고 데이터를 업데이트 하는 기능을 지원할 줄 알았는데, 그런 기능은 없었다. Python으로 이와..