본문으로 바로가기

2015. 7. 7. 10:33 Naver Blog 백업용


- select * from emp where sal >= 3000 

- sal(컬럼) >=(비교연산자) 3000(비교값) 

- 다르다: !=

- 문자열의 비교는 ' ' 내부에 대/소문자 구분 하여 진행가능

ex) select * from emp where ename = 'HEEJU'; 

- 날짜데이터는 연산이 가능하다. 역시 ' ' 내부에 날짜는 어떻게적어도 가능

ex) '90/03/20' = '1990/3/20' = '1990/03/20'

 

 

논리연산자

- 이고 = AND = T/T만 가능

ex)  select * from emp where job='SALESMAN' and sal>=1500;

SELECT * FROM EMP WHERE SAL>1500 AND SAL<=2000;

- WHERE 1500<SAL<2000 이 될 것 같으나 전혀안댐

- BETWEEN 연산자 활용

ex) WHERE SAL BETWEEN 1500 AND 2000;

- 이거나 = OR = T/F & F/T 가능

ex) SELECT * FROM EMP WHERE DEPTNO=10 OR DEPTNO=20;

- IN 연산자 활용

ex) WHERE DEPTNO IN (10,20);

!= WHERE DEPTNO NOT IN (10,20);

 

BETWEEN, AND 연산자 & IN 연산자 -> 논리연산자 참고

 

LIKE 연산자와 와일드카드

- 와일드카드: 대표문자를 의미 

- % 어떤값도 상관없음 / _ 하나의 문자에 어떤값도 상관없음

ex) A% -> ABCCDDDD, AB, AVVV

A_ -> AB, AC / __A -> BBA, CEA

- A로 시작하는 모든 데이터

ex) SELECT * FROM EMP WHERE ENAME LIKE 'A%';

- A가 들어가는 모든 데이터

ex) SELECT * FROM EMP WHERE ENAME LIKE '%A%';

- 두번째 단어가 A인 모든 데이터

ex) SELECT * FROM EMP WHERE ENAME LIKE '_A%';

 

NULL을 위한 연산자

- IS NULL, IS NOT NULL

ex) SELECT * FROM EMP WHERE COMM IS NULL;

ex) SELECT * FROM EMP WHERE COMM IS NOT NULL;

 

정렬을 위한 ORDER BY절

- 오름차순 정렬 ASC

1,2,3,4,5... A,B,C,D,E... ㄱ,ㄴ,ㄷ,ㄹ,ㅁ...

- 내림차순 정렬 DESC

5,4,3,2,1... E,D,C,B,A... ㅁ,ㄹ,ㄷ,ㄴ,ㄱ...

- select * from emp where sal >= 3000 

- sal(컬럼) >=(비교연산자) 3000(비교값) 

- 다르다: !=

- 문자열의 비교는 ' ' 내부에 대/소문자 구분 하여 진행가능

ex) select * from emp where ename = 'HEEJU'; 

- 날짜데이터는 연산이 가능하다. 역시 ' ' 내부에 날짜는 어떻게적어도 가능

ex) '90/03/20' = '1990/3/20' = '1990/03/20'

 

논리연산자

- 이고 = AND = T/T만 가능

ex)  select * from emp where job='SALESMAN' and sal>=1500;

SELECT * FROM EMP WHERE SAL>1500 AND SAL<=2000;

- WHERE 1500<SAL<2000 이 될 것 같으나 전혀안댐

- BETWEEN 연산자 활용

ex) WHERE SAL BETWEEN 1500 AND 2000;

- 이거나 = OR = T/F & F/T 가능

ex) SELECT * FROM EMP WHERE DEPTNO=10 OR DEPTNO=20;

- IN 연산자 활용

ex) WHERE DEPTNO IN (10,20);

!= WHERE DEPTNO NOT IN (10,20);

 

BETWEEN, AND 연산자 & IN 연산자 -> 논리연산자 참고

 

LIKE 연산자와 와일드카드

- 와일드카드: 대표문자를 의미 

- % 어떤값도 상관없음 / _ 하나의 문자에 어떤값도 상관없음

ex) A% -> ABCCDDDD, AB, AVVV

A_ -> AB, AC / __A -> BBA, CEA

- A로 시작하는 모든 데이터

ex) SELECT * FROM EMP WHERE ENAME LIKE 'A%';

- A가 들어가는 모든 데이터

ex) SELECT * FROM EMP WHERE ENAME LIKE '%A%';

- 두번째 단어가 A인 모든 데이터

ex) SELECT * FROM EMP WHERE ENAME LIKE '_A%';

 

NULL을 위한 연산자

- IS NULL, IS NOT NULL

ex) SELECT * FROM EMP WHERE COMM IS NULL;

ex) SELECT * FROM EMP WHERE COMM IS NOT NULL;

 

정렬을 위한 ORDER BY절

- 숫자는 오름/내림차순으로, 문자는 모아주는 역할을 함 

- 오름차순 정렬 ASC

1,2,3,4,5... A,B,C,D,E... ㄱ,ㄴ,ㄷ,ㄹ,ㅁ...

- 내림차순 정렬 DESC

5,4,3,2,1... E,D,C,B,A... ㅁ,ㄹ,ㄷ,ㄴ,ㄱ...

 

 

-문제-

 

기본 select문을 연습할 수 있는 예제입니다.

1. 81년도에 입사한 사람들 중에서 job이   ' MANAGER'인 사람들의 성명
    과 직업을   다음과 같은 형태로 출력하세요.

    ex)JONES :  MANAGER

 

SELECT ENAME || ':' || JOB AS "QUESTION 1" 

FROM EMP 

WHERE JOB='MANAGER' AND HIREDATE BETWEEN '81/01/01' AND '81/12/31';

 

 

2. job이 'SALESMAN'이면서 연봉이 1500이상인 데이터를 출력 (사번,성
   명,직업,연봉 출력) 

 

SELECT EMPNO, ENAME, JOB, SAL 

FROM EMP 

WHERE JOB='SALESMAN' AND SAL>=1500;

 

3. 연봉이 2000에서 3000사이의 사원   between ~ and 연산자를 이용하
    여 작업.  연봉이 높은 순서대로  출력하세요.  (사번,성명,연봉) 

 

SELECT EMPNO, ENAME, SAL 

FROM EMP 

WHERE SAL BETWEEN 2000 AND 3000 

ORDER BY SAL DESC;


4. 82년도 이후에 입사했거나 연봉이 5000이상인 사람을 출력. (사번,성명,
   연봉,입사년월)

 

SELECT EMPNO, ENAME, SAL, HIREDATE 

FROM EMP 

WHERE HIREDATE>'82/01/01' OR SAL>=5000;

 

5. emp테이블에서 부서번호가 10이거나   20에 속하는 사원들  중에서 급
   여가   2000이상인 사원들의 이름,급여,부서번호를  출력

 

SELECT ENAME, SAL, DEPTNO 

FROM EMP 

WHERE DEPTNO IN (10,20) AND SAL>=2000;

 

6. 급여가 1300에서 1700사이에 해당하는 사원의 성명,담당업무,급여,부서번호 조회하기

 

SELECT ENAME, JOB, SAL, DEPTNO 

FROM EMP 

WHERE SAL BETWEEN 1300 AND 1700;

 

7. 사원번호가 7902,7788,7566인 사원의 사원번호, 성명,담당업무,급여,입사일자 조회하기

 

SELECT EMPNO, ENAME, JOB, SAL, HIREDATE 

FROM EMP 

WHERE EMPNO IN (7902,7788,7566);

 

8. emp테이블에서 급여가 2800이상이고  job이  MANAGER인 사원의 사원번호,성명,담당업무,급여,입사일자,부서번호를 조회하기

 

SELECT EMPNO, ENAME, JOB, SAL, HIREDATE, DEPTNO 

FROM EMP 

WHERE SAL>=2800 AND JOB='MANAGER';

 

9. emp테이블에서 JOB이 'MANAGER',"CLERK','ANALYST' 가 아닌 사원의 사원번호, 성명,담당업무,급여,부서번호 출력

 

SELECT EMPNO, ENAME, JOB, SAL, DEPTNO 

FROM EMP 

WHERE JOB NOT IN ('MANAGER','CLERK','ANALYST');

 

'DB > Oracle' 카테고리의 다른 글

[Oracle] 그룹함수 -1-  (0) 2021.05.07
[Oracle ] SQL 주요함수 -3-  (0) 2021.05.07
[Oracle] SQL 주요함수 -2-  (0) 2021.05.07
[Oracle] SQL 주요함수 -1-  (0) 2021.05.07
[Oracle] ORACLE 11G 개요, 접속방법  (0) 2021.05.07