생활코딩을 통해 SQL의 JOIN 문까지 배운 후,
프로그래머스 SQL 고득점 kit을 풀면서 필요했던 내용을 정리했습니다.
기본 문법
NOT 문을 통해 조건을 부정할 수 있습니다.
SELECT * FROM lang WHERE NOT author='egoing'
ORDER BY에서 쉼표를 통해 여러 기준을 정할 수 있습니다.
SELECT * FROM animal_ins ORDER BY name ASC, age DESC
WHERE 칼럼명 IS NULL 문을 통해 특정 칼럼의 데이터가 NULL인 레코드를 찾을 수 있습니다.
SELECT * FROM animal WHERE author IS NULL
SELECT 문에서 IFNULL(칼럼명, 대체할 값) 문을 통해 NULL 값을 대체할 수 있습니다.
SELECT IFNULL(Name, '이름 없음!') FROM animal_ins
테이블명 뒤에 AS 문 또는 생략을 통해 키워드를 지정할 수 있습니다.
SELECT INS.NAME, OUTS.DATE FROM animal_ins AS INS, animal_outs OUTS
COUNT 문을 통해 특정 칼럼의 데이터의 수를 구할 수 있습니다.
SELECT COUNT(animal_id) FROM animal
DISTINCT 문을 통해 중복을 제거한 데이터를 얻을 수 있습니다.
SELECT COUNT(DISTINCT animal_type) FROM animal
GROUP BY
GROUP BY 문으로 칼럼의 데이터들을 그룹화 할 수 있습니다.
SELECT COUNT(anial_type) FROM animal_ins GROUP BY animal_type
HAVING 문으로 그룹화 이후 데이터들에 대해 조건을 줄 수 있습니다.
- WHERE 문과 비슷하지만 WHERE 문은 그룹화 이전에 조건을 줍니다.
SELECT COUNT(anial_type) FROM animal_ins GROUP BY animal_type HAVING COUNT(animal_type) > 1
STRING, DATE 관련
WHERE 문에서 IN 을 통해 특정 칼럼의 특정 데이터가 있는 레코드를 뽑을 수 있습니다.
SELECT * FROM animal WHERE animal_type IN ('dog', 'cat);
LIKE 문을 통해 특정 부분이 일치하는 데이터를 찾을 수 있습니다.
- 대소문자는 구분하지 않음
- %는 글자 수 상관없이 _는 글자수 조건
SELECT * FROM animal WHERE name LIKE '%EL%';
-- aaEL, aELb, ELbbad --
SELECT * FROM WHERE name LIKE '_EL__';
-- aELbb --
HOUR 문을 통해 DATE 타입에서 시간을 구할 수 있습니다.
SELECT HOUR(datetime) FROM animal
DATE_FORMAT 문을 통해 DATE 타입에서 원하는 형태를 구할 수 있습니다.
SELECT NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') FROM animal
CASE 문, SET
CASE 문 : WHEN 절에 조건을, THEN 절에 조건이 참일 경우를, ELSE에 조건이 거짓일 경우를 넣음
SELECT ANIMAL_ID, NAME,
CASE
WHEN SEX_UPON_INTAKE LIKE '%Neutered%' OR SEX_UPON_INTAKE LIKE '%Spayed%'
THEN 'O'
ELSE 'X' END as '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
SET으로 로컬 변수를 선언하여 사용할 수 있습니다.
SET @hour := -1;
SELECT (@hour := @hour + 1) as HOUR,
(SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour) AS 'COUNT'
FROM ANIMAL_OUTS
WHERE @hour < 23
'컴퓨터과학 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] Entity-Relationship Model - 모델링, ERD, 관계형 스키마 (0) | 2021.12.14 |
---|---|
[데이터베이스] Data Analytics with SQL - DW, OLAP (0) | 2021.12.05 |
[데이터베이스] SQL 총정리 1 (0) | 2021.10.27 |
[MySQL] JOIN 문 (0) | 2021.02.22 |
[MySQL] MySQL 기초 정리 (0) | 2021.02.21 |
댓글