select * from tab;

select * from emp1;


-- 필드 추가

alter table emp1

add (email varchar2(30));

select * from emp1;


-- 이메일 수정

update emp1 set email='ssss@naver.com' where hiredate like '__/02%';

update emp1 set email='aaaaa@nate.com' where ename like '%A%';

update emp1 set email='nnnnn@daum.com' where ename like '%N%';

update emp1 set email='null@hanmail.net' where email is null;


commit;


--------------------------------------------------------------------------------


-- 이름    이메일            아이디 도메인

-- smith  null@hanmail.net  null  hanmail.net

select ename 이름, email 이메일, substr(email, 1, instr(email, '@') -1) 아이디, substr(email, instr(email, '@') +1, length(email)) 도메인 from emp1;

select ename, email, substr(email, 1, instr(email, '@') -1) 아이디, substr(email, instr(email, '@') +1, length(email) - instr(email, '@')) 도메인 from emp1;

'응용 SoftWare > Oracle' 카테고리의 다른 글

날짜 처리 함수  (0) 2017.01.02
General Function  (0) 2017.01.02
문자열 처리 함수  (0) 2016.12.30
숫자 함수  (0) 2016.12.30
테이블 예명  (0) 2016.12.30
Posted by Hyun CHO
,

-- CONCAT(char1, char2) : 문자 연결

-- select concat('blue', 'color') concat from dual;


-- INITCAP(char) : 단어의 첫번째 문자를 대문자로 변환

-- select initcap('hong gil dong') from dual;


-- LOWER(char) : 모든 문자를 소문자로 변환

-- select lower('HONG GIL DONG') from dual;

select lower(ename) from empcopy;


-- UPPER(char) : 모든 문자를 대문자로 변환

-- select upper('hong gil dong') from dual;


-- 함수 안에 함수 사용

select concat(lower(ename), upper(ename)) 이름 from empcopy;


-- LPAD(char1, n, [char2]) : 왼쪽에 문자열 채우기

-- select lpad('gil dong', 10, '*') from dual;

select lpad(ename, 10, '*') from empcopy;


-- RPAD(char1, n, [char2]) : 오른쪽에 문자열 채우기

-- select rpad('gil dong', 10, '*') from dual;

select rpad(ename, 10, '*') from empcopy;


-- SUBSTR(char, m, [n]) : m 번째 자리부터 길이가 n개인 문자열을 반환 / m이 음수일 경우에는 뒤에서 M번째 문자부터 반대 방향으로 n개의 문자를 반환

-- select substr('hong gil dong', 6, 3) from dual;

-- select substr('hong gil dong', -5, 3) from dual;

select job, substr(job, 2, 3) from empcopy;


-- LENGTH(char) : 글자수 구하기

-- select length('gil dong') from dual;

select ename, length(ename) from empcopy;


-- 이름의 문자길이의 50% 만큼 출력하고, 나머지 문자는 '*' 로 표시하라

--select ename 이름1, rpad(substr(ename, 1, length(ename)/2), length(ename), '*') 이름2 from empcopy;

select ename, rpad(substr(ename, 1, ceil(length(ename)/2)), length(ename), '*') from empcopy;


-- REPLACE(cahr1, str1, str2) : 문자 치환

select ename, replace(ename, 'A', '에이') replace from empcopy;


-- INSTR : 문자위치 구하기

select instr(job, 'SA') instr, job from empcopy;

select instr(job, 'A') instr, job from empcopy;

--                     3번째 문자부터 검색

select instr(job, 'A', 3) instr, job from empcopy;

--                     2번째 문자부터 검색을 시작해서 'A' 문자가 두번째 위치의 값

select instr(job, 'A', 2, 2) instr, job from empcopy;


-- TRIM : 앞뒤 공백 및 특정문자 제거 / 중간의 공백 및 특정문자에는 영향이 없음 / 숫자의 경우 문자로 변환됨

select 'result = ' || trim('   sam   ple   ')  || '결과' from dual;

select ename, trim('S' from ename) from emp;


-- LTRIM : 왼쪽 문자 제거

select ltrim('abcabcTestabc', 'abc') from dual;


-- RTRIM : 오른쪽 문자 제거

select rtrim('abcacbcSampleTest', 'abt') from dual;

'응용 SoftWare > Oracle' 카테고리의 다른 글

General Function  (0) 2017.01.02
[예제] 이메일에서 아이디와 도메인 분리하기  (0) 2016.12.30
숫자 함수  (0) 2016.12.30
테이블 예명  (0) 2016.12.30
테이블 복사의 종류  (0) 2016.12.29
Posted by Hyun CHO
,

-- comm(보너스)가 null인 값을 -100으로 수정

update empcopy set comm=-100 where comm is null;


-- ABS(n) : 절대값을 계산하는 함수

-- select abs(음수) from dual;

select ename 이름, sal 급여, abs(comm) 보너스 from empcopy;


-- CEIL(n) : 올림

-- select ceil(소숫점 수) from dual;

select ename 이름, sal*1.15 급여1, ceil(sal*1.15) 급여2 from empcopy;


-- FLOOR(n) : 버림

-- select floor(소숫점 수) from dual;

select ename 이름, sal*1.15 급여1, floor(sal*1.15) 급여2 from empcopy;


-- MOD(m, n) : 나머지 구하기

-- select mod(10, 3) from dual;

select ename, sal, comm, mod(sal, comm) from empcopy;


-- POWER(m, n) : m의 n 승 구하기

-- select power(5, 8) from dual;


-- ROUND(n, [m]) : n 값의 반올림 / m은 양수일 경우 소숫점 반올림 위치, 음수일 경우 정수 반올림 위치

-- select round(12345.258, 1) from dual;

select ename 이름, sal 급여1, round(sal, -2) 급여2 from empcopy;


-- SQRT(n) : n의 루트값 구하기

-- select sqrt(10) from dual;


-- TRUNC(n, m) : n의 값에서 m 이하의 수 버리기 / m은 양수일 경우 소숫점 위치, 음수일 경우 정수 위치

-- select trunc(7.5597, 2) from dual;

'응용 SoftWare > Oracle' 카테고리의 다른 글

[예제] 이메일에서 아이디와 도메인 분리하기  (0) 2016.12.30
문자열 처리 함수  (0) 2016.12.30
테이블 예명  (0) 2016.12.30
테이블 복사의 종류  (0) 2016.12.29
테이블 추가/삭제 및 레코드 추가  (0) 2016.12.28
Posted by Hyun CHO
,