SQLite - 테이블 생성: 초보자 가이드
안녕하세요, 미래의 데이터베이스 마법사 여러분! 오늘 우리는 SQLite의 마법의 세상으로 뛰어들어 테이블을 생성하는 방법을 배우겠습니다. 코드를 한 줄도 작성해본 적이 없으신 분들도 걱정 마세요 - 이 흥미로운 여정에서 친절한 안내자로서 여러분을 안내하겠습니다. 커피(또는 차, 만약 그게 여러분의 취향이라면)를 한 잔 마시고, 시작해 보세요!
SQLite는 무엇인가요?
테이블 생성에 뛰어들기 전에 잠시 SQLite에 대해 이해해 보겠습니다. SQLite를 상상해 보세요. 작고 이동식 라이브러리로, 여러분의 애플리케이션에 데이터를 저장하고 관리할 수 있습니다. 마치 여러분의 주머니에 들고 다니는 작은 파일 캐비닛 같은 것입니다!
SQLite는 설정이 간편하고 별도의 서버 프로세스가 필요하지 않아 초보자에게 완벽합니다. 모바일 앱, 데스크톱 애플리케이션, 심지어 일부 웹사이트에서 널리 사용됩니다. SQLite를 배우는 것은 여러 가지 다른 상황에서 사용할 수 있는 슈퍼파워를 배우는 것과 같습니다!
SQLite에서 테이블 이해하기
이제 테이블에 대해 이야기해 보겠습니다. 데이터베이스의 세계에서 테이블은 스프레드시트와 같습니다. 데이터를 행과 열로 정리하는 데 도움을 줍니다. 각 열은 특정 유형의 정보(이름, 나이, 좋아하는 색 등)를 나타내고, 각 행은 단일 항목이나 레코드를 나타냅니다.
예를 들어, 애완동물 가게 데이터베이스를 만들고 있다고 가정해 봅시다. "Pets"라는 테이블을 생성할 수 있으며, 이 테이블에는 애완동물의 이름, 종, 나이, 주인의 이름 등의 열이 있습니다. 각 행은 가게에 있는 다른 애완동물을 나타냅니다.
SQLite에서 테이블 생성하기
좋아요, 이제 테이블이 무엇인지 이해했으니 SQLite에서 테이블을 생성하는 방법을 배워보겠습니다!
문법
SQLite에서 테이블을 생성하는 기본 문법은 다음과 같습니다:
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
...
);
이것이 무서워하지 마세요! 보기보다 간단합니다. 이를 쉽게 설명해 보겠습니다:
-
CREATE TABLE
: SQLite에 새로운 테이블을 만들고 싶다고 알리는 방법입니다. -
table_name
: 여러분이 테이블에 부여하고 싶은 이름을 넣는 곳입니다. - 괄호 안에서 우리는 열을 나열합니다. 각 열에 대해 다음을 지정합니다:
- 열 이름
- 자료형 (예: TEXT는 단어, INTEGER는 정수 등)
각 열 정의 사이에는 쉼표를 두고, 마지막 열은 쉼표를 두지 않습니다.
예제: Pets 테이블 생성하기
이전에 이야기한 애완동물 가게 테이블을 생성해 보겠습니다. 이렇게 합니다:
CREATE TABLE Pets (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
species TEXT NOT NULL,
age INTEGER,
owner_name TEXT
);
이제 이를 분해해 보겠습니다:
-
id INTEGER PRIMARY KEY
: 각 애완동물에 고유한 식별자를 생성합니다.PRIMARY KEY
는 이 ID가 각 항목에서 고유하다는 뜻입니다. -
name TEXT NOT NULL
: 애완동물의 이름을 저장하는 열입니다.TEXT
는 문자와 숫자를 포함할 수 있습니다.NOT NULL
은 이 필드가 비어 있을 수 없다는 뜻입니다. -
species TEXT NOT NULL
: 애완동물의 종을 저장하는 열입니다. -
age INTEGER
: 애완동물의 나이를 저장하는 열입니다.INTEGER
는 정수만 허용합니다. -
owner_name TEXT
: 애완동물의 주인 이름을 저장하는 열입니다.NOT NULL
을 사용하지 않았기 때문에, 일부 애완동물은 아직 주인이 없을 수 있습니다.
고급 테이블 생성 기법
이제 기본적인 것을 배웠으니, 테이블 생성 시 사용할 수 있는 몇 가지 고급 기법을 살펴보겠습니다.
기본값
occasionally, you might want a column to have a default value if no value is specified. Here's how you can do that:
CREATE TABLE Products (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
price REAL NOT NULL,
in_stock INTEGER DEFAULT 0
);
이 예제에서,新产品添加到库存时如果没有指定 in_stock
的值,它将自动设置为 0。
고유 제약 조건
특정 열의 값이 항상 고유해야 한다고 가정해 봅시다. UNIQUE
키워드를 사용할 수 있습니다:
CREATE TABLE Users (
id INTEGER PRIMARY KEY,
username TEXT NOT NULL UNIQUE,
email TEXT NOT NULL UNIQUE,
password TEXT NOT NULL
);
이렇게 하면 두 사용자가 동일한 사용자 이름이나 이메일 주소를 가질 수 없습니다.
외래 키
외래 키는 다른 테이블과 데이터를 연결하는 방법입니다. 예를 들어:
CREATE TABLE Orders (
id INTEGER PRIMARY KEY,
user_id INTEGER,
product_id INTEGER,
quantity INTEGER NOT NULL,
FOREIGN KEY (user_id) REFERENCES Users(id),
FOREIGN KEY (product_id) REFERENCES Products(id)
);
이 Orders
테이블은 이전에 생성한 Users
와 Products
테이블과 연결됩니다.
일반 SQLite 자료형
다음은 자주 사용되는 SQLite 자료형의 표입니다:
자료형 | 설명 |
---|---|
INTEGER | 정수 |
REAL | 소수점 수 |
TEXT | 문자열 |
BLOB | 이진 데이터 (이미지 등) |
NULL | NULL 값 |
SQLite는 자료형에 대해 매우 유연합니다. 자동으로 데이터를 적절한 형식으로 변환하려고 시도합니다.
결론
축하합니다! SQLite의 데이터베이스 생성 세계로 첫 걸음을 뗐습니다. 우리는 테이블 생성의 기본에서부터 기본값, 고유 제약 조건, 외래 키와 같은 고급 기법까지 다루었습니다.
좋은 데이터베이스 구조를 만드는 것은 LEGO 블록으로 만드는 것과 같습니다. 간단하게 시작하고, 편안해지면 더 복잡하고 상호 연결된 구조를 만들 수 있습니다. 중요한 것은 연습과 인내입니다.
여러분의 여정을 계속하면서, 두려워하지 마세요. 다양한 시나리오에 대해 테이블을 만들어 보세요 -도서관 목록, 레시피 책, 아니면 좋아하는 영화를 추적하는 데이터베이스 등. 더 많이 연습할수록 자연스러워집니다.
그리고 언제나 기억하세요: 모든 전문가는 초보자였습니다. 계속 배우고, 코드를 작성하고, 얼마 지나지 않아 복잡한 데이터베이스를 쉽게 만들 수 있을 것입니다!
행복하게 코딩하세요, 미래의 데이터베이스 주宰자 여러분!
Credits: Image by storyset