SQL로 테이블 만들기 - DB Browser 사용
SQL로 테이블 만들기 - DB Browser 사용 (Create a Table with SQL)
이제 실제로 데이터베이스를 만지기 시작해요. DB Browser for SQLite라는 시각적인 도구로 데이터베이스 파일을 만들고, 그 안에 테이블을 하나 만들어 볼게요. 아직은 SQLModel 코드가 아니라, 순수 SQL로 시작해서 데이터베이스가 어떻게 생겼는지 눈으로 먼저 확인하는 장입니다.
출처: 공식문서
시작해 볼게요
우리가 할 일은 이렇게 두 가지예요.
- DB Browser for SQLite로 SQLite 데이터베이스 만들기
- DB Browser for SQLite로 데이터베이스에 테이블 만들기
데이터를 넣는 건 나중에 할 거예요. 지금은 데이터베이스와 첫 번째 테이블 구조만 만들어 볼게요.
우리가 만들 테이블은 이 데이터를 담을 거예요.
| id | name | secret_name | age |
|---|---|---|---|
| 1 | Deadpond | Dive Wilson | null |
| 2 | Spider-Boy | Pedro Parqueador | null |
| 3 | Rusty-Man | Tommy Sharp | 48 |
데이터베이스 만들기
SQLModel과 SQLAlchemy는 기본적으로 SQL 위에서 동작해요.
이 둘은 파이썬 클래스와 객체를 통해 SQL을 쓰기 쉽게 도와주는 도구예요. 하지만 SQL 자체를 이해해 두는 건 언제나 큰 도움이 됩니다.
그래서 아주 단순한, 순수 SQL 예제부터 시작할게요.
DB Browser for SQLite를 엽니다.
New Database 버튼을 클릭하세요.

대화상자가 나타날 거예요. 프로젝트 디렉터리로 이동해서 파일 이름을 database.db로 저장하세요.
팁
SQLite 데이터베이스 파일은 보통
.db확장자로 저장해요. 가끔.sqlite도 쓰이죠.
테이블 만들기
그다음, 바로 새 테이블을 만들라고 안내할 수도 있어요.
혹시 그 안내가 안 나오면 Create Table 버튼을 클릭하세요.

그럼 새 테이블을 만드는 대화상자가 보일 거예요.
자, hero라는 새 테이블을 다음 컬럼들로 만들어 볼게요.
id: 기본 키(primary key) 가 될INTEGER(PK ✅ 체크)name:TEXT.NOT NULL이어야 해요 (NN ✅ 체크). 즉 항상 값을 가져야 하죠.secret_name:TEXT. 이것도NOT NULL이어야 해요 (NN ✅ 체크).age:INTEGER. 이건NULL이 될 수 있어요. 그래서 다른 건 체크하지 않아도 됩니다.

OK를 눌러 테이블을 만들면 돼요.
Add 버튼을 누르면서 정보를 추가하다 보면, 테이블을 만드는 데 실행될 SQL 문이 만들어지고 업데이트되는 걸 볼 수 있어요.
CREATE TABLE "hero" ( --(1)
"id" INTEGER, --(2)
"name" TEXT NOT NULL, --(3)
"secret_name" TEXT NOT NULL, --(4)
"age" INTEGER, --(5)
PRIMARY KEY("id") --(6)
); --(7)
hero라는 이름의 테이블을 만들어요. 이 테이블의 컬럼들이 여기서 시작하는 괄호 "(" 안에 선언된다는 점도 눈여겨보세요.id컬럼,INTEGER예요. 마지막에 기본 키로 선언됩니다.name컬럼,TEXT이고 항상 값(NOT NULL)을 가져야 해요.secret_name컬럼, 또 다른TEXT, 역시NOT NULL.age컬럼,INTEGER. 이건NOT NULL이 없으니NULL이 될 수 있어요.- 이 테이블의
PRIMARY KEY는id컬럼입니다. - SQL 테이블의 끝이에요. 마지막 괄호 "
)"와 SQL 문의 끝을 표시하는 세미콜론 ";"이 있죠. 같은 SQL 문자열 안에 더 많은 SQL 문이 있을 수도 있어요.
이제 지정한 컬럼들이 Table 목록에 나타나는 걸 볼 수 있을 거예요. 🎉

남은 단계는 Write Changes를 클릭해서 변경 사항을 파일에 저장하는 것뿐이에요.

그다음, 새 테이블은 ./database.db 파일에 있는 이 데이터베이스에 저장됩니다.
테이블 확인하기
모두 저장됐는지 확인해 볼게요.
먼저 Close Database 버튼을 클릭해서 데이터베이스를 닫아요.

이제 Open Database를 클릭해 데이터베이스를 다시 열고, 같은 파일 ./database.db를 선택하세요.

우리가 만든 것과 똑같은 테이블을 다시 볼 수 있을 거예요.

SQL로 다시 테이블 만들기
이제 SQL이 어떻게 동작하는지 보기 위해, 테이블을 다시 만들 건데 이번엔 SQL로 만들어 볼게요.
Close Database 버튼을 다시 클릭하세요.
그리고 프로젝트 디렉터리에 있는 ./database.db 파일을 삭제하세요.
다시 New Database를 클릭합니다.
파일 이름을 database.db로 다시 저장하세요.
이번에는 새 테이블을 만들라는 대화상자가 나오면 Cancel 버튼을 눌러 그냥 닫아요.
그리고 Execute SQL 탭으로 이동하세요.
앞 단계에서 만들어진 것과 같은 SQL을 작성합니다.
CREATE TABLE "hero" (
"id" INTEGER,
"name" TEXT NOT NULL,
"secret_name" TEXT NOT NULL,
"age" INTEGER,
PRIMARY KEY("id")
);
그리고 "Execute all" ▶ 버튼을 클릭하세요.

"execution finished successfully" 메시지가 보일 거예요.

Database Structure 탭으로 돌아가 보면, 실제로 아까와 같은 테이블을 다시 만들었다는 걸 확인할 수 있어요.

SQL 더 배우기
이 튜토리얼 내내 SQL 조각들을 조금씩 보여드릴게요. SQLModel을 쓰기 위해 SQL 전문가가 될 필요는 없어요.
하지만 궁금하고 SQL을 빠르게 훑어보고 싶다면, SQLite의 시각적인 문서인 SQL As Understood By SQLite를 추천해요.
CREATE TABLE부터 시작하면 됩니다.
물론 전체 SQL 강좌를 듣거나 SQL 책을 읽어도 좋아요. 하지만 SQLModel로 실제 작업을 시작하는 데 필요한 건, 제가 이 튜토리얼에서 설명할 내용 이상이 아니랍니다. 🤓
요약 (Recap)
우리는 DB Browser for SQLite라는 시각적인 사용자 인터페이스로 파일에 있는 SQLite 데이터베이스와 상호작용하는 방법을 봤어요.
또한 이 도구로 SQLite 데이터베이스에 직접 SQL을 작성하는 방법도 살펴봤어요. 이건 데이터베이스의 데이터가 올바른지 확인하고, 디버깅하는 데 아주 유용해요.
다음 장들에서는 SQLModel로 데이터베이스와 상호작용하기 시작할 거고, 그와 동시에 DB Browser for SQLite로 밑에 있는 데이터베이스를 계속 확인할 거예요. 🔍