함수 | |
---|---|
ASCII(아스키코드) | 문자의 아스키 코드값을 반환해 주는 함수 |
CHAR(숫자) | 숫자의 아스키 코드값을 반환해 주는 함수 |
LENGTH(문자열) | 문자열의 byte 수를 반환해 주는 함수 |
BIT_LENGTH(문자열) | 할당된 bit 크기 또는 문자 크기를 반환해 주는 함수 |
CHAR_LENGTH(문자열) | 문자의 개수를 반환해 주는 함수 |
CONCAT(문자열1, 문자열2, ...) | 문자열을 연결해 주는 함수 |
CONCAT_WS(구분자, 문자열1, 문자열2, ...) | 구분자와 함께 문자열을 연결해 주는 함수 |
INSTR(기준 문자열, 부분 문자열) | 기준 문자열에서 부분 문자열의 시작 위치값을 반환해 주는 함수 |
UPPER(문자열) | 문자열을 대문자로 변환해 주는 함수 |
LOWER(문자열) | 문자열을 소문자로 변환해 주는 함수 |
LEFT(문자열, 길이) | 왼쪽에서 문자열의 길이만큼 반환해 주는 함수 |
RIGHT(문자열, 길이) | 오른쪽에서 문자열의 길이만큼 반환해 주는 함수 |
LPAD(문자열, 길이, 채울 문자) | 문자열을 길이만큼 늘린 후 빈곳을 왼쪽부터 채울 문자로 채워주는 함수, 오른쪽 정렬 함수 |
RPAD(문자열, 길이, 채울 문자) | 문자열을 길이만큼 늘린 후 빈곳을 오른쪽부터 채울 문자로 채워주는 함수, 왼쪽 정렬 함수 |
LTRIM(문자열) | 문자열의 왼쪽 공백을 제거해 주는 함수 |
RTRIM(문자열) | 문자열의 오른쪽 공백을 제거해 주는 함수 |
TRIM(문자열) | 문자열의 앞/뒤 공백을 제거해 주는 함수 |
TRIM(방향 자를문자열 FROM 문자열) | 방향 : leading(앞), trailing(뒤), both(양쪽) 문자열로부터 해당 방향의 자를 문자열을 제거해주는 함수 |
REPLACE(문자열, 기존문자열, 바꿀문자열) | 문자열에 기존 문자열을 바꿀 문자열로 교체해 주는 함수 |
SPACE(길이) | 길이만큼의 공백을 반환해 주는 함수 |
SUBSTR(문자열, 시작위치, 길이) | 문자열의 일부분을 반환해 주는 함수 |
use hr;
select last_name as "Name", char_length(last_name) as "Length"
from employees
where last_name like 'J%' or last_name like 'A%' or last_name like 'M%'
order by last_name;
-- (==)
select last_name as "Name", char_length(last_name) as "Length"
from employees
where substr(last_name,1,1) in ('j', 'm', 'a')
order by last_name;
select last_name, lpad(salary, 15, '$') as "SALARY"
from employees;
함수 | |
---|---|
ROUND(숫자, 반올림할 자리) | 숫자를 반올림할 자리까지 반올림을 해주는 함수 반올림할 자리 생략 시 일의 자리로 반올림함 |
TRUNCATE(숫자, 버림할 자리) | 숫자를 버림할 자리까지 남기고 버림을 해주는 함수 |
(반올림, 버림할 숫자) 1 2 3. 4 5 6
(반올림, 버림할 자리) -2 -1 0 1 2 3
select round(45.923, 2), round(45.923, 0), round(45.923, -1);
round(45.923, 0) = round(45.923)
select truncate(45.923, 2), truncate(45.923, 0), truncate(45.923, -1);
함수 | |
---|---|
CEIL(숫자) | 숫자보다 크거나 같은 최소의 정수를 반환해 주는 함수 일의 자리로 올림을 해주는 함수 |
FLOOR(숫자) = truncate(숫자,0) | 숫자보다 작거나 같은 최소의 정수를 반환해 주는 함수 일의 자리까지 버림을 해주는 함수 |
select ceil(45.923), ceil(52.1);
select floor(45.923), floor(52.1);
함수 | |
---|---|
MOD(숫자1, 숫자2) | 숫자1을 숫자2로 나눈 나머지를 반환해 주는 함수 |
select mod(157, 10), 157 mod 10, 157 % 10, 157 / 10;
** 값이 짝수인지 홀수인지를 확인하는 용도로도 활용됨.
함수 | |
---|---|
ABS(숫자) | 숫자의 절대 값을 반환해 주는 함수 |
select abs(-5), abs(5), abs(-4.5);
함수 | |
---|---|
POWER(숫자, 제곱값) POW(숫자, 제곱값) | 숫자의 제곱 값을 계산하여 반환해 주는 함수 |
select power(4, 1), power(4, 2), power(4, 3), power(4, 4), power(4, 5);
함수 | |
---|---|
SIGN(숫자) | 숫자가 양수이면 1, 음수이면 –1, 0이면 0을 반환해 주는 함수 |
select sign(3), sign(-3), sign(4.26), sign(-4.26), sign(0);
함수 | |
---|---|
NOW( ) SYSDATE( ) CURRENT_TIMESTAMP( ) | 현재 날짜와 시간을 반환해 주는 함수(년/월/일/시/분/초) |
select now(), sysdate(), current_timestamp();
함수 | |
---|---|
CURRENT_DATE( ) CURDATE( ) | 현재 날짜를 반환해 주는 함수(년/월/일) |
CURRENT_TIME( ) CURTIME( ) | 현재 시간을 반환해 주는 함수(시/분/초) |
select current_date(), current_time();
함수 | |
---|---|
YEAR(날짜) | 날짜/시간에서 년도를 반환해 주는 함수 |
MONTH(날짜) | 날짜/시간에서 월을 반환해 주는 함수 |
DAY(날짜) DAYOFMONTH(날짜) | 날짜/시간에서 일을 반환해 주는 함수 |
HOUR(시간) | 날짜/시간에서 시간을 반환해 주는 함수 |
MINUTE(시간) | 날짜/시간에서 분을 반환해 주는 함수 |
SECOND(시간) | 날짜/시간에서 초를 반환해 주는 함수 |
select year(now()), month(now()), day(now()), hour(now()), minute(now()), second(now());
select last_name, hire_date, year(hire_date), month(hire_date), day(hire_date)
from employees
where department_id = 90;
함수 | |
---|---|
DATE(날짜와 시간) | 날짜/시간에서 날짜를 반환해 주는 함수(년/월/일) |
TIME(날짜와 시간) | 날짜/시간에서 시간을 반환해 주는 함수(시/분/초) |
select date(now()), time(now());
함수 | |
---|---|
ADDDATE(날짜, 차이) DATE_ADD(날짜, 차이) | 날짜에서 차이를 더한 날짜를 반환해 주는 함수 |
SUBDATE(날짜, 차이) DATE_SUB(날짜, 차이) | 날짜에서 차이를 뺀 날짜를 반환해 주는 함수 |
select adddate('2022-01-01', interval 35 day),
adddate('2022-01-01', interval 2 month),
date_add('2022-01-01', interval 1 year);
select subdate('2022-01-01', interval 35 day),
subdate('2022-01-01', interval 2 month),
date_sub('2022-01-01', interval 1 year);
select last_name, hire_date, adddate(hire_date, interval 6 month) as "입사 6개월 후",
subdate(hire_date, interval 7 day) as "입사 7일전"
from employees
where department_id = 60;
함수 | |
---|---|
ADDTIME(날짜와 시간, 시간) | 날짜/시간에서 시간을 더한 결과를 반환하는 함수 |
SUBTIME(날짜와 시간, 시간) | 날짜/시간에서 시간을 뺀 결과를 반환하는 함수 |
select addtime('2022-01-01 23:59:59', '1:1:1'), addtime('15:00:00', '2:10:10');
select subtime('2022-01-01 23:59:59', '1:1:1'), subtime('15:00:00', '2:10:10');
함수 | |
---|---|
DATEDIFF(날짜1, 날짜2) | 날짜1 - 날짜2를 반환하는 함수 |
TIMEDIFF(시간1, 시간2) | 시간1 – 시간2를 반환하는 함수 |
select datediff('2022-12-31', now()), datediff(now(), '2022-12-31');
select timediff('23:23:59', '12:11:10'), timediff('12:11:10', '23:23:59');
select last_name, hire_date, datediff(now(), hire_date) as "근무한 일수"
from employees;
함수 | |
---|---|
DAYOFWEEK(날짜) | 날짜의 요일을 반환해 주는 함수 (1-일, 2-월, 3-화, 4-수, 5-목, 6-금, 7-토) |
MONTHNAME(날짜) | 날짜의 월의 영문 이름을 반환해 주는 함수 |
DAYOFYEAR(날짜) | 날짜가 1년 중 몇 번째 날짜인지를 반환해 주는 함수 |
select dayofweek(now()),monthname(now()), dayofyear(now());
select employee_id, last_name, hire_date, monthname(hire_date)
from employees;
함수 | |
---|---|
LAST_DAY(날짜) | 날짜가 속한 월의 마지막 날짜를 반환하는 함수 주로 그 달이 몇일까지 있는지 확인할 때 사용함 |
select last_day('2022-04-03');
select employee_id, last_name, hire_date, last_day(hire_date)
from employees;
함수 | |
---|---|
QUARTER(날짜) | 날짜가 4분기 중에서 몇 분기인지를 반환하는 함수 |
select quarter('2022-01-31'),
quarter('2022-04-02'),
quarter('2022-07-10'),
quarter('2022-10-14');
select employee_id, last_name, salary, round(salary*1.155,0) as "New Salary"
from employees;
select employee_id, last_name, salary, round(salary*1.155,0) as "New Salary",
round(salary*1.155,0) - salary as "Increase"
from employees;
--(==)
select employee_id, last_name, salary, round(salary*1.155,0) as "New Salary",
round(salary*0.155,0) as "Increase"
from employees;
select employee_id, last_name, job_id, hire_date, department_id
from employees
where month(hire_date) = 2;
select employee_id, last_name, hire_date, salary, department_id
from employees
where year(hire_date) between 1990 and 1995;
select last_name, hire_date, datediff(now(), hire_date) as "근무한 일수",
floor(datediff(now(), hire_date)/7) as "근무한 주수"
from employees
where datediff(now(), hire_date)/7 <1200;
select employee_id, last_name, hire_date, concat(quarter(hire_date),'분기') as "입사한 분기"
from employees;
select concat(last_name,' ', lpad('',floor(salary/1000),'*')) as "EMPLOYEES_AND_THEIR_SALARIES"
from employees order by salary desc;
rpad, lpad 함수는 두번째 인수가 실수인 경우 자동 반올림함!