본문 바로가기

SQL 코딩테스트

SQL 코딩테스트

에코마케팅 서류에 합격되었는데 SQL 테스트가 있어 급하게 공부하기! (순서, 두서없음)

 

LIKE

쿼리문 WHERE절에 주로 사용되며 부분적으로 일치하는 칼럼을 찾을때 사용됩니다.

SELECT * FROM [테이블명] WHERE [컬럼명] LIKE [조건]

 

# A로 시작하는 문자 찾기
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE 'A%'

# A로 끝나는 문자 찾기
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '%A'

# A로 포함하는 문자 찾기
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '%A%'

# A로 시작하는 두글자 문자 찾기
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE 'A_'

# 첫번째 문자가 A 가 아닌 모든 문자열 찾기
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '[^A]'

# 첫번째 문자가 A 또는 B 또는 C 문자열 찾기
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '[ABC]'
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '[A-C]'

 

DATE_FROMAT (매우 중요!!!!!!!!!!!! 자주 나옴 별별별)

DATE_FORMAT(날짜 , 형식) : 날짜를 지정한 형식으로 출력      (+추가 : 이름 설정도 꼭 할것!)

# 가장 기본 YYYY-MM--DD 구조
DATE_FORMAT(컬럼명, '%Y-%m-%d')

 

결측치 처리(대체) 함수

IFNULL

첫번째 컬럼값이 NULL 이라면 두번째 인자로 대체 ( MYSQL전용문법) 

SELECT IFNULL(컬럼명, 'N/A') FROM 테이블명

 

COALESCE

IFNULL과 비슷한 기능을 하고 SQL 표준함수

SELECT COALESCE(컬럼명, 'N/A') FROM 테이블명

 

LIMIT

상위 인덱스를 출력

A번 인덱스 쿼리부터 B개 출력

# 상위 3개 데이터 출력
LIMIT 3

# 3번 인덱스 쿼리부터 3개 출력
LIMIT 3,3

 

 

CASE

CASE와 END를 묶어주고 그 안에 조건을 입력

  • WHEN - THEN은 항상 같이 사용 되어야 한다.
  • ELSE 가 없다면, TRUE가 아닐 경우 NULL 반환
# CASE문 사용 방법
CASE
	WHEN 조건1 THEN 결과값1
	WHEN 조건2 THEN 결과값2
	ELSE 결과값
    
END AS 변수명

 

USING  (JOIN 과 함께 쓰임)

이름이 같은 열을 기준으로 조인 수행 

# 열이름이 반드시 같아야 함
JOIN FISH_NAME_INFO USING(FISH_TYPE);

# 열이름이 달라도 가능
INNER JOIN FISH_NAME_INFO ON FISH_INFO.FISH_TYPE = FISH_NAME_INFO.FISH_TYPE;

 

 

+ 추가)

에코마케팅 코딩테스트는 Python 1문제, SQL 2문제가 나왔네요.

분명 코딩테스트 3일전에 전화해서 문의했을때에는 둘중 하나 언어만 선택이라고 했었는데....

 

SQL 1문제는 프로그래머스에서 나오는 일반적인 문제가 아니라 좀 독특했고 

Python 문제는 별로 어렵지 않았는데 방황하는 제 모습에 반성하고 코딩테스트 준비 시작...