기록하는 습관을 들이자

[DB] 기본 SQL 쿼리 문법 정리 본문

DB

[DB] 기본 SQL 쿼리 문법 정리

myeongmy 2020. 5. 28. 01:00
반응형

1. 기본적인 조회

SELECT 선택할 컬럼1, 선택할 컬럼2, ...
FROM 테이블명
WHERE 조건;

//이 때의 조건은
//EX> WHERE 이름 = '철수'
//    WHERE 이름 != '철수'
//    WHERE 이름 IS NULL
//    WHERE 이름 IS NOT NULL

 

기억해둘 것! IFNULL 함수

IFNULL(컬럼이름, DEFAULT값) : 해당 컬럼의 값이 NULL이면 DEFAULT값으로 대체해준다 (SELECT 문에 사용)

 

2. 정렬하는 방법

SELECT 선택할 컬럼1, 선택할 컬럼2, ...
FROM 테이블명
WHERE 조건
ORDER BY 정렬의 기준이 되는 컬럼;

//여러 기준으로 정렬하고 싶을 때 (EX> 이름 순으로 정렬하되 이름이 같은 경우에는 아이디 내림차순)
//ORDER BY NAME, ID DESC

 

3. 상위 n개 레코드 조회

SELECT 선택할 컬럼1, 선택할 컬럼2, ...
FROM 테이블명
WHERE 조건
ORDER BY 정렬의 기준이 되는 컬럼
LIMIT 2;    //상위 2개까지 출력

 

4. 테이블 튜플 갯수 세기

//전체 튜플 세기
SELECT COUNT(*) AS 개수                   // NULL 포함해서 카운트한다
FROM 테이블명;

//중복 제거
SELECT COUNT(DISTINCT 중복제거할컬럼)     // NULL 제외하고 카운트한다
FROM 테이블명;

SELECT COUNT(컬럼이름)                    // NULL 제외하고 카운트한다
FROM 테이블명;

 

4. GROUP BY

SELECT COUNT(NAME) AS COUNT
FROM 테이블명
GROUP BY NAME
HAVING COUNT(NAME) >= 2;

//이름이 2개 이상인 것들 출력

 

5. DATETIME 조작

DATETIME 형 변수는 HOUR(DATETIME), MINUTE(DATETIME), SECOND(DATETIME)으로 조작가능하다.

 

6. 조인

- LEFT JOIN

SELECT A.ID, A.NAME
FROM A
LEFT JOIN B
ON A.ID = B.ID;

 

7. 문자열 다루기

SELECT *
FROM 테이블명
WHERE NAME LIKE '이%';

//이로 시작하는 이름을 가진 사람 찾기

 

 

※ 코딩테스트 전 다시 풀어보면 좋을 문제

https://programmers.co.kr/learn/courses/30/lessons/59412

 

코딩테스트 연습 - 입양 시각 구하기(1)

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물

programmers.co.kr

https://programmers.co.kr/learn/courses/30/lessons/59413

 

코딩테스트 연습 - 입양 시각 구하기(2)

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물

programmers.co.kr

SELECT T1.HOUR, IFNULL(COUNT, 0) AS COUNT
FROM (SELECT 0 AS HOUR
UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11 UNION SELECT 12 UNION SELECT 13 UNION SELECT 14 UNION SELECT 15 UNION SELECT 16 UNION SELECT 17 UNION SELECT 18 UNION SELECT 19 UNION SELECT 20 UNION SELECT 21 UNION SELECT 22 UNION SELECT 23) T1
LEFT JOIN (SELECT HOUR(DATETIME) AS HOUR, COUNT(*) AS COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)
ORDER BY HOUR(DATETIME)) T2
ON T1.HOUR = T2.HOUR;

https://programmers.co.kr/learn/courses/30/lessons/59409

 

코딩테스트 연습 - 중성화 여부 파악하기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

SELECT ANIMAL_ID, NAME, (
    CASE
    WHEN SEX_UPON_INTAKE LIKE 'Neutered%' THEN 'O'
    WHEN SEX_UPON_INTAKE LIKE 'Spayed%' THEN 'O'
    ELSE 'X' END
) AS 중성화
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
반응형
Comments