Skip to content

5.3 데이터베이스 생성하기 ​

이번 장은 MySQL에서 주소 데이터를 저장할 데이터베이스를 생성한다. 데이터에 맞게 파이썬으로 데이터베이스를 생성하는 방법에 대해 학습한다.

이 장에서 사용하는 데이터와 코드 원본은 아래 링크에서 확인할 수 있다.

데이터 구조 살펴보기 ​

관계형 데이터베이스는 데이터의 특성에 따라 여러 개의 데이터베이스를 생성할 수 있다. 하나의 데이터베이스는 여러 개의 테이블을 갖고 있고, 도로명주소 한글 데이터는 2개의 테이블로 구분할 수 있다. 건물 또는 건물군까지 표현된 도로명주소의 정보를 담고 있는 rnaddrkor 테이블과 도로명주소와 관련된 지번의 정보를 담고 있는 jibun_rnaddrkor 테이블이 있다. address라는 이름의 데이터베이스를 생성하고, 두 개의 테이블을 이 데이터베이스 안에 생성해볼 것이다.

데이터베이스 생성하기 ​

address란 이름의 데이터베이스를 생성하는 방법은 sql 변수 안에 SQL 구문으로 작성된다. CREATE DATABASE address는 address란 이름의 데이터베이스를 생성하고, DEFAULT CHARACTER SET utf8은 기본 인코딩으로 utf8을 설정한다.

py
conn = init_connection()
sql = "CREATE DATABASE address DEFAULT CHARACTER SET utf8;"

with conn:
    with conn.cursor() as cur:
        cur.execute(sql)
        conn.commit()

다음의 코드로 생성된 address 데이터베이스를 확인할 수 있다. {'Database': 'address'}으로 출력되었다면 데이터베이스를 성공적으로 생성한 것이다.

py
conn = init_connection()
sql = "SHOW DATABASES;"

with conn:
    with conn.cursor() as cur:
        cur.execute(sql)
        for data in cur:
            print(data)
# {'Database': 'address'}
# {'Database': 'information_schema'}
# {'Database': 'mysql'}
# {'Database': 'performance_schema'}
# {'Database': 'sys'}

생성한 데이터베이스를 삭제하고 싶다면 DROP DATABASE address;를 실행하면 된다. 다만 생성한 데이터베이스를 삭제하게 되면 내부의 정보가 모두 삭제되니 데이터베이스의 삭제는 신중해야 한다.