#1. SQL 함수
1. SQL 함수
1) SQL 함수란?
- 저장되어 있는 데이터를 집계하거나 조회, 저장, 수정하는 과정에서 값을 가공하기 위해 제공되는 모듈화된 기능
- 각 DBMS에 따라 차이를 보이지만, 기본적으로 많이 사용되는 함수들은 공통으로 포함하고 있다.
2) 함수의 사용 방법
- 데이터 조회 시 조회하고자 하는 컬럼의 값을 함수로 가공하거나 검색조건의 값을 지정할 때 사용한다.
SELECT 함수이름(컬럼이름) FROM 테이블이름
[WHERE 함수가 적용된 검색조건];
2. 문자열 관련 함수
1) 문자열 관련 함수의 종류
- 아래의 표에서 값은 컬럼 이름으로도 지정 가능하다.
함수 이름 | 설명 |
left(값, 길이) | 주어진 값을 길이의 글자 수 만큼 왼쪽에서 잘라낸다 |
right(값,길이) |
주어진 값을 길이의 글자 수 만큼 오른쪽에서 잘라낸다.
|
substring(값,시작위치,길이)
|
주어진 값을 시작 위치부터 길이만큼 잘라낸다. 만약 길이가 주어지지 않은 경우 시작 위치부터 끝까지 잘라낸다.
|
replace(값,A,B)
|
주어진 값에서 A를 찾아 B로 바꾼다.
|
concat(값1,값2..값n)
|
주어진 값들을 하나의 문자열로 연결한다.
|
trim(값)
|
주어진 값의 앞뒤 공백을 제거한다.
|
ltrim(값)
|
주어진 값의 왼쪽 공백을 제거한다.
|
rtrim(값)
|
주어진 값의 오른쪽 공백을 제거한다.
|
md5(값)
|
주어진 값을 암호화 한다.
|
char_length(값)
|
주어진 값의 글자수를 리턴한다.
|
instr(값, 찾을 내용)
|
주어진 값에서 찾을 내용이 시작되는 위치를 리턴한다. 찾지 못할 경우 0을 리턴한다.
|
upper(값)
|
주어진 값을 대문자로 변경한다.
|
lower(값)
|
주어진 값을 소문자로 변경한다.
|
2) 예제
- 학생 테이블에서 학생의 이름과 성(이름의 첫글자)을 조회하시오.
- 학생 테이블에서 학생의 이름과 이름의 마지막 글자를 조회하시오.
- 학생 테이블에서 이름과 이름의 두 번째 글자를 조회하시오.
- 학생 이름과 이름에서 '김'을 'K'로 변경한 값을 출력하시오.
- 학생 이름과 학년을 하나의 문장으로 합쳐 출력하시오.
- 학생의 이름에서 앞뒤 공백을 제거한 값을 출력하시오.
- 학생의 이름을 암호화 한 결과를 출력하시오.
- 학생의 아이디에 대한 글자수를 조회하시오.
- 학생 이름에서 '진'이라는 글자가 나타나는 위치와 이름을 조회하시오.
- 학생의 아이디를 대문자로 변경하여 조회하시오.
- 학생의 아이디를 소문자로 변경하여 조회하시오.
3. 날짜 관련 함수
1) 날짜 관련 함수의 종류
함수 이름 | 설명 |
now( ) | 시스템의 현재 시작을 리턴한다. |
date_add(시각, INTERVAL 값 단위) | 주어진 시각을 기준으로 날짜를 연산하여 리턴한다. |
date_format(시각, 형식) | 주어진 시각을 형식에 맞춰 변경한 결과를 리턴한다. |
- date_add 함수에서 사용 가능한 단위
- YEAR, MONTH, DAY, HOUR, MINTUE, SECOND
# 1년 후
date_add(now(), INTERVAL 1 YEAR)
# 3개월 전
date_add(now(), INTERVAL -3 MONTH)
- date_add 함수를 사용하여 저장되어 있는 데이터를 기준으로 날짜 계산을 수행하는 경우
date_add(컬럼이름, INTERVAL 값 단위)
- date_format 함수에서 사용 가능한 키워드
기능 | 키워드 | 기능 | 키워드 |
달 이름 | %M | MM형식의 월 | %m |
요일 이름 | %W | HH형식의 시간(24시간제) | %H |
YYYY형식의 년도 | %Y | H형식의 시간(24시간제) | %k |
YY형식의 년도 | %y | HH형식의 시간(12시간제) | %h |
요일 이름의 약자 | %a | MM형식의 분 | %i |
DD형식의 날짜 | %d | SS형식의 초 | %s |
D형식의 날짜 | %e | AM / PM | %p |
# yy/mm/dd hh:mi:ss 형식의 날짜 얻기
SELECT date_format(now(), '%y/%m/%d %H:%i:%s');
1) 예제
- 시스템의 현재 시각 조회하기
- 현재 시간에서 100일 후 조회하기
- 현재 시간에서 7일 전 조회하기
- 현재 시각을 yyyymmddhhmiss 형식의 14자리로 표현하시오.
4. 그룹 함수
1) 그룹함수란?
- 그룹함수는 테이블의 전체 행, 하나 이상의 칼럼을 기준으로 칼럼 값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수이다.
종류 | 설명 |
COUNT | 행의 갯수 출력 |
MAX | NULL을 제외한 모든 행에서 최대값 출력 |
MIN | NULL을 제외한 모든 행에서 최소값 출력 |
SUM | NULL을 제외한 모든 행의 합계 |
AVG | NULL을 제외한 모든 행의 평균값 |
1) 예제
- 3학년 학생은 총 몇 명인지 구하시오.
- 101번 학과에 소속된 교수들 중에서 보직수당을 받는 교수의 수를 조회하시오.
- 101번 학과에 소속된 교수는 모두 몇 명인지 구하시오.
- 전체 데이터 수를 조회하기 위해서는 COUNT 함수에 '*'을 지정하거나 NULL 데이터가 저장되어 있지 않은 칼럼을 지정한다.
- 전체 데이터 수를 조회할 경우 컬럼 이름을 지정하는 것 보다 '*'을 지정하는 것이 처리속도가 더 빠르다. (MySQL에 한함)
- 급여를 가장 많이 받는 교수는 얼마를 받는지 구하시오.
- 급여를 가장 적게 받는 교수는 얼마를 받는지 구하시오.
- 한달에 지급되는 교수의 급여는 모두 얼마인지 구하시오.
- 학생들의 평균 키는 얼마인지 구하시오.
- 101번 학과 학생들의 몸무게 평균과 합계를 출력하시오.
'국비수업 > MySQL' 카테고리의 다른 글
[MySQL] 서브쿼리 (0) | 2022.06.13 |
---|---|
[MySQL] 그룹 조회 / 조인(JOIN) (0) | 2022.06.10 |
[MySQL] SQL 연산자 / 정렬, 부분조회 (0) | 2022.06.09 |
[MySQL] 데이터베이스 조회하기 (0) | 2022.06.08 |
[MySQL] Mac에 MySQL 설치하기 (0) | 2022.06.08 |