17P by neo 15일전 | favorite | 댓글 1개

SQL for the Weary

  • 목표 대상: 세포생물학 석사 학위를 가진 레이첼은 연구 병원에서 세포 분석 작업을 하며 데이터 과학자가 되고자 함.
  • 필요한 사전 지식: 기본적인 Unix 명령어와 표 형식 데이터 분석 능력.
  • 학습 결과: 데이터베이스와 데이터베이스 관리자의 차이점 설명, SQL 작성, 테이블 정의 및 데이터 조작, 조인 종류 설명, 인접 행 작업을 위한 윈도우 함수 사용, 트랜잭션과 트리거에 대한 이해, SQL을 사용한 JSON 데이터 조작, Python을 통한 데이터베이스 상호 작용.

설정

  • 최신 릴리스 다운로드: SQLite 데이터베이스 예제, SQL 쿼리, Python 스크립트 등이 포함된 파일을 임시 디렉토리에 압축 해제.

배경 개념

  • 데이터베이스: 검색 및 검색이 가능한 데이터 모음.
  • 데이터베이스 관리 시스템(DBMS): 특정 종류의 데이터베이스를 관리하는 프로그램.
  • SQLite: 데이터베이스를 단일 파일로 저장, PostgreSQL은 더 높은 성능을 위해 여러 파일에 정보를 분산.
  • 관계형 데이터베이스 관리 시스템(RDBMS): 데이터를 테이블에 저장하고 SQL을 사용하여 쿼리.
  • NoSQL 데이터베이스: 테이블을 사용하지 않는 MongoDB와 같은 데이터베이스도 존재.

데이터베이스 연결

  • 데이터베이스 연결: 실제 쿼리가 아니지만 다른 작업을 수행하기 전에 필요한 단계.

관리 명령어

  • SQLite 관리 명령어: 표준 SQL의 일부가 아니며, PostgreSQL의 특수 명령어는 \로 시작.
  • 출력 형식: .headers on.mode markdown을 사용하여 결과를 가독성 있게 출력.

테이블 조작

  • 테이블 생성: create table 명령어로 테이블과 열을 정의.
  • 데이터 삽입: insert into 명령어로 테이블에 데이터 추가.
  • 행 업데이트: update 명령어로 특정 조건을 만족하는 행의 데이터 변경.
  • 행 삭제: delete from 명령어로 특정 조건을 만족하는 행 제거.

조인

  • 조인: 두 테이블의 정보를 결합하는 작업.
  • 내부 조인: inner join을 사용하여 두 테이블의 일치하는 행만 결합.
  • 왼쪽 조인: left join을 사용하여 왼쪽 테이블의 모든 행을 유지하고 오른쪽 테이블의 누락된 값은 null로 채움.

집계 함수

  • 집계: 여러 값을 하나로 결합하는 작업.
  • 일반적인 집계 함수: sum, max, min, avg 등을 사용하여 데이터 집계.
  • 그룹화: group by를 사용하여 특정 열의 고유한 조합에 따라 행을 그룹화하고 각 그룹에 대해 집계 수행.

GN⁺의 의견

  • 이 글은 데이터베이스와 SQL에 대한 기본적인 이해를 돕기 위한 자료로, 초급 소프트웨어 엔지니어나 데이터 과학에 관심 있는 이들에게 유용함.
  • 실제 예제와 함께 SQL의 다양한 기능을 설명하여, 데이터베이스 관리 및 조작에 대한 실질적인 지식을 제공함.
  • 특히 데이터베이스 조인, 집계 함수, 테이블 조작 등은 데이터 분석과 관련된 작업에서 매우 중요하며, 이 글은 이러한 개념을 명확하게 이해하는 데 도움이 됨.
Hacker News 의견
  • ChatGPT를 사용하여 데이터 과학자처럼 복잡한 쿼리를 작성할 수 있음. 이를 통해 전환율, 메시지 클릭률 등 유용한 지표를 얻을 수 있음.
  • 데이터 과학자라는 용어의 의미가 과거 "가장 섹시한 직업"이라는 시절부터 변화함. 기사에서는 생물학 석사 학위를 가진 Rachel이 연구 병원에서 세포 분석을 하고 있으며, 데이터 과학자가 되고자 함. 과거 데이터 과학자들은 양적 배경과 소프트웨어 엔지니어링 배경을 모두 갖춘 사람들이었으나, 현재는 "과대 평가된 데이터 분석가"로 여겨지기도 함.
  • DuckDB를 사용하여 이 가이드를 다시 작성하는 것이 좋을 수 있음. DuckDB는 현재 데이터 과학자들에게 SQLite보다 더 자주 사용됨.
  • 매우 간결한 SQL 가이드로, 예시를 통한 훌륭한 교육. 미국 대학에서는 이 내용을 한 학기 동안 가르치지만, 이 가이드는 데이터베이스 최적화를 제외한 대부분의 산업 소프트웨어 엔지니어링 직무에 충분함.
  • TextQuery라는 Mac 앱을 통해 SQL 연습을 할 수 있음. CSV 데이터셋을 빠르게 가져와 SQL 쿼리를 실행할 수 있으며, 현재 베타 버전은 무료로 사용 가능함.
  • 와이파이가 불안정한 비행 중에 긴, 단일 페이지 튜토리얼을 다운로드하는 것이 좋음. SQL 외의 다른 언어나 기술에 대한 튜토리얼이 있는지 궁금함.
  • 많은 쿼리들이 SQLite에만 유효하며, 일부 DBMS에서는 지원되지 않는 기능들이 포함되어 있음. 예를 들어, 집계 필터링은 MySQL, MS SQL, Oracle 등에서 지원되지 않음.
  • 데이터 과학자를 위한 튜토리얼이라기보다는 일반적인 SQL의 좋은 요약으로 보임.
  • "left outer join"에 대한 설명은 동일성 조건에만 적용되며, left join에 대한 잘못된 인식을 만들 수 있음. 이러한 설명은 매우 흔하지만 오해의 소지가 있음.