'분류 전체보기'에 해당되는 글 144건

  1. 2009.03.13 Oracle 문자형 함수 - substr
  2. 2009.03.13 Oracle 문자형 함수 - Concat
  3. 2009.03.13 Oracle Order By 절
  4. 2009.03.13 연산자 우선순위 규칙
  5. 2009.03.13 Oracle IS NULL 연산자
  6. 2009.03.13 Oracle LIKE 연산자
  7. 2009.03.13 Oracle IN 연산자
  8. 2009.03.13 Oracle Between 연산자
  9. 2009.03.13 Oracle 날짜 표시
  10. 2009.03.13 Oracle 비교연산자

---- substr 함수
select substr('oracle server 9i', 8,6) -- substr('문자',x,y) : 문자에서 x번째부터 y개만큼 글자를 출력한다.
from dual;

select substr('oracle server 9i', 8) -- 갯수 표현을 안하면 원하는 곳부터 끝까지 출력한다.
from dual;

select substr('오라클 서버 9i', 5,2) -- 한글 영문 byte에 관계없이 글자수를 출력한다.
from dual;

select substrb('oracle server 9i', 5,2) -- substrb('문자',x,y)는 번째 바이트부터 y개 byte만큼 출력
from dual;

select substrb('오라클 서버 9i', 5,2) -- 한글은 글자 하나당 2byte이다.
from dual;

------ 예제문장.
select ename, substr(ename,2)
from emp;
------ 예제문제 substr함수를 써서 sawon 테이블의 여자만 검출
select *
from sawon
where substr(minbun,7,1) = 2 or substr(minbun,7,1) = 4;

select *
from sawon
where substr(minbun,7,1) in('2','4') -- in 연산자 사용

'Program... > Oracle' 카테고리의 다른 글

Oracle 문자형 함수 - instr  (0) 2009.03.13
Oracle 문자형 함수 - length  (0) 2009.03.13
Oracle 문자형 함수 - Concat  (0) 2009.03.13
Oracle Order By 절  (0) 2009.03.13
연산자 우선순위 규칙  (0) 2009.03.13
Posted by Duritz

---- concat 함수
select concat('oracle', 'server') from dual; -- concat 은 2개밖에 연결할수가 없다.
select 'oracle' || ' server' from dual; -- 권장 2개이상 연결이 가능하다.

select concat(ename ||' ''job is ', job) -- concat 두개 값사이에 || 넣으면 중간에 문자를 넣을수 있다.
from emp;  -- ' ' 사이에 '두개를 넣으면 출력값에는 '하나가 표시된다.

'Program... > Oracle' 카테고리의 다른 글

Oracle 문자형 함수 - length  (0) 2009.03.13
Oracle 문자형 함수 - substr  (0) 2009.03.13
Oracle Order By 절  (0) 2009.03.13
연산자 우선순위 규칙  (0) 2009.03.13
Oracle IS NULL 연산자  (0) 2009.03.13
Posted by Duritz

-- ○ Order by 절
select deptno "부서번호", ename "사원명", job "직종", sal "급여"
from emp
order by deptno asc;  -- order by는 행 정렬을 한다. asc는 오름차순을 의미
                      -- column 명대신 별칭을 사용하여도 되고, asc를 빼도 사용가능하다(default가 오름차순)
       -- desc은 내림차순을 의미한다.

select deptno "부서번호", ename "사원명", job "직종", sal "급여"
from emp
order by 1,3,4 desc; -- 1,3번째 column을 오름차순정렬, 4번째 column을 내림차순 정리하게된다.

'Program... > Oracle' 카테고리의 다른 글

Oracle 문자형 함수 - substr  (0) 2009.03.13
Oracle 문자형 함수 - Concat  (0) 2009.03.13
연산자 우선순위 규칙  (0) 2009.03.13
Oracle IS NULL 연산자  (0) 2009.03.13
Oracle LIKE 연산자  (0) 2009.03.13
Posted by Duritz
-- ○ 우선순위 규칙
select empno, ename, job, sal
from emp
where job='SALESMAN' or    -- 연산자의 우선순위 not > and > or
   job='PRESIDENT' and  -- 여기서 SALESMAN은 SAL에 의존되지 않게된다.
   sal > 1500;
 
select empno, ename, job, sal
from emp
where (job='SALESMAN' or    -- () 사용함으로서 SALESMAN, PRESIDENT는 모두 sal에 의존되어진다.
    job='PRESIDENT') and -- 연산에 있어서 ()를 잘쳐야 실수 없이 연산이 된다.
    sal > 1500;


'Program... > Oracle' 카테고리의 다른 글

Oracle 문자형 함수 - Concat  (0) 2009.03.13
Oracle Order By 절  (0) 2009.03.13
Oracle IS NULL 연산자  (0) 2009.03.13
Oracle LIKE 연산자  (0) 2009.03.13
Oracle IN 연산자  (0) 2009.03.13
Posted by Duritz

--- IS NULL 연산자
select ename, sal, comm
from emp
where comm is null;  -- null은 존재하지 않는 값이기 때문에 수식기호를 사용 할 수가 없다.

select ename, sal, comm
from emp
where not comm is null; -- 부정표현 not column is null 또는 column is not null 로 표현할 수 있다.

'Program... > Oracle' 카테고리의 다른 글

Oracle Order By 절  (0) 2009.03.13
연산자 우선순위 규칙  (0) 2009.03.13
Oracle LIKE 연산자  (0) 2009.03.13
Oracle IN 연산자  (0) 2009.03.13
Oracle Between 연산자  (0) 2009.03.13
Posted by Duritz

-- Like 연산자
select ename, job, sal
from EMP
where ename like 'SMITH';  --  Like : ~문자형태와 일치한다.

select ename, job, sal
from EMP
where ename like 'S%'; -- 대문자 S로 시작하는 ename을 출력한다.

 
select ename, job, sal
from EMP
where ename like '%S'; -- 대문자 S로 끝나는 ename을 출력한다.

select ename, job, sal
from EMP
where ename like '%S%'; -- 대문자 S가 포함되는 ename을 출력한다.

select ename, job, sal
from EMP
where ename like '%AM%'; -- 붙어있는 대문자 AM이 포함되는 ename을 출력한다.

select ename, job, sal
from EMP
where ename like '%A%M%'; -- 붙어있건 떨어져있건 대문자 A,M이 포함되는 ename을 출력한다.

select ename, job, sal
from EMP
where ename like '_A%'; -- _는 하나의 문자와 대치된다. 그러므로 두번째 글자가 A인 ename을 출력하게된다.

select ename, job, sal
from EMP                 -- 위와 마찬가지로 풀어봤을때
where ename like '__R%'; -- __R%은 세번째 글자가 R인 ename을 출력하게된다.

select ename, job, sal
from EMP                 -- 위와 마찬가지로 풀어봤을때
where ename like 'M_R%'; -- M_R%은 첫번째 글자가 M이고 세번째 글자가 R인 ename을 출력하게된다.

------ 참조사항(예제문제), 테이블생성
create table sawon            -- sawon 이라는 테이블을 생성한다.
(sano number(4)               -- sano라는 숫자값 column을 만든다.
,name varchar2(10)            -- name라는 문자값 column을 만든다.
,minbun varchar(13)           -- minbun라는 문자값 column을 만든다.
,hiredate date                -- hiredate라는 날짜 column을 만든다.
,constraint sawon_sano_pk primary key(sano) -- P.K를 sano로 지정한다.
) tablespace users;

insert into sawon
values(1001, '홍길동', '7810031234567', '1990-01-01');  -- 값을 입력
insert into sawon
values(1002, '엄정화', '7403012234567', '1999-01-01');
insert into sawon
values(1003, '남자애', '0012253234567', '2002-05-05');
insert into sawon
values(1004, '여자애', '0110104234567', '2003-05-05');

select * from sawon;
commit;
------ 사원테이블에서 여자만 추출하시오.
select *
from sawon
where minbun like '______2%' or
      minbun like '______4%';
     
------ 참조사항(예제문제2), 테이블생성
create table jepum
(jname varchar2(10)
,bigo varchar2(100)
) tablespace users;

insert into jepum
values('금시계', '고객만족도 99.99% 획득제품');
insert into jepum
values('은시계', '정밀도 점수 99.99% 획득제품');
commit;

select * from jepum;
------ 제품테이블에서 99.99% 라는 글자가 있는 것만 추출하시오
select *
from jepum
where bigo like '%99.99%%'; -- 원하는 답이 출력되지 않고 모두 나오게된다.
------ like와 함께 사용되어진 %나 _를 wild 문자라 한다.
select *
from jepum
where bigo like '%99.99\%%' -- escape 로쓰이는 문자는 잘안쓰이는 특수문자를 많이 사용한다.
   escape '\'; -- escape 'x' 쓰게되면 x뒤에 오는 %는 wild 문자기능을 상실하고 단순한 문자로 인식된다.

'Program... > Oracle' 카테고리의 다른 글

연산자 우선순위 규칙  (0) 2009.03.13
Oracle IS NULL 연산자  (0) 2009.03.13
Oracle IN 연산자  (0) 2009.03.13
Oracle Between 연산자  (0) 2009.03.13
Oracle 날짜 표시  (0) 2009.03.13
Posted by Duritz

-- IN (list) 연산자
select ename, job
from EMP
where job = 'SALESMAN' or
   job = 'CLERK' or
   job = 'MANAGER'; -- or 만으로만 구성 (권장사항)
  
select ename, job
from EMP
where job In ('SALESMAN', 'CLERK', 'MANAGER'); -- IN 연산자사용

select ename, job
from EMP
where not job In ('SALESMAN', 'CLERK', 'MANAGER'); -- IN연산자에서 부정사용

select ename, job
from EMP
where job ^= 'SALESMAN' and  -- 같지 않다의 의미인 ^= 사용
   job ^= 'CLERK' and     -- and는 or의 부정표현이다.
   job ^= 'MANAGER';

'Program... > Oracle' 카테고리의 다른 글

Oracle IS NULL 연산자  (0) 2009.03.13
Oracle LIKE 연산자  (0) 2009.03.13
Oracle Between 연산자  (0) 2009.03.13
Oracle 날짜 표시  (0) 2009.03.13
Oracle 비교연산자  (0) 2009.03.13
Posted by Duritz

-- between 연산자
select ename, sal
from EMP
where sal >= 2000 and sal <= 3000; -- sal이 2000이상 3000이하를 나타내라.

select ename, sal
from EMP -- between And B 연산자 : 실행하면 부등호 형식으로 다시 바뀌니 부등호로 하는게 실행이 빠르다.
where sal between 2000 and 3000;  -- between 연산자는 숫자 , 문자 모두 가능하다.

select ename, sal
from EMP
where ename >= 'J' and ename <= 'S'; -- ename의 값이 J에서 S사이값을 나타낸다.
where ename >= 'j' and ename <= 's'; -- 이경우는 값이 출력되지 않는다. 아스키값을 확인하면 이해하기 쉽다.

select ascii('A'), ascii('a') from dual; -- 아스키값 출력

select ename, hiredate
from EMP
where hiredate >= '1982' and hiredate <= '1987'; -- 문자 형식이라 오류가 뜬다. 다음을 참조한다.

select sysdate, to_char(sysdate, 'yyyy') -- sysdate에서 문자형식으로 추출한다.
from dual;

select sysdate, extract(year from sysdate) -- sysdate에서 원하는 부분을 숫자 형식으로 추출한다.
from dual;

select ename, hiredate
from EMP
where to_char(hiredate, 'yyyy') >= '1982' and
   to_char(hiredate, 'yyyy') <= '1987';    -- 날짜값에서 원하는 부분 문자형식으로 
  
select ename, hiredate
from EMP
where extract(year from hiredate) >= '1982' and
   extract(year from hiredate) <= '1987';  -- 날짜값에서 원하는 부분을 숫자형식으로
  
select ename, hiredate
from EMP
where to_char(hiredate, 'yyyy') between 1982 and 1987; -- to_char 와 between 동시사용

select ename, hiredate
from EMP
where extract(year from hiredate) between 1982 and 1987; -- extract 와 between 동시사용

'Program... > Oracle' 카테고리의 다른 글

Oracle LIKE 연산자  (0) 2009.03.13
Oracle IN 연산자  (0) 2009.03.13
Oracle 날짜 표시  (0) 2009.03.13
Oracle 비교연산자  (0) 2009.03.13
Oracle 중복행 제거  (0) 2009.03.13
Posted by Duritz

-- 날짜 표시
-- 윈도우기반은 (RR/MM/DD)로 표시되고, 유닉스 기반은 (MON-DD-RR)로 표시된다.
-- 따라서 원하는 형식으로 보기 위해서는 to_char()를 써서 원하는데로 변경한다.
select ename,
       to_char(hiredate, 'yyyy-mm-dd hh24:mi:ss') Hiredate -- to_cahr() 원하는 형식으로 표시한다.
from emp;

select dbtimezone, -- dbtimezone은 오라클을 만든 미국의 시간대 표시
       sessiontimezone -- sessiontimezone는 그리니치 천문시간대 기준으로본 한국 시간대
from dual;

select localtimestamp, --
       current_timestamp
from dual;

'Program... > Oracle' 카테고리의 다른 글

Oracle IN 연산자  (0) 2009.03.13
Oracle Between 연산자  (0) 2009.03.13
Oracle 비교연산자  (0) 2009.03.13
Oracle 중복행 제거  (0) 2009.03.13
Oracle 연결 연산자  (0) 2009.03.13
Posted by Duritz

-- 비교 연산자
select *
from emp
where deptno=10; -- 같다

select *
from emp
where deptno <> 10; -- 같지않다 ( <>, !=, ^= ) 

select *
from emp
where not deptno = 10; -- column 명앞에 not 을 붙여서 같지 않다가 된다.

select ename, sal
from emp
where sal >= 3000; -- >= ~ 보다 크거나 같다.

select *
from EMP
where job='SALESMAN' -- 문자일경우에는 ' '를 해주어야 하고, Value 값은 대소문자를 잘 구분해야한다.

select 'saLesMan', upper('saLesMan'), -- upper 모든 문자를 대문자로 표시
       lower('saLesMan'), -- lower 모든 문자를 소문자로 표시
    initcap('saLesMan') -- initcap 맨앞문자만 대문자로 표시
from dual;

select *
from EMP
where upper(job)=upper('saLesMan'); -- 검색할 조건을 모두 대문자로 변경후 검색한다.

update emp set job='sAlesMaN'
where empno=7499;

'Program... > Oracle' 카테고리의 다른 글

Oracle Between 연산자  (0) 2009.03.13
Oracle 날짜 표시  (0) 2009.03.13
Oracle 중복행 제거  (0) 2009.03.13
Oracle 연결 연산자  (0) 2009.03.13
Oracle 산술 표현식  (0) 2009.03.13
Posted by Duritz

공지사항

Yesterday
Today
Total
12-03 22:26

달력

 « |  » 2024.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31