Page 14 -
P. 14

이렇게 같은 데이터베이스 내에 서로 다른 여러 테이블이 있을 수 있고, 테이블마다 저장할 수 있
               는 데이터 항목이 다르기 때문에 다양한 형태의 데이터를 저장할 수 있습니다.

               물론 테이블 구조는 데이터를 어떻게 분류하여 저장할지 구상한 프로그래머 마음대로 만들 수 있
               고 변경할 수 있습니다. 그러면 sqlite3를 이용하여 universe_  price.db 안에 테이블을 하나 만들
               어 보겠습니다. 잔고 정보를 저장하는 balance 테이블을 만들기 위해 다음 코드를 작성합니다.


                db_helper.py
                 import sqlite3
                 conn = sqlite3.connect('universe_price.db')

                 cur = conn.cursor()
                 cur.execute('''CREATE TABLE balance   테이블 생성
                                (code varchar(6) PRIMARY KEY,
                                 bid_price int(20) NOT NULL,
                                 quantity int(20) NOT NULL,
                                 created_at varchar(14) NOT NULL,
                                 will_clear_at varchar(14)
                                )''')


                 conn.commit()


               코드를 하나씩 살펴보겠습니다. sqlite3.connect로 연결 객체를 얻어 와 conn 변수에 저장합니다.
               하지만 데이터베이스를 실제로 제어하려면 conn.cursor()라는 연결 객체 conn의 cursor가 필요합
               니다. 이 conn.cursor()를 cur 변수에 담아 SQL을 실행하는 execute 함수를 사용하도록 하겠습
               니다.

               따라서 SQL을 실행하려면 cur.execute(SQL)처럼 SQL을 cur.execute 함수에 전달하여 사용하고,

               앞 코드를 보면 SQL은 '''CREATE TABLE balance(code~, bid_ price~, quantity~, created_at~,
               will_clear_at~)'''입니다.
               SQL이 데이터베이스용 프로그래밍 언어라고 해서 특별한 것이 아니라 특정한 키워드를 이용한

               문자열을 cur.execute()에 전달하면 데이터베이스에서 명령어를 수행하게 됩니다.

               그럼 테이블을 생성하는 SQL을 살펴보면 CREATE TABLE로 시작합니다. 이는 테이블을 새로 만들
               겠다는 것으로, 그다음 등장하는 balance를 테이블 이름으로 사용하겠다는 의미입니다. 이후 등
               장하는 code varchar(6) PRIMARY KEY는 테이블에 저장할 열(column) 정보입니다.





         302





     주식매매_05.indd   302                                                                      2021-09-30   오후 3:20:43
   9   10   11   12   13   14   15   16   17   18   19