해당 글은 SQLite3로 가볍게 배우는 데이터베이스를 기반으로 작성했음을 밝힙니다. 글에서의 실습은 DB Browser for SQLite를 활용하여 진행했습니다.
SQLite 실습을 하기 위해서는 DB Browser for SQLite를 다운로드해야합니다. 해당 브라우저에서 SQLite를 활용해 데이터베이스를 파일에 기록할 뿐 SQLite의 DB Server 개념이 아닙니다. 실습 진행을 위한 DB Browser는 해당 페이지에서 다운로드했습니다.
CREATE
테이블을 정의할 때는 CREATE문을 사용합니다. 테이블을 정의할 때 테이블명은 단수형/복수형 둘 중 하나로 통일(주로, 단수형 권장)해서 사용할 것을 권장합니다.
- Type 지정: INTEGER, TEXT
- NN: Null값 허용
- Null값을 허용하게 되면, INSERT문으로 행을 추가할 때 해당 컬럼값을 NULL값으로 입력해도 허용됩니다.
- PK: 기본키(Primary key) 유무
- AI: Auto Increment: 자동 증가
- AI가 True로 설정되어 있으면, INSERT문으로 행을 추가할 때 자동으로 컬럼값이 증가되기 때문에 추가적으로 입력해주지 않아도 됩니다.
# 형식
CREATE TABLE [테이블명] (
[컬럼명] [Data Type] [Not Null 유무] [Primary Key 유무] [Auto Increment 유무]
);
# 예제
CREATE TABLE "Person" (
"ID" INTEGER NOT NULL,
"Name" TEXT NOT NULL,
"Birthday" TEXT,
PRIMARY KEY("ID" AUTOINCREMENT)
);
INSERT
행을 추가할 때 INSERT문을 사용합니다. 모든 컬럼을 순서대로 입력할 때는 컬럼명을 생략할 수 있습니다. 행을 입력할 때 Primary Key인 컬럼에 대해서는 중복 허용하지 않습니다. 중복된 Primary Key 컬럼 데이터가 입력되면 UNIQUE constraint failed가 발생합니다.
INSERT INTO [테이블명] ([컬럼명])
VALUES ([새로 추가할 값들]);
INSERT INTO Person (ID, Name, Birthday)
VALUES (1, "혜리", "1994-01-01");
INSERT INTO Person
VALUES (1, "혜리", "1994-01-01");
DELETE
행을 삭제할 때는 DELETE문을 사용합니다. 모든 행이 지워지지만 테이블 구조는 유지됩니다.
DELETE FROM [테이블명];
DELETE FROM Person;
UPDATE
UPDATE 쓰는 방법 - https://webisfree.com/2016-07-06/[sql]-%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%95%88%EC%9D%98-%EC%BB%AC%EB%9F%BC-%EA%B0%92-%EB%B3%80%EA%B2%BD-%EC%88%98%EC%A0%95-update
갱신할 때는 UPDATE문을 사용합니다. Where절을 활용해 특정 조건에 해당하는 행만 갱신할 수 있습니다. 또한, LIMIT를 통해 실수로 많은 데이터가 변경되는 것을 방지하는 코드를 추가하기도 합니다.
- WHERE [특정 조건]
- LIKE [패턴 문자열]: e.g. LIKE '1986%'
UPDATE [테이블명] SET [컬럼명] = [변경값];
UPDATE Person SET Name = "길동";
UPDATE Person SET Name = "고길동"
WHERE Name LIKE "%길동";
SELECT
조회할 때 SELECT문을 사용합니다. 전체 컬럼을 조회하고 싶을 때는 "*"를 사용해 전체 컬럼의 내용을 확입해볼 수 있습니다.
- ORDER BY [컬럼명] [ASC/DESC]: ASC는 오름차순, DESC는 내림차순 정렬을 의미합니다. 데이터가 저장된 순서가 바뀌는 것이 아니라 SELECT문의 조회 결과에 대한 순서만 바뀌는 것입니다.
- WHERE [특정 조건]: 일반적인 코딩에서 IF문에 해당한다고 볼 수 있습니다.
- [컬럼명] IS NOT NULL: NULL이 아닌 행을 가지는지 판단
- [컬럼명] IS NULL: NULL인 행을 가지는지 판단
SELECT [컬럼명] FROM [테이블명];
SELECT * FROM Person;
ALTER
ALTER TABLE문을 사용하면 테이블의 구조 변경이 가능합니다. 위의 명령어들은 행에 대한 조작이었다면 ALTER는 컬럼에 대한 명령어로 생각할 수 있습니다. 컬럼을 추가/삭제하거나 컬럼명을 변경할 수 있습니다.
- TABLE 외에도 VIEW를 ALTER/DROP 가능
ALTER TABLE [테이블명] ADD COLUMN [새로운 컬럼명] [Data Type];
ALTER TABLE [테이블명] RENAME COLUMN [기존 컬럼명] TO [새로운 컬럼명];
DROP
DROP은 테이블을 삭제할 수 있습니다.
- TABLE 외에도 VIEW를 ALTER/DROP 가능
DROP TABLE [테이블명]