ENAME||'의월급은'||SAL ----------------------- SMITH 의 월급은 800 ALLEN 의 월급은 1600 WARD 의 월급은 1250
-- where 절에 조건을 줘서 특정 데이터만 select
-- 사원이름이 SCOTT 인 사원의 이름, 월급? select ename, sal from emp where ename = 'SCOTT';
ENAME SAL ---------- ---------- SCOTT 3000
이름을 줄때 소문자로 쓴다던지, ''(싱글쿼터) 로 감싸주지 않으면 원하는 결과값을 얻을 수없다.
-- ' ' 을 사용하는 경우 : 문자, 날짜
오라클에서 실행하는 순서 from 절로 가져오고 where 절에서 걸러서 select 한다. 그 후에 order by 절을 수행한다.
-- 월급이 1000 에서 3000 사이인 사원들의 이름, 월급 ? select ename, sal from emp where sal between 1000 and 3000;
ENAME SAL -------------- ALLEN 1600 WARD 1250 JONES 2975 ......
-- 1000에서 3000 사이가 아닌것들 select ename, sal from emp where sal not between 1000 and 3000;
ENAME SAL --------------- SMITH 800 KING 5000 JAMES 950
-- 사원번호가 7788, 7902 번인 사원들의 사원번호, 이름 ? select empno, ename from emp where empno = 7788 or empno = 7902;
아니면 다음과 같이 할 수도 있다.
select empno, ename from emp where empno in (7788, 7902);
결과는 동일
EMPNO ENAME ---------------- 7788 SCOTT 7902 FORD
% - 특수문자 % 가 아닌 wild card like 오퍼레이터에서 사용
-- 이름의 첫자가 'S' 로 시작하는 사원의 이름, 월급?
select ename, sal from emp where ename like 'S%';
ENAME SAL -------------- SMITH 800 SCOTT 3000
-- 치환변수 & 치환변수에다가 ' ' 를 할 수 있다. - '&ename'
select ename, sal from emp where ename = '&ename';
ename의 값을 입력하십시오: SCOTT 구 3: where ename = '&ename' 신 3: where ename = 'SCOTT'
ENAME SAL ---------- ---------- SCOTT 3000
SQL> 에서 / 엔터키를 치면 계속 물어본다.
치환변수는 여러 용도로 사용할 수 있는데 insert 구문이라던지, 다음처럼 여러조건을 줘서 테스트 하고싶을때
select ename, &column_name from emp where &condition order by &sort_column;
column_name의 값을 입력하십시오: sal 구 1: select ename, &column_name 신 1: select ename, sal condition의 값을 입력하십시오: sal > 1000 구 3: where &condition 신 3: where sal > 1000 sort_column의 값을 입력하십시오: sal 구 4: order by &sort_column 신 4: order by sal
ENAME SAL ---------- ---------- ADAMS 1100 WARD 1250 MARTIN 1250 MILLER 1300 TURNER 1500 ALLEN 1600 CLARK 2450 BLAKE 2850 JONES 2975 FORD 3000 SCOTT 3000 KING 5000
매~~~~~우 신기하다!!!
-- 위에있는 구, 신을 출력하고 싶지 않을때 verify 를 잠시 꺼두시면 된다. 다음을 입력해보자. SQL> show verify verify ON SQL> set verify off
이러면 이제 안나온다. 시험해 보도록하자.
from dual -- 결과값만을 보기위한 더미 테이블
ms-sql 에서는 select substring('SMITH', 1, 3) 만 해도 결과값을 출력하지만 오라클에서는 from 절이 있어야한다. 따라서 select substr('SMITH', 1, 3) from dual; 이렇게 입력한다.
SQL 2강
그냥 이어서...
-- 연결연산자 ||
연결연산자의 장점은 문자열로 표현할수 있다는 것이다.
다음을 입력해보자.
select ename || ' 의 월급은 ' || sal
from emp;
ENAME||'의월급은'||SAL
-----------------------
SMITH 의 월급은 800
ALLEN 의 월급은 1600
WARD 의 월급은 1250
-- where 절에 조건을 줘서 특정 데이터만 select
-- 사원이름이 SCOTT 인 사원의 이름, 월급?
select ename, sal
from emp
where ename = 'SCOTT';
ENAME SAL
---------- ----------
SCOTT 3000
이름을 줄때 소문자로 쓴다던지, ''(싱글쿼터) 로 감싸주지 않으면 원하는 결과값을 얻을 수없다.
-- ' ' 을 사용하는 경우 : 문자, 날짜
오라클에서 실행하는 순서 from 절로 가져오고 where 절에서 걸러서 select 한다.
그 후에 order by 절을 수행한다.
-- 월급이 1000 에서 3000 사이인 사원들의 이름, 월급 ?
select ename, sal
from emp
where sal between 1000 and 3000;
ENAME SAL
--------------
ALLEN 1600
WARD 1250
JONES 2975
......
-- 1000에서 3000 사이가 아닌것들
select ename, sal
from emp
where sal not between 1000 and 3000;
ENAME SAL
---------------
SMITH 800
KING 5000
JAMES 950
-- 사원번호가 7788, 7902 번인 사원들의 사원번호, 이름 ?
select empno, ename
from emp
where empno = 7788 or empno = 7902;
아니면 다음과 같이 할 수도 있다.
select empno, ename
from emp
where empno in (7788, 7902);
결과는 동일
EMPNO ENAME
----------------
7788 SCOTT
7902 FORD
% - 특수문자 % 가 아닌 wild card
like 오퍼레이터에서 사용
-- 이름의 첫자가 'S' 로 시작하는 사원의 이름, 월급?
select ename, sal
from emp
where ename like 'S%';
ENAME SAL
--------------
SMITH 800
SCOTT 3000
-- 치환변수 &
치환변수에다가 ' ' 를 할 수 있다. - '&ename'
select ename, sal
from emp
where ename = '&ename';
ename의 값을 입력하십시오: SCOTT
구 3: where ename = '&ename'
신 3: where ename = 'SCOTT'
ENAME SAL
---------- ----------
SCOTT 3000
SQL> 에서 / 엔터키를 치면 계속 물어본다.
치환변수는 여러 용도로 사용할 수 있는데 insert 구문이라던지,
다음처럼 여러조건을 줘서 테스트 하고싶을때
select ename, &column_name
from emp
where &condition
order by &sort_column;
column_name의 값을 입력하십시오: sal
구 1: select ename, &column_name
신 1: select ename, sal
condition의 값을 입력하십시오: sal > 1000
구 3: where &condition
신 3: where sal > 1000
sort_column의 값을 입력하십시오: sal
구 4: order by &sort_column
신 4: order by sal
ENAME SAL
---------- ----------
ADAMS 1100
WARD 1250
MARTIN 1250
MILLER 1300
TURNER 1500
ALLEN 1600
CLARK 2450
BLAKE 2850
JONES 2975
FORD 3000
SCOTT 3000
KING 5000
매~~~~~우 신기하다!!!
-- 위에있는 구, 신을 출력하고 싶지 않을때
verify 를 잠시 꺼두시면 된다. 다음을 입력해보자.
SQL> show verify
verify ON
SQL> set verify off
이러면 이제 안나온다. 시험해 보도록하자.
from dual -- 결과값만을 보기위한 더미 테이블
ms-sql 에서는 select substring('SMITH', 1, 3) 만 해도 결과값을 출력하지만
오라클에서는 from 절이 있어야한다. 따라서
select substr('SMITH', 1, 3) from dual; 이렇게 입력한다.
substr 처럼 function 에 대해 알아보자 ( 다음에... ㅡㅡ;)
'SQL > 공부' 카테고리의 다른 글