SQL- 함수1

박현·2022년 9월 22일
0

SQL

목록 보기
13/34

예제로 사용될 릴레이션은 아래와 같다.

  • EMP 릴레이션

1. 문자형 함수

문자데이터를 매개변수로 받아들여서 문자나 숫자 값의 결과를 돌려주는 함수

LOWER(문자열) : 문자열의 알파벳 문자를 소문자로 변환

✏️입력

SELECT LOWER(ENAME) FROM EMP;

🖥️ 출력

UPPER(문자열) : 문자열의 알파벳 문자를 대문자로 변환

✏️입력

SELECT UPPER(ENAME) FROM EMP;

🖥️출력

ASCII(문자) : 문자나 숫자를 ASCII 코드 번호로 변환

✏️입력

SELECT ASCII('K') FROM DUAL; 

🖥️출력

CHR/CHAR(ASCII번호) : ASCII 코드번호를 문자나 숫자로 변환

✏️입력

SELECT CHR(75) FROM DUAL;

🖥️출력

CONCAT(문자열1,문자열2) : 문자열을 연결한다.

✏️입력

SELECT CONCAT(EMPNO,ENAME) FROM EMP;

🖥️출력

SUBSTR/SUBSTRING(문자열, m[,n]) : 문자열 중 m위치에서 n개의 문자 길이에 해당하는 문자를 출력

✏️입력

SELECT SUBSTR(ENAME,0,2) FROM EMP;

🖥️출력

LENGTH/LEN(문자열) : 문자열의 개수를 숫자값으로 돌려준다.

✏️입력

SELECT LENGTH(ENAME) FROM EMP;

🖥️출력

LTRIM(문자열[,지정문자])/LTRIM(문자열) : 문자열의 첫문자부터 확인해서 지정 문자가 나타나면 해당 문자를 제거

✏️입력

SELECT LTRIM(ENAME) FROM EMP;
SELECT LTRIM(ENAME,'KI') FROM EMP;

🖥️출력

RTRIM(문자열 [,지정문자])/RTRIM : 문자열의 마지막 문자부터 확인해서 지정 문자가 나타나면 해당 문자를 제거

✏️입력

SELECT RTRIM(ENAME,'NG') FROM EMP;

🖥️출력

TRIM(지정문자 FROM 문자열) : 문자열에서 머리말, 꼬리말 또는 양쪽에 있는 지정 문자를 제거

✏️입력

SELECT TRIM(ENAME) FROM EMP;  //양쪽 공백제거
SELECT TRIM('G' FROM ENAME)  FROM EMP; //양쪽에 있는 지정 문자 제거

🖥️출력


2. 숫자형 함수

숫자 데이터를 입력받아 처리하고 숫자를 리턴하는 함수

ABS(숫자) : 숫자의 절댓값을 출력

✏️입력

SELECT ABS(-123) FROM DUAL;

🖥️출력

SIGN(숫자) : 숫자가 양수인지, 음수인지 0인지를 구별

✏️입력

SELECT SIGN(-22), SIGN(22), SIGN(0) FROM DUAL;

🖥️출력

MOD(숫자1, 숫자2) : 숫자1을 숫자2로 나누어 나머지 값을 리턴

✏️입력

SELECT MOD(6,4) FROM DUAL;

🖥️출력

CEIL/CEILING(숫자) : 숫자보다 크거나 같은 최소 정수를 리턴

✏️입력

SELECT CEIL(2.1) FROM DUAL;

🖥️출력

FLOOR(숫자) : 숫자보다 작거나 같은 최대 정수를 리턴

✏️입력

SELECT FLOOR(2.1) FROM DUAL;

🖥️출력

ROUND(숫자 [,m]) : 숫자를 소수점 m자리에서 반올림해 리턴

✏️입력

SELECT ROUND(2.65 ,1) FROM DUAL;

🖥️출력

TRUNC(숫자 [,m]) : 숫자를 소수 m자리에서 잘라서 버린다

✏️입력

SELECT TRUNC(2.65 ,1) FROM DUAL;

🖥️출력

SIN, COS, TAN : 숫자의 삼각함수 값을 리턴

✏️입력

SELECT SIN(30 * 3.14159265359/180) FROM DUAL; // 30도의 사인 값
SELECT COS(30 * 3.14159265359/180) FROM DUAL; //30도의 코사인 값
SELECT TAN(30 * 3.14159265359/180) FROM DUAL; //30도의 탄젠트 값

🖥️출력


EXP(숫자) : 숫자의 지수 값을 리턴

✏️입력

SELECT EXP(4) FROM DUAL; //e의 4승 값을 계산  e=2.71828183

🖥️출력

POWER(숫자1, 숫자2) : 숫자의 거듭제곱 값을 리턴

✏️입력

SELECT POWER(2,2) FROM DUAL;

🖥️출력

SQRT(숫자) : 숫자의 제곱근값을 리턴

제곱근 : 제곱하여 그 수가 되는 수
✏️입력

SELECT SQRT(9) FROM DUAL;

🖥️출력

LOG(숫자1, 숫자2) : 숫자1을 밑수로 하는 숫자2의 로그 값을 리턴

✏️입력

SELECT LOG(10,100) FROM DUAL;

🖥️출력

LN(숫자) : 숫자의 자연 로그 값을 리턴

자연로그 : e를 밑으로 하는 로그를 뜻한다.
✏️입력

SELECT LN(95) FROM DUAL;

🖥️출력


3. 날짜형 함수

DATE타입의 값을 연산하는 함수

SYSDATE / GETDATE() : 현재 날짜와 시각을 출력

✏️입력

SELECT SYSDATE FROM DUAL; //ORACLE함수
SELECT GETDATE() // SQL SERVER함수

🖥️출력

EXTRACT( 'YEAR'| 'MONTH' | 'DAY' from d ) : 날짜 데이터에서 연월일 데이터 출력 시분초도 가능

✏️입력

SELECT EXTRACT(YEAR FROM HIREDATE) FROM EMP; //연도
SELECT EXTRACT(MONTH FROM HIREDATE) FROM EMP; //월
SELECT EXTRACT(DAY FROM HIREDATE) FROM EMP; //일

🖥️출력

DATEPART('YEAR' | 'MONTH' | 'DAY', d) : 날짜 데이터에서 연월일 데이터 출력 시분초도 가능(SQL SERVER에서 사용)

✏️입력

SELECT DATEPART (YEAR FROM HIREDATE) FROM EMP;
SELECT DATEPART (MONTH FROM HIREDATE) FROM EMP;
SELECT DATEPART (DAY FROM HIREDATE) FROM EMP;

TO_NUMBER(TO_CHAR(d,'YYYY')) : 날짜 데이터에서 연월일 데이터를 출력할 수 있다.

✏️입력

SELECT TO_NUMBER(TO_CHAR(HIREDATE,'YYYY')) FROM EMP;
SELECT TO_NUMBER(TO_CHAR(HIREDATE,'MM')) FROM EMP;
SELECT TO_NUMBER(TO_CHAR(HIREDATE,'DD')) FROM EMP;

🖥️출력

  • 단일행 날짜형 데이터 연산
연산결과설명
날짜 + 숫자날짜숫자만큼의 날수를 날짜에 더한다.
날짜 - 숫자날짜숫자만큼의 날수를 날짜에서 뺀다.
날짜1 - 날짜2날짜수다른 하나의 날짜에서 하나의 날짜를 빼면 일수가 나온다.
날짜 + 숫자/24날짜시간을 날짜에 더한다.

4. 변환형 함수

특정 데이터 타입을 다양한 형식으로 출력

TO_NUMBER(문자열) //숫자로 변환 가능한 문자열을 숫자로 변환한다.
CAST(expression AS data_type[(length)]) //expression을 목표 데이터 유형으로 변환

TO_CHAR(숫자|날짜 [,format]) //숫자나 날짜를 주어진 format형태인 문자열 타입으로 변환
CONVERT(data_type [(length)], expression [,style]) //expression을 주어진 style형태인 목표 데이터 유형으로 변환

TO_DATE(문자열 [,FORMAT]) //문자열을 주어진 format형태인 날짜타입으로 변환
CONVERT(data_type [(length)], expression [,style]) //expression을 주어진 style형태인 목표데이터 유형으로 변환

TO_NUMBER() : 숫자로 변환 가능한 문자열을 숫자로 변환한다.

✏️입력

SELECT TO_NUMBER(COMM) FROM EMP; //ORACLE
SELECT CAST(COMM AS INT) FROM EMP; //SQL SERVER expression을 목표 데이터 유형으로 변환

🖥️출력

TO_CHAR(숫자|날짜 [,format]) : 숫자나 날짜를 주어진 format형태인 문자열 타입으로 변환

✏️입력

SELECT TO_CHAR(HIREDATE,'YYYYMMDD HH24:MI:SS') FROM EMP; //ORACLE
SELECT CONVERT(VARCHAR(20), getdate(), 120); //SQL SERVER expression을 주어진 style형태인 목표 데이터 유형으로 변환

🖥️출력

TO_DATE(문자열 [,FORMAT]) : 문자열을 주어진 format형태인 날짜타입으로 변환

✏️입력

SELECT TO_DATE(HIREDATE,'DD-MM-YYYY') FROM EMP; //ORACLE

🖥️출력

0개의 댓글