[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
연결
%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;