[MySQL] Jupyter Notebook & Docker MySql 연동

less than 1 minute read

환경구성

  • install sqlalchemy, ipython-sql in Jupyter notebook
import sys
!conda install --yes --prefix {sys.prefix} sqlalchemy
conda install -c conda-forge ipython-sql
# load sql extension
%load_ext sql

연결

  • connect DB
%sql mysql://root:1234@0.0.0.0:3306/testDB

SQL Table 생성 및 데이터 추가

  • create table
  • insert data into table
-- create table 
%%sql
DROP TABLE IF EXISTS testTbl;
CREATE TABLE testTbl(
    value int
)
-- insert data into table
%%sql
INSERT INTO testTbl VALUES (NULL),(NULL),(0),(1),(2),(3),(3)

Pandas DF

# Convert to pandas DataFrame
result = %sql SELECT * FROM testTbl
result.DataFrame()
value
0 NaN
1 NaN
2 0.0
3 1.0
4 2.0
5 3.0
6 3.0

SQL 주의사항

  • COUNT(변수)는 null을 count하지 않음
  • COUNT(숫자)는 숫자에 상관 없이 전체 행의 개수 반환
%%sql
SELECT COUNT(1), COUNT(value), COUNT(DISTINCT value)
FROM testTbl;
COUNT(1) COUNT(value) COUNT(DISTINCT value)
7 5 4
-- Null인 경우 "="가 아닌 "IS"로 확인해야 함
%%sql
SELECT COUNT(1)
FROM testTbl
WHERE value IS NULL;
COUNT(1)
2