살아가는 이유_EU
내가 살아가는 이유, 삶
살아가는 이유_EU
전체 방문자
오늘
어제
  • 삶 (159)
    • 이유's EATERY (16)
      • 맛집 (10)
      • 까페 (4)
      • 맛있는 Recipe (1)
    • 이유's LIFE (16)
      • 국내여행 (5)
      • 해외여행 (2)
      • 운동 (1)
      • 취업정보 (0)
      • 끄적끄적 (5)
      • 일기쟝 (3)
      • 세상 이야기 (0)
      • 결혼 준비 (0)
    • 이유's Programming (43)
      • JavaScript (6)
      • Java (7)
      • C++ (0)
      • DBMS (24)
      • Spring (3)
      • til (1)
      • HTTP (2)
    • 이유's REVIEW (13)
      • BOOK (6)
      • PROGRAM or MOVIE (5)
      • PRODUCT 제품리뷰 (2)
    • 이유's STUDY (31)
      • 수업 관련 (2)
      • IT 시사 (2)
      • IT NEWS (2)
      • IVIEW (0)
      • IOS 앱 만들기 (0)
      • 알고리즘 문제풀이 (23)
      • PM data literacy (2)
    • 이유's ENGLISH (13)
      • Writing about something! (12)
      • Feedback (1)
      • TIL (0)
    • 이유's DB 공부 (1)
      • MySQL DB (0)
      • Postgre (1)
    • Computer 공부 (17)
      • Backend question (10)
      • Clean architecture (2)
      • Operating system (2)
      • Network (3)
      • 항해 (0)

블로그 메뉴

  • 홈
  • EATERY's 맛집
  • CAFE 까페
  • Recipe 레시피
  • IT 공부
  • 방명록
  • 태그

공지사항

인기 글

태그

  • have something to do with
  • 삼돈식탁
  • map 하는 법
  • 인절미 티라미수
  • 영어공부
  • 아메리카토노
  • 피지오필로소피
  • 스쿤브레드
  • 어게인마이라이프
  • key 로 접근
  • have something to do with뜻
  • 자바스크립트
  • 자세요정
  • 현명하게 리액트
  • React.memo
  • 용인추천
  • 파스타맛집
  • 용인까페
  • go hand in hand
  • 흑임자 크림
  • 스테이크
  • 렌더링 수 줄이기
  • Array로 접근
  • 고메커피
  • 묵리
  • 용인맛집
  • 맛집
  • memoziation
  • 송계옥
  • 고메동 카페

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
살아가는 이유_EU

내가 살아가는 이유, 삶

이유's Programming/DBMS

[ 3 -1 ] DBMS 내장 함수

2021. 3. 19. 11:18
728x90
반응형

dbms 에서 사용할 수 있는 함수는 다양한 기준으로 분류할 수 있는데.. 오라클과 같은 벤더에서 제공하는 함수인 내장함수와 그리고 사용자가 정의할 수 있는 함수인 ( User Defined Function ) 이 있다. 

 

요기서는 이제 벤더에서 제공하는 함수인 내장 함수에 대해 말해볼 것이다. 

 

내장행 함수의 단일의 행으로 결과 값이 나오는 함수는 여러 종류가 있다. 

 

- 문자형 함수

 

문자형 함수  함수 설명 
Lower ( 문자열)  문자열의 알파벳 문자를 소문자로
Upper ( 문자열 )  문자열 알파벳 문자를 대문자로
ASCHII 문자나 숫자를 ASCHII 코드로
CHAR/CHAR (ASCHII 번호)  ASCHII 번호를 문자나 숫자로 바꾼다.
CONCAT ( 문자열 1, 문자열 2)  문자열 1과 문자열 2를 연결한다. 
SUBSTR / SUBSTRING ( 문자열 , m[,n ]  문자열 m 위치에서 n 개의 문자 길이에 해당하는 문자를 돌려준다. n 이 생략되면 마지막 문자까지 
LENGTH  문자열의 갯수를 숫자로 돌려줌. 

예시 ) 

select CONCAT(EMP_NM_KOR,' 사원') AS EMP_NM_KOR
from EMP_TBL

select EMP_NM_KOR || ' 사원' AS EMP_NM_KOR
from EMP_TBL

 

- 숫자형 함수

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

숫자형 함수 함수 설명 
ABS  숫자의 절대값을 돌려준다.
SIGN 숫자가 양수인지, 음수인지 0인지를 구별한다.
MOD ( 숫자1, 숫자2 )  숫자 1을 숫자 2로 나누어 나머지 값을 리턴한다. 
CEIL / CEILING  숫자보다 크거나 같은 최소 정수를 리턴한다. 
FLOOR 숫자보다 작거나 같은 최대 정수를 리턴한다. 
ROUND ( 숫자, [, m] )  숫자를 소수점 m 자리에서 반올림해 리턴한다. 
TRUNC ( 숫자, [, m] )  숫자를 소수점 M 자리에서 잘라서 버린다. 
SIN, COS, TAN  숫자으 ㅣ삼각함수 값을 리턴한다.
EXP  숫자의 지수 값을 리턴한다.
POWER 숫자의 거듭제곱 값을 리턴한다. 
SQRT 숫자의 제곱근 값을 리턴한다. 

등의 해당하는 내용에 대한 함수들을 적용해볼 수 있다. 

 

- 날짜형 함수

날짜형 함수는 DATE 타입의 값을 연산하는 함수이다. 

날짜형 함수  함수 설명
SYSDATE / GETDATE() 현재 시각을 출력한다. 
EXTRACT ( 'YEAR' | 'MONTH' | 'DAY' from d) 
/ DATEPART ( 'YEAR' | ' MONTH' | 'DAY', d)
날짜 데이터에서 연월일 데이터를 출력할 수 있다. 
시분초도 가능한다. 
TO_NUMBER ( TO_CHAR (d, 'YYYY') ) / YEAR ( d)  날짜 데이터에서 연월일 데이터를 출력할 수 있다. 

 

이런식으로 NUMBER 형식으로 입사날짜 ( 2010, 5월 11일) 로 되어잇는 것들을 입사년도 / 입사월 / 입사일 등으로 연도 / 월 / 일로 구분해서 뽑아올 수 있다. 

SELECT ENAME, HIREDATE AS 입사날짜
, TO_NUMBER ( TO_CHAR (HIREDATE, 'YYY' )) AS 입사년도
, TO_NUMBER ( TO_CHAR (HIREDATE ,'MM' ))  AS 입사월 
, TO_NUMBER ( TO_CHAR (HIREDATE ,'DD' ))  AS 입사일 
FROM EMP_TB

 

- 변환형 함수

그 이후 변환형 함수가 존재한다. 변환형 함수는 특정한 데이터 타입을 다양한 형식으로 출력하고 싶을 때 사용한다. 

 

반환형 함수 설명 
TO_NUMBER ( 문자열 ) / CAST  숫자로 변환 가능한 문자를 숫자로 바꿔준다 
TO_CHAR ( 숫자 | 날짜 [, FORMAT])   / 
CONVERT (data_yype [(length)] , expressiong [ , style ] ) 
숫자나 날짜를 주어진 FORMAT 형태인 문자열 타입으로 변환. 
expression 을 주어진 style  형태인 목표 데이터 유형으로 변환
TO_DATE ( 문자열 [, FORMAT ] ) /
CONVERT (data_yype [(length)] , expressiong [ , style ] )  
문자열을 주어진 FORMAT 형태인 날짜 타입으로 변환 . 
expression 을 주어진 style  형태인 목표 데이터 유형으로 변환

SELECT TO_CHAR ( SYSDATE , 'YYYY/MM/DD' ) AS 날짜
, TO_CHAR ( SYSDATE, 'YYYY, MM, DD') AS 문자형
FROM DUAL 

이럴 경우에 날짜로 나오는 값은 2021/03/22 

그리고 문자형으로 나오는 값은 2021, 3월, 33 일 의 형식으로 나올 것이다. 

 

 

- CASE 함수 

CASE 표현은 IF-THEN-ELSE 논리와 유사한 방식으로 표현식을 작성해 SQL 의 비교 연산 기능을 보완하는 역할을 함. 

 

IF SAL > 2000
THEN REVISED_SALARY = SAL 
ELSE REVISED_SALARY = 2000
END IF 

 

- Null 함수 

 

NULL 의 모든 연산은 NULL 이다. 그리고 해당 필요한 NULL 을 제대로 잘 사용해야 올바른 SQL 의 결과물이 나온다는 사실을 잘 기억해야할 것이다. 

 

NVL -> 은 괄호 안에 값이 NULL 일 경우 내가 정하는 다른 값을 뽑아서 보여줄 수 있도록 한다. 

 

예를 들면 

SELECT NVL ( MGR, '값 없음 ') AS MGR
FROM EMP
WHERE ENAME='KING'

이럴 경우에는 ENAME 이 KING 일 경우가 없는 NULL 의 케이스라면 내가 설정해주는 값인 ' 값 없음 ' 의 스트링 값이 출력된다. 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'이유's Programming > DBMS' 카테고리의 다른 글

[ 4 -1 ] 인덱스 기본 원리 / Balanced Tree ( B Tree)  (4) 2021.03.24
SQL 연산자  (0) 2021.03.23
[ 식별자 ] 본질식별자와 인조식별자  (0) 2021.03.18
[ 2 -1 ] 관계와 조인의 이해  (0) 2021.03.16
2-2. 정규화 ( 제 3 정규형, 반정규화와 성능 )  (0) 2021.03.15
    '이유's Programming/DBMS' 카테고리의 다른 글
    • [ 4 -1 ] 인덱스 기본 원리 / Balanced Tree ( B Tree)
    • SQL 연산자
    • [ 식별자 ] 본질식별자와 인조식별자
    • [ 2 -1 ] 관계와 조인의 이해
    살아가는 이유_EU
    살아가는 이유_EU
    안녕하세요. 초보개발자의 일상을 담은 블로그입니다.

    티스토리툴바