내가 필요해서 정리하는 SQL 쿼리 기초(1)
테이블 만들기, 행 추가, 행 삭제, 행 조회
내가 필요해서 간략하게 정리하는 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에 대해서 다루도록 하겠습니다.