2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

SQLite에서 테이블을 생성하는 SQL 문법은 무엇인가요?

_____
1. Q: SQLite에서 테이블을 생성하려면 어떤 구문을 사용하나요?
A: 기본 구문은 다음과 같습니다.
CREATE TABLE [IF NOT EXISTS] <테이블명> (
<컬럼명1> <데이터타입> [제약조건],
<컬럼명2> <데이터타입> [제약조건],

[, 테이블제약조건 …]
);

2. Q: IF NOT EXISTS 옵션은 무엇을 하나요?
A: 같은 이름의 테이블이 이미 존재할 때 오류를 피하고 생성 과정을 무시합니다.
예) CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT);

3. Q: 컬럼 정의 시 지정할 수 있는 데이터타입은 어떤 것이 있나요?
A: SQLite는 엄격한 타입 체계가 없고, Storage Class 중심입니다. 대표적인 타입 선언 예시는:
• INTEGER – 정수 저장
• REAL – 부동소수점 저장
• TEXT – 텍스트 저장
• BLOB – 바이너리 데이터 저장
• NUMERIC – 숫자/날짜/부울 저장
※ 타입 선언은 권고사항이며, SQLite는 입력값의 타입을 유연하게 저장합니다.

4. Q: 컬럼에 제약조건을 추가하려면 어떻게 하나요?
A:
• PRIMARY KEY – 기본키 지정
• UNIQUE – 유일값 제약
• NOT NULL – 널 값 금지
• CHECK(조건) – 임의 조건 검사
• DEFAULT 값 – 기본값 지정
예) age INTEGER NOT NULL DEFAULT 0, email TEXT UNIQUE

5. Q: PRIMARY KEY와 AUTOINCREMENT 사용법은?
A:
• PRIMARY KEY만 지정하면 자동으로 ROWID를 기본키로 사용합니다.
• INTEGER PRIMARY KEY AUTOINCREMENT를 쓰면 키가 재사용되지 않고, 이전 최대값 +1로 고유하게 증가합니다.
예) id INTEGER PRIMARY KEY AUTOINCREMENT

6. Q: 테이블 수준의 제약조건(테이블제약)은 어떻게 하나요?
A: 컬럼 리스트 뒤에 쉼표로 구분해 작성합니다.
• 복합 PRIMARY KEY
• FOREIGN KEY
• CHECK
예) PRIMARY KEY(col1, col2), FOREIGN KEY(user_id) REFERENCES users(id)

7. Q: FOREIGN KEY를 사용하려면 어떤 설정이 필요한가요?
A:
1) 외래키 제약 활성화: PRAGMA foreign_keys = ON;
2) 테이블 정의:
CREATE TABLE orders (
id INTEGER PRIMARY KEY,
user_id INTEGER,
FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE
);

8. Q: TEMPORARY TABLE은 무엇이고 어떻게 만드나요?
A: 세션(연결) 종료 시 자동 삭제되는 임시 테이블입니다.
CREATE TEMPORARY TABLE temp_data (key TEXT, value TEXT);

9. Q: WITHOUT ROWID 옵션은 언제 사용하나요?
A:
• 기본키가 복합키이거나 ROWID가 불필요할 때 사용
• 데이터 저장 공간 절약 및 검색 성능 향상 가능
예) CREATE TABLE example(id1 INTEGER, id2 INTEGER, data TEXT, PRIMARY KEY(id1,id2)) WITHOUT ROWID;

10. Q: 실제 예제는 어떻게 작성되나요?
A:
-- 사용자 테이블 생성
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL,
age INTEGER DEFAULT 18,
created_at TEXT DEFAULT (datetime('now','localtime'))
);
-- 주문 테이블 생성 (외래키 포함)
PRAGMA foreign_keys = ON;
CREATE TABLE IF NOT EXISTS orders (
order_id INTEGER PRIMARY KEY,
user_id INTEGER NOT NULL,
amount REAL CHECK(amount>0),
order_date TEXT DEFAULT (date('now')),
FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE
);

11. Q: CREATE TABLE 오류가 발생하면 어떻게 확인하나요?
A:
• 테이블명/컬럼명 중복 확인
• 괄호·쉼표 위치 오류 검사
• 외래키 참조 대상 테이블 및 컬럼 존재 여부 확인
• PRAGMA foreign_keys 설정 확인
SQLite에서 테이블을 생성하는 SQL 문법은 `CREATE TABLE` 명령어를 사용하여 정의됩니다.

이 명령어는 데이터베이스 내에 새로운 테이블을 생성하는 데 사용되며, 테이블의 이름과 각 열(column)의 데이터 타입 및 제약 조건을 지정할 수 있습니다.

아래에서 SQLite에서 테이블을 생성하는 기본적인 문법과 예제를 자세히 설명하겠습니다.

기본 문법 ```sql CREATE TABLE [IF NOT EXISTS] table_name ( column1 datatype [constraints], column2 datatype [constraints], ... ); ``` - CREATE TABLE : 테이블을 생성하는 명령어입니다.

- IF NOT EXISTS : 선택 사항으로, 지정된 이름의 테이블이 이미 존재하는 경우 오류를 발생시키지 않고 아무 작업도 수행하지 않습니다.

- table_name : 생성할 테이블의 이름입니다.

테이블 이름은 고유해야 하며, SQLite의 규칙을 따라야 합니다.

- column1, column2, ... : 테이블에 포함될 열의 이름입니다.

각 열은 고유한 이름을 가져야 합니다.

- datatype : 각 열에 저장될 데이터의 유형을 정의합니다.

SQLite는 다양한 데이터 유형을 지원합니다.

일반적인 데이터 유형으로는 `INTEGER`, `REAL`, `TEXT`, `BLOB`, `NUMERIC` 등이 있습니다.

- constraints : 선택 사항으로, 열에 대한 제약 조건을 정의합니다.

예를 들어, `PRIMARY KEY`, `NOT NULL`, `UNIQUE`, `DEFAULT` 등의 제약 조건을 사용할 수 있습니다.

데이터 타입 SQLite에서 지원하는 주요 데이터 타입은 다음과 같습니다: - INTEGER : 정수형 데이터 - REAL : 실수형 데이터 - TEXT : 문자열 데이터 - BLOB : 이진 데이터 - NUMERIC : 숫자형 데이터 (정수 또는 실수) 제약 조건 제약 조건은 데이터의 무결성을 유지하기 위해 사용됩니다.

주요 제약 조건은 다음과 같습니다: - PRIMARY KEY : 테이블의 각 행을 고유하게 식별하는 열로, 반드시 유일해야 하며 NULL 값을 가질 수 없습니다.

- FOREIGN KEY : 다른 테이블의 기본 키를 참조하는 열로, 데이터의 관계를 정의합니다.

- NOT NULL : 해당 열에 NULL 값을 허용하지 않습니다.

- UNIQUE : 해당 열의 모든 값이 유일해야 합니다.

- DEFAULT : 열에 값이 제공되지 않을 경우 사용할 기본값을 정의합니다.

예제 다음은 SQLite에서 `users`라는 테이블을 생성하는 예제입니다.

이 테이블은 사용자 정보를 저장하며, 각 사용자에 대한 ID, 이름, 이메일, 가입 날짜를 포함합니다.

```sql CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, email TEXT NOT NULL UNIQUE, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); ``` - `id`: 사용자 ID로, 자동 증가하는 정수형 기본 키입니다.

- `name`: 사용자 이름으로, NULL 값을 허용하지 않는 문자열입니다.

- `email`: 사용자 이메일로, NULL 값을 허용하지 않으며, 유일해야 합니다.

- `created_at`: 사용자가 가입한 날짜로, 기본값으로 현재 타임스탬프를 사용합니다.

결론 SQLite에서 테이블을 생성하는 과정은 간단하지만, 데이터의 구조와 무결성을 정의하는 데 매우 중요합니다.

`CREATE TABLE` 문법을 통해 필요한 데이터 타입과 제약 조건을 적절히 설정함으로써, 데이터베이스의 효율성과 안정성을 높일 수 있습니다.

작성자: 최하준 [비회원] | 작성일자: 1년 전 2024-11-09 09:01:49
조회수: 170 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.