내가 필요해서 간략하게 정리하는 SQL 쿼리의 기초 작성법(1)입니다. 우선, 1. 테이블 만들기, 2. 행 추가, 삭제, 갱신, 3. 행 조회를 다루도록 하겠습니다.
[참고] SQLite를 기반으로 작성하였습니다.

1. 테이블 만들기

기본 형식: CREATE TABLE [테이블명] ([변수명] [조건]);

Q. Id, Name, Birthday 변수를 포함하는 [User] 테이블을 만들어라.

CREATE TABLE User (
    Id    	  INTEGER NOT NULL,
    Name  	  TEXT NOT NULL,
    Birthday        DATE,
    PRIMARY KEY(ID AUTOINCREMENT)
);

[변수명] 옆에 추가하는 [조건]의 의미

  • INTEGER: 정수형
  • FLOAT: 소수점을 포함하는 실수형
  • TEXT: 문자형 = VARCHAR
  • DATE: 날짜형
  • NOT NULL: 빈 값을 허용하지 않음
  • PRIMARY KEY: 기본 키로 설정
  • AUTOINCREMENT: 값 자동 증가

2. 행 추가, 삭제, 갱신

1) 행 추가

기본 형식: INSERT INTO [테이블명] [변수명] VALUES [값]

INSERT INTO User (Id, Name, Birthday) VALUES (1, '이순신', '1991-01-01');

Id 조건에서 자동 증가(AUTOINCREMENT)를 설정해 주었다면, Id 값을 생략하고 행 추가를 수행할 수 있습니다.

INSERT INTO User (Name, Birthday) VALUES ('세종대왕', '1993-05-05'), ('유관순', '2000-12-31');
  • [참고] SQL 쿼리는 대문자와 소문자를 가리지 않으며, 줄바꿈을 하지 않아도 된다. 하지만 통상적으로는 이해하기 쉽게 주요 명령어는 대문자로 작성하고, 줄바꿈 후에 작성합니다.

2) 행 삭제

기본 형식: DELETE FROM [테이블명]

Q. User 테이블의 모든 행을 삭제하라.

DELETE FROM User;

3) 행 갱신

기본 형식:UPDATE [테이블명] SET [변수명] = '변경할 값' WHERE [조건]

만약 조건이 없는 경우에는 테이블에 있는 변수 전체가 ‘변경할 값’으로 U갱신됩니다.

Q. Name이 ‘이순신’인 행의 Name을 ‘순신’으로 갱신하라.

UPDATE User SET Name = '순신' WHERE Name = '이순신';

3. 테이블 조회

가장 자주 쓰이는 명령어입니다.

기본 형식: 
SELECT [변수명], [변수명]
FROM [테이블명] 
WHERE [조건]
ORDER BY [변수명] ASC/DESC
LIMIT [출력할 행 개수]
OFFSET [출력 시, 건너뛸 행 개수]

1) 모든 행 조회

SELECT * FROM User;

2) 특정 열 조회

SELECT Name FROM User;

3) 조건에 맞는 행 조회

기본 형식: WHERE [변수명] [비교연산자] [조건]

  • 조건이 여러 개인 경우 AND로 연결
SELECT * 
FROM User
WHERE Birthday < '2022-10-14'
	AND Name IN ('세종대왕', '유관순');
  • 비교연산자: =, !=, >=, <=, >, < – !=, <>는 ‘다르다’는 의미
  • LIKE: 특정 문자열 포함
    • 특정 문자열 포함: LIKE “%특정 문자열%”
    • 특정 문자열로 시작: LIKE “특정 문자열%”
    • 특정 문자열로 종료: LIKE “%특정 문자열”
  • IN ([값], [값]): (괄호) 안의 내용과 일치하는 경우
    • NOT IN ([값], [값]): (괄호) 안의 값인 경우만 제외
  • IS NULL: 빈 값인 경우
  • IS NOT NULL: 값이 없는 경우를 제외

4) 정렬

기본 형식: ORDER BY [변수명] ASC/DESC

SELECT * 
FROM User
ORDER BY Birthday DESC;
  • ASC: 오름차순 (*기본값, 생략 가능)
  • DESC: 내림차순

5) 출력 행 제한

기본 형식: LIMIT [출력할 행 개수]

Q. User의 전체 행 중 처음 2행만 출력하라

SELECT * 
FROM User
LIMIT 2;

6) 출력 시, 건너뛰는 행 지정

기본 형식: OFFSET [출력 시, 건너뛸 행 개수]

Q. User의 전체 행 중 처음 2행은 건너뛰고 2행(3번, 4번 행)만 출력하라

SELECT * 
FROM User
LIMIT 2
OFFSET 2;

7) Unique한 값만 출력

기본 형식: SELECT DISTINCT [변수명]

  • 변수가 1개인 경우: 해당 변수를 기준으로 unique한 값만 출력
  • 변수가 여러개인 경우: 해당 변수 값들의 unique한 ‘조합’ 출력

덧붙이는 말: 혹시 오류가 있다면 제보 주세요!

(예고) ‘내가 필요해서 정리하는 SQL 쿼리 기초(2)’에서는 JOIN에 대해서 다루도록 하겠습니다.