만족은 하되 안주하지는 말자

기록해야 기억한다

프로그래밍/기억노트

[MySQL] 명령어 암기 노트

D36choi 2020. 10. 24. 22:16
728x90

프로그래머스 SQL 문제들을 풀며 기억해야 하는 명령어 형식에 대해 모아 놓아 보았다.

 

역순 정렬

SELECT NAME,DATETIME from animal_ins order by ANIMAL_ID desc;

해당 조건이 아닌 것만 고르기

SELECT NAME,DATETIME from animal_ins where Condition != "Aged";

SELECT ANIMAL_ID,NAME from animal_ins

이름 정렬, 동일한 경우엔 datetime 이 '느린순'

SELECT ANIMAL_ID,NAME,DATETIME from animal_ins ORDER BY name, DATETIME desc;

상위 1개만 출력하기

SELECT NAME from animal_ins order by datetime limit 1;

이름의 갯수 구하기. (null 제외)

SELECT count(distinct name) as count from animal_ins where name is not null;

그룹에 따른 카운트 하기

SELECT ANIMAL_TYPE, count(ANIMAL_TYPE) as count from animal_ins group by ANIMAL_TYPE order by ANIMAL_TYPE asc;

이름 그룹별로 조건 달아서 출력

SELECT NAME,count(name) from animal_ins group by name having count(name) > 1 order by name asc;

A엔 있고 B엔 없는 레코드 찾기

SELECT a.ANIMAL_ID,a.NAME from animal_outs as a where a.animal_id not in (select b.animal_id from animal_ins as b);

이너조인한 뒤 비교 조건

SELECT a.ANIMAL_ID,a.NAME from animal_ins as a join animal_outs as b on a.ANIMAL_ID = b.animal_id and a.datetime > b.datetime order by a.datetime;

아우터 조인 후 정렬

SELECT a.NAME,a.DATETIME from animal_ins as a where a.animal_id not in (select animal_id from animal_outs) order by a.datetime asc limit 3;

두 테이블에서 서로 다른 컬럼의 값을 비교해 찾기

SELECT i.animal_id,i.ANIMAL_TYPE,i.name from animal_ins i join animal_outs o on i.animal_id = o.animal_id where SEX_UPON_INTAKE != SEX_UPON_OUTCOME;

해당 STRING 을 가지는 튜플 찾기

SELECT ANIMAL_ID,NAME,SEX_UPON_INTAKE from animal_ins where name in ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty');

이름에 EL 이 들어가는 튜플찾기

SELECT ANIMAL_ID,NAME FROM ANIMAL_INS WHERE NAME LIKE '%el%' AND ANIMAL_TYPE = 'Dog' ORDER BY NAME;