DB

DB/Oracle

[오라클 함수] 상황에 따라 다른 데이터를 반환하는 DECODE 함수와 CASE문

특정 열 값이나 데이터 값에 따라 어떤 데이터를 반환할 지 정할 때는 DECODE 함수 또는 CASE문을 사용한다. DECODE 함수 DECODE 함수는 기준이 되는 데이터를 먼저 지정한 후 해당 데이터 값에 따라 다른 결과 값을 내보내는 함수다. DECODE([검사 대상이 될 열 또는 데이터, 연산이나 함수의 결과], [조건1], [데이터가 조건1과 일치할 때 반환할 결과], [조건2], [데이터가 조건2와 일치할 때 반환할 결과], ... [조건n], [데이터가 조건n과 일치할 때 반환할 결과], [위 조건1~조건n과 일치한 경우가 없을 때 반환할 결과]) EMP 테이블에서 직책이 MANAGER인 사람은 급여의 10%를 인상한 급여, SALESMAN인 사람은 급여의 5%, ANALYST인 사람은 그대..

DB/Oracle

[오라클 함수] NULL 처리 함수

NULL 함수 NULL은 연산이 불가능하다. 오라클은 NULL일 경우 연산을 하기 위해 NULL값을 다른 데이터로 변환하는 NVL과 NVL2 함수를 사용한다. NVL 함수 NVL 함수는 첫 번째 입력 데이터가 NULL이면 두 번째 입력 데이터 값으로 저장하고, NULL이 아닐경우 그대로 첫 번째 입력값이 그대로 반환된다. NVL([NULL인지 여부를 검사할 데이터 또는 열(필수)], [앞의 데이터가 NULL일 경우 반환할 데이터](필수)) NVL 함수를 통해 급여외 수당(COMM)이 NULL이면 0으로 대체하고 0이 아니면 그대로 값을 출력하는 쿼리문을 작성해보자. SELECT EMPNO, ENAME, SAL, COMM, SAL+COMM, NVL(COMM, 0), SAL+NVL(COMM, 0) FROM ..

DB/Oracle

[오라클 함수] 형 변환 함수

형 변환 함수 오라클은 다양한 데이터 종류의 자료형을 제공한다. 잘못된 자료형의 사용으로 인해 즉, 잘못된 형 변환으로 인해 오류가 발생한다. Query 출력값 사원 'SCOTT'의 사원번호와 문자열 'ABCD'를 사원번호와 합친 데이터를 출력하려했다. 하지만 문자열+숫자는 타입이 맞지않아 'invalid number'에러 즉 수치가 부적합하다는 오류가 발생했다. 이처럼 형번환의 문제를 해결하기 위해 오라클은 다음과 같이 세 종류의 형 변환 함수를 제공한다. 종류 설명 TO_CHAR 숫자 또는 날짜 데이터를 문자 데이터로 변환 TO_NUMBER 문자 데이터를 숫자 데이터로 변환 TO_DATE 문자 데이터를 날짜 데이터로 변환 날짜, 숫자 데이터를 문자 데이터로 변환하는 TO_CHAR 함수 TO_CHAR ..

DB/Oracle

[오라클 함수] 날짜 함수

날짜 함수 오라클은 날짜 데이터를 다루는 다양한 함수를 제공한다. 날짜 데이터를 다루는 함수를 하나씩 알아보도록 하자. 몇 개월 이후 날짜를 구하는 ADD_MONTHS 함수 오라클은 특정 날짜에 지정한 개월 수 이후 날짜 데이터를 번환하는 ADD_MONTHS 함수를 제공한다. ADD_MONTHS([날짜 데이터(필수)], [더할 개월 수(정수)(필수)] 현재 날짜에 3개월을 더한 결과를 ADD_MONTHS 함수를 쿼리문을 통해 출력해보자. 글을 작성하는 오늘 날짜는 2022년 2월 9일이다. ADD_MONTHS 함수를 통해 3개월 이후의 값을 구하면 22년 5월 9일 날짜가 정확히 나온다. ADD_MONTHS 함수의 대표 예시로 입사 10주년이 되는 사원들을 쿼리를 통해 출력해보자. 10주년이면 개월 수로..

DB/Oracle

[오라클 함수] 문자함수

오라클 함수 오라클은 특정한 결과 값을 얻기 위해 데이터를 입력할 수 있는 특수 명령어가 존재하는데 이를 오라클 함수라 한다. 오라클 함수는 오라클 함수에서 기본으로 제공하는 내장함수와 사용자 필요에 의해 직접 정의한 사용자 정의 함수로 나뉜다. 내장함수 안에는 데이터가 한 행씩 입력되고 입력된 한 행당 결과가 하나씩 나오는 단일행 함수와 여러 행이 입력되어 하나의 행으로 결과가 반환되는 다중행 함수가 있다. 문자함수 UPPER, LOWER, INITCAP 함수 문자 함수에는 대·소문자로 바꿔주는 함수가 있다. 함수 설명 UPPER(문자열) 괄호 안 문자 데이터를 모두 대문자로 변환하여 변환 LOWER(문자열) 괄호 안 문자 데이터를 모두 소문자로 변환하여 변환 INTCAP(문자열) 괄호 안 문자 데이터..

DB/Oracle

WHERE절과 연산자

WHERE절 SELECT문에서 테이터를 조회할 때 특정 조건, 기준으로 행을 출력하기 위해 'WHERE절'을 사용한다. 만약 부서 번호가 30인 데이터만 출력하고 싶다면 다음과 같은 SQL문과 함께 출력된다. SELECT * FROM EMP WHERE DEPTNO = 30; WHERE절의 기본 형식은 다음과 같다. SELECT [조회할 열 1 이름]. [열2 이름], ..., [열N 이름] FROM [조회할 테이블 이름] WHERE [조회할 행을 선별하기 위한 조건식]; 여러 개 조건식을 사용하는 AND, OR 연산자 AND 두 개의 조건식을 동시에 사용할 때 AND연산자를 사용한다. 예를 들어 부서(DEPTNO)가 '30'이면서, 직업(JOB)이 'SALESMAN'인 조건식을 만든다면 AND연산자를 사..

DB/Oracle

SELECT문의 기본 형식

SQL의 기본 뼈대, SELECT절과 FROM절 SELECT문은 데이터베이스에 보관되어 있는 데이터를 조회하는 문법이다. 기본 형식은 아래와 같다. SELECT [조회할 열1 이름], [열2 이름], ..., [열N 이름] FROM [조회할 테이블 이름]; 만약 테이터의 모든 열을 조회하고자 할 떄는 간단하게 *(애스터리스크)를 통해 출력할 수 있다. SELECT * FROM EMP; 사원번호, 이름, 사원이 속한 특정한 열만 출력 하고 싶다면 아래와 같이 출력하면 된다. SELECT EMPNO, ENAME, DEPTNO FROM EMP; SELECT는 가장 많이 쓰이는 SQL문법중 하나이므로 꼭 기억하도록 하자. 중복 데이터를 삭제하는 DISTINCT 데이터를 조회하다보면, 중복된 데이터가 출력될 때가..

각시탈코더
'DB' 카테고리의 글 목록 (6 Page)