코드를 하나씩 살펴보겠습니다. 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) 정보입니다.
첫 번째 열은 code라고 이름 짓고 한 칸 띈 후 이 열에 저장될 데이터 타입을 정의합니다. varchar(6)이란 최대 길이 6자리의 문자열로 정하겠다는 의미입니다. PRIMARY KEY는 이 code 열을 기본 키로 지정하겠다는 것으로, balance 테이블 안에 중복되는 code 값이 없다는 것을 의미합니다. 또 이 기본 키는 다른 데이터와 구분되는 유일한 값이어야 하므로 빈 값으로 저장할 수 없습니다.