데이터 베이스 설계 구현 과목을 수강하면서 SQL문을 배웠는데, 왜 인지 교수님께서는 sum, min 등 어떤 함수(?)에 대해서도 알려주지 않으셨다..
도대체 왜!
그래서 그냥 프로그래머스 SQL 아주 쉬운 문제부터 풀면서 기록하려 한다.
새로 알게된 것도, 알고 있었던 것도 모두 몽땅!!!
❗️MySQL 기준입니다❗️
SUM
SELECT SUM(sal) FROM TABLE
TABLE에서 sal 칼럼의 합계를 구하는 함수. 수치 계산만 가능하다!
COUNT
SELECT COUNT(id) FROM TABLE
TABLE에서 id 칼럼의 전체 데이터 갯수를 구할 수 있다.
DISTINCT
SELECT COUNT(DISTINCT name) FROM TABLE
중복을 제거하는 함수
위는 TABLE에서 중복을 제외한 name의 개수를 구하는 식이다.
AS
SELECT 칼럼 as NEW칼럼명 FROM 테이블
as는 새로운 이름을 지어준다.
GROUP BY
SELECT 칼럼 FROM 테이블 GROUP BY 그룹화할 칼럼
특정 칼럼을 그룹화한다.
같은 값을 가진 행끼리 하나의 그룹으로 묶는다.
HAVING
SELECT 칼럼 FROM 테이블 GROUP BY 그룹화할 칼럼 HAVING 조건
GROUP BY로 그룹화된 데이터들을 필터링한다.
ORDER BY
SELECT 칼럼 FROM 테이블 ORDER BY 정렬할 칼럼 asc/desc
데이터를 정렬할 때 사용한다.
asc : 오름차순(기본 설정) / desc : 내림차순
LIKE
SELECT 칼럼 FROM 테이블 WHERE 칼럼 LIKE '~~'
특정 문자열이 포함되어있는 지를 찾을 때 사용한다.
where절 뒤의 칼럼은 생략이 가능하다. 그럼 모든 데이터에서 특정 문자열이 포함되어 있는지를 찾게 됨.
IFNULL
SELECT IFNULL(NAME, "none") FROM TABLE
NULL 값을 다른 문자로 대체해 출력할 수 있다.
위는 NAME 칼럼에 NULL 값이 있다면 none으로 대체되어 출력한다.
DATE_FORMAT
SELECT DATE_FORMAT('23-04-11', "%Y-%m%d") FROM TABLE
원하는 형태로 날짜를 바꿀 수 있는 함수이다.
위의 예시는 '23-04-11'을 '2023-04-11'으로 바꾸어준다.
더 자세한 것은 아래 링크 참고!
https://www.w3schools.com/mysql/func_mysql_date_format.asp
LIMIT
SELECT 칼럼 FROM 테이블 LIMIT n
칼럼의 데이터 n개만 출력한다.
+) offset : LIMIT 2, 3 으로 쓰면 3번째부터 3개 출력 (0부터 시작하기 때문)
BETWEEN
SELECT 칼럼 FROM 테이블 WHERE AGE BETWEEN 1 AND 100
AGE 중 1에서 100 사이의 데이터를 출력한다.
EXTRACT
SELECT EXTRACT(UNIT FROM DATE) FROM TABLE
년, 월, 일,시, 분으로, 일자 / 시간의 개별 부분을 리턴한다.
UNIT은 아래 링크 참고!
https://www.w3big.com/ko/sql/func-extract.html#gsc.tab=0
ROUND
SELECT ROUND(숫자, 반올림할 자릿수) FROM TABLE
원하는 숫자를 원하는 소수자리까지 출력한다.
두번째 파라미터는 생략 가능 (반올림하지 않고 모두 출력함)
TRUNCATE
SELECT TRUNCATE(숫자, 버릴 자릿수) FROM TABLE
원하는 숫자를 원하는 자리부터 버리고 출력한다.
두번째 파라미터 생략 불가능
AVG
SELECT AVG(칼럼) FROM TABLE
원하는 칼럼의 평균을 구한다.
DATEDIFF
SELECT DATEDIFF(날짜1, 날짜2) FROM TABLE
일(day) 차이를 출력한다.
TIMESTAMPDIFF
SELECT TIMESTAMPDIFF(단위, 날짜1, 날짜2) FROM TABLE
단위(YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND)를 지정해 차이를 출력한다.
LEFT
SELECT LEFT(칼럼명, 자를 길이) FROM TABLE
문자열 왼쪽부터 '자를 길이'만큼을 출력한다.
RIGHT
SELECT RIGHT(칼럼명, 자를 길이) FROM TABLE
문자열 오른쪽부터 '자를 길이'만큼을 출력한다.
SUBSTRING
SELECT SUBSTRING(칼럼명, 시작 위치, 자를 길이)
자르고 싶은 위치부터 길이를 지정하여 문자열을 자를 수 있다.
CASE - WHEN - END
SELECT 칼럼1, CASE WHEN 조건1, 반환값1 WHEN 조건2, 반환값2 ... END
조건에 맞게 반환값을 지정할 수 있다.
REGEXP
정규식
JOIN
- INNER, NATURAL, FULL OUTER, LEFT OUTER, RIGHT OUTER, CROSS
LOCATE
SELECT
공부하면서 계속 추가해나갈 예정입니다.
틀린 부분이 있다면 알려주세용!! 😎
'Algorithm' 카테고리의 다른 글
[BOJ24479] 알고리즘 수업 - 깊이 우선 탐색 1 (0) | 2023.04.12 |
---|---|
[BOJ 2606] 바이러스 (0) | 2023.04.11 |
[BOJ 14888] 연산자 끼워넣기 (0) | 2023.04.07 |
[BOJ15649] N과 M (1) (0) | 2023.04.07 |
[BOJ2309] 일곱 난쟁이 (0) | 2023.03.31 |