0Pricing
Python Academy · 강의

테이블 연결 및 생성

데이터베이스를 열고 스키마 정의하기

테이블 연결 및 생성은(는) CoddyKit의 무료 Python Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Python Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

sqlite3이란 무엇인가요?

Python은 표준 라이브러리에 sqlite3 모듈을 포함합니다. 이 모듈을 사용하면 별도의 서버가 필요 없는 가벼운 SQLite 파일 기반 SQL 데이터베이스를 다룰 수 있습니다.

  • 설치가 필요하지 않습니다
  • 전체 데이터베이스가 하나의 파일에 저장됩니다
  • 프로토타입, 테스트 및 소규모 앱에 적합합니다
import sqlite3
print(sqlite3.version)

데이터베이스에 연결하기

sqlite3.connect()를 사용해 데이터베이스를 엽니다. 파일이 존재하지 않으면 SQLite가 파일을 만듭니다.

':memory:'를 전달하면 연결이 닫힐 때 사라지는 임시 메모리 내 데이터베이스가 생성됩니다.

import sqlite3
conn = sqlite3.connect(':memory:')
print('Connected:', conn)
conn.close()

Cursor 객체

SQL을 실행하려면 커서가 필요합니다. conn.cursor()를 호출해 커서를 가져온 다음 cursor.execute()를 사용해 SQL 문을 전달하세요.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
print('Cursor ready:', cur)
conn.close()

테이블 만들기

CREATE TABLE로 스키마를 정의합니다. 각 열에는 이름과 INTEGER, TEXT, REAL 같은 형식이 필요합니다.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER, name TEXT, age INTEGER)')
print('Table created')
conn.close()

기본 키

기본 키는 각 행을 고유하게 식별합니다. INTEGER PRIMARY KEY를 선언하면 SQLite가 값을 자동으로 증가시킵니다.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE books (id INTEGER PRIMARY KEY, title TEXT)')
print('books table ready')
conn.close()

IF NOT EXISTS

CREATE TABLE을 두 번 실행하면 오류가 발생합니다. IF NOT EXISTS를 추가하면 문을 반복해서 실행해도 안전합니다.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
sql = 'CREATE TABLE IF NOT EXISTS notes (id INTEGER PRIMARY KEY, body TEXT)'
cur.execute(sql)
cur.execute(sql)
print('No error on second run')
conn.close()

열 제약 조건

제약 조건은 데이터베이스 수준에서 데이터 규칙을 적용합니다.

  • NOT NULL은 값이 있어야 하도록 합니다
  • UNIQUE는 중복을 금지합니다
  • DEFAULT는 대체 값을 제공합니다
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE accounts (id INTEGER PRIMARY KEY, email TEXT NOT NULL UNIQUE, active INTEGER DEFAULT 1)')
print('accounts table with constraints')
conn.close()

스키마 검사하기

SQLite는 sqlite_master에 스키마 정보를 저장합니다. 이를 조회하면 테이블 목록을 확인할 수 있습니다.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
print(cur.fetchall())
conn.close()

파일에 저장하기

데이터를 유지하려면 connect()에 파일 이름을 전달합니다. 프로그램이 종료된 후에도 데이터베이스가 유지됩니다.

변경 사항을 디스크에 기록하려면 conn.commit()을 호출해야 합니다.

import sqlite3
conn = sqlite3.connect('app.db')
cur = conn.cursor()
cur.execute('CREATE TABLE IF NOT EXISTS items (id INTEGER PRIMARY KEY, name TEXT)')
conn.commit()
print('Saved to app.db')
conn.close()

테이블 삭제하기

DROP TABLE로 테이블을 삭제합니다. 테이블이 이미 삭제된 경우 오류가 발생하지 않도록 IF EXISTS를 사용합니다.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE temp (id INTEGER)')
cur.execute('DROP TABLE IF EXISTS temp')
print('Dropped temp table')
conn.close()

연결은 항상 닫기

열린 연결은 파일 핸들을 계속 점유합니다. 작업이 끝나면 항상 conn.close()로 연결을 닫거나, 자동으로 정리되도록 with 블록을 사용합니다.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE t (id INTEGER)')
conn.close()
print('Connection closed cleanly')

빠른 확인

테이블 생성에 대한 이해도를 확인해 보세요.

복습

sqlite3의 기본 사항을 배웠습니다.

  • connect()는 데이터베이스 파일을 열거나 생성합니다
  • cursor()는 SQL을 실행할 수 있는 객체를 제공합니다
  • CREATE TABLE은 형식과 제약 조건을 사용해 스키마를 정의합니다
  • commit()은 변경 사항을 영구 저장하고 close()는 연결을 해제합니다

다음으로 행을 삽입하고 읽어 보겠습니다.

자주 묻는 질문

“테이블 연결 및 생성” 강의는 무료인가요?

네 — “테이블 연결 및 생성” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Python Academy 강의 전체를 잠금 해제할 수 있습니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“테이블 연결 및 생성”에서 뭘 배우나요?

데이터베이스를 열고 스키마 정의하기 브라우저에서 직접 실행하는 실습 코드로 Python Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Python Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Python Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“테이블 연결 및 생성” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Python Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Python Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 테이블 연결 및 생성
  2. Insert, Select, Update, Delete
  3. 매개변수화된 쿼리
  4. 트랜잭션과 컨텍스트 관리자
← Python Academy(으)로 돌아가기