-- dual 테이블
-- 오라클에서 자체적으로 제공해 주는 테이블
-- 간단하게 함수를 이용해서 계산, 결과값을 확인할 때 사용하는 테이블.
-- 오직 한 행, 한 칼럼만을 담고 있는 테이블.
-- 사용 용도 : 특정 테이블을 생성할 필요 없이 함수 또는 계산을 하고자 할 때 사용.
-- 오라클에서 제공해 주는 함수들.
-- 1. 날짜와 관련된 함수들
-- 1) sysdate : 현재 시스템의 날짜를 구해 오는 함수
select sysdate from dual;
-- 2) add_months(현재 날짜, 숫자(더할 개월 수)) : 현재 날짜에서 개월 수를 더해주는 함수.
select add_months(sysdate, 3) from dual;
-- 3) next_day(현재 날짜, '요일') : 다가올 날짜(요일)을 구해주는 함수.
select next_day(sysdate, '월요일') from dual;
-- 4) to_char(날짜, '날짜형식') : 형식에 맞게 문자열로 날짜를 출력하는 함수.
select to_char(sysdate, 'yyyy/mm/dd') from dual;
select to_char(sysdate, 'mm-dd-yyyy') from dual;
-- 5) months_between(큰 날짜, 날짜) : 두 날짜 사이의 개월수를 출력해주는 함수
select months_between('22/07/07', sysdate) from dual;
-- 6) last_day() : 주어진 날짜가 속한 달의 마지막 날짜를 반환하는 함수.
select last_day(sysdate) from dual;
-- 2. 문자와 관련된 함수들.
-- 1) concat('문자열1', '문자열2') : 문자열을 연결하는 함수.
select concat('안녕', '하세요!') from dual;
-- literal 연산자 : 문자열을 연결하는 연산자.
select '오하요' || '고자이마스!' from dual;
-- 2) upper() : 소문자를 대문자로 바꿔주는 함수.
select upper('happy day') from dual;
-- 3) lower() : 대문자를 소문자로 바꿔주는 함수
select lower('HELLO WORLD') from dual;
-- 4) substr('문자열', x, y) : 문자열을 x부터 y의 길이만큼 추출해 내는 함수.
select substr('ABCDEFG', 3, 2) from dual; --CD
-- x값이 음수인 경우에는 오른쪽 부터 시작이 된다.
select substr('ABCDEFG', -3, 2) from dual; --EF
-- 5) 자릿수를 늘려주는 함수
-- lpad('문자열', '전체자릿수', '늘어난 자릿수에 들어갈 문자열')
-- : 왼쪽 자릿수를 늘려주는 함수.
select lpad('ABCDEFG', 15, '*') from dual;
-- rpad('문자열', '전체자릿수', '늘어난 자릿수에 들어갈 문자열')
-- : 오른쪽 자릿수를 늘려주는 함수.
select rpad('ABCDEFG', 15, '=') from dual;
-- 6) 문자를 지워주는 함수.
-- 왼쪽 문자를 지워주는 함수.
-- ltrim() : 왼쪽 문자를 지워주는 함수
select ltrim('ABCDEFGA', 'A') from dual;
-- 오른쪽 문자를 지워주는 함수.
-- rtrim() : 오른쪽 문자를 지워주는 함수
select rtrim('ABCDEFGA', 'A') from dual;
-- 7) replace() : 문자열을 교체해주는 함수.
-- 형식) replace('원본 문자열', '교체될 문자열', '새로운 문자열')
select replace('Java Program', 'Java', 'Spring') from dual;
--[문제1] emp 테이블에서 결과가 아래와 같이 나오도록 화면에 보여주세요.
--결과) 'SCOTT의 담당업무는 ANALYST 입니다.'
--단, concat() 함수를 이용하세요.
select concat (ename, '의 담당업무는 '), concat(job, '입니다.') from emp;
--[문제2] emp테이블에서 결과가 아래와 같이 나오도록 화면에 보여주세요.
--결과) 'SCOTT의 연봉은 36000입니다.'
-- 단, concat() 함수를 이용하세요.
select concat (ename, '의 연봉은 '), concat(sal*12, '입니다.') from emp;
--[문제3] member10테이블에서 결과가 아래와 같이 나오도록 화면에 보여주세요.
--결과) '사나 회원의 직업은 대학생입니다.'
-- 단, concat() 함수를 이용하세요.
select concat(memname, ' 회원의 직업은 '), concat(job, '입니다.') from member10;
select concat(memname || ' 회원의 직업은', job || '입니다.') from member10;
--[문제4] emp테이블에서 사번, 이름, 담당업무를 화면에 보여주세요.
-- 단, 담당업무는 소문자로 변경하여 화면에 보여주세요.
select empno, ename, lower(job) from emp;
--[문제5] 여러분의 주민등록번호 중에서 생년월일을 추출하여 화면에 보여주세요.
select substr('940116-1234567',1 ,6) from dual;
select to_char(to_date((substr('940116-1234567',1 ,6))), 'yyyy/mm/dd') from dual;
--[문제6] emp테이블에서 담당업무에 'A' 라는 글자를 '$'로 바꾸어 화면에 보여주세요.
select replace(job, 'A', '$') from emp;
--[문제7] member10 테이블에서 직업이 '대학생'인 정보를 '학생'으로 바꾸어 화면에 출력해보세요.
select replace(job, '대학생', '학생') from member10;
--[문제8] member10 테이블에서 주소에 '서울시'로 된 정보를 '서울특별시'로 바꾸어 화면에 보여주세요.
select replace(addr, '서울시', '서울특별시') from member10;
-- 3. 숫자와 관련된 함수들.
-- 1) abs(정수) : 절대값을 구하는 함수.
select abs(23) from dual; --23
select abs(-23) from dual; --23
-- 2) sign(정수) : 양수(1), 음수(-1), 0을 반환해주는 함수.
select sign(15) from dual;
select sign(15), sign(-15), sign(0) from dual;
-- 3) round(실수) : 반올림을 해주는 함수.
select round(1234.5678) from dual; --1235
-- 반올림을 할 때 자릿수를 지정.
-- 형식) round(숫자[필수], 반올림 위치[선택])
-- 음수값 지정시 자연수(정수) 쪽으로 한자리씩 위로 반올림을 한다.
select round(0.1234567, 6) from dual; --0.123457
select round(2.3423557, 4) from dual; --2.3424
select round(1234.5678, -1) from dual; --1230 : 정수부터 한자리씩 위로 반올림
-- 4) trunc() : 소수점 이하 자릿수를 잘라내는 함수.
-- 형식) trunc(숫자[필수], 버릴 위치[선택])
select trunc(1234.1234567, 0) from dual; --1234
select trunc(1234.1234567, 4) from dual; --1234.1234
select trunc(1234.1234567, -3) from dual; --1000 : 정수쪽으로 자른다. 0으로 치환
-- 5) ceil() : 무조건 올림해 주는 함수.
select ceil(22.8) from dual; --23
select ceil(22.1) from dual; --23
-- 6) power(x의, n제곱) : 제곱을 구해주는 함수.
select power(4, 3) from dual; -- 64
-- 7) mod() : 나머지를 구해주는 함수.
-- 형식) mod(나눗셈이 될 숫자, 나눌 숫자)
select mod(17, 7) from dual; --3
-- 8) sqrt() : 제곱근을 구해주는 함수
select sqrt(3) from dual;
select sqrt(16) from dual; --4 : 16은 4의 제곱
'개발자 > DB 오라클' 카테고리의 다른 글
데이터베이스 SQL 오라클 group by 절, having 절, view (0) | 2022.02.26 |
---|---|
데이터베이스 SQL 오라클 서브 쿼리문 (0) | 2022.02.23 |
데이터베이스 SQL 오라클 join ~ on 키워드 (0) | 2022.02.23 |
데이터베이스 SQL 오라클 where 조건절, like 키워드, order by, 그룹함수, 시퀀스 (0) | 2022.02.21 |
데이터베이스 SQL 오라클 literal 문자열 (0) | 2022.02.18 |
댓글