문제1. SQL의 종류에는 무엇이 있는가?
 
    (1) query (질의, 검색어)
         ~> select 문의 6가지 절

   (2) DML문 (Data manage Language)
        - insert /입력
        - update /수정
        - delete / 삭제
        - merge / 입력&수정&삭제
   
  (3) DDL문 (Data definition Language)
       - create /생성
       - alter /수정
       - drop /삭제
       - truncate /삭제
       - rename/이름 변경

  (4) DCL문 (Data control Language)
       - grant / 권한부여
       - revoke /권한취소
 
  (5) TCL문 (Transaction control Language)
       - commit / 변경된 내용을 영구히 저장
       - rollback /취소
       - savepoint /특정시점으로 취소
 

문제2. emp테이블 구조를 살펴보시오

SQL > describe emp

EMPNO      사원번호
ENAME      사원이름
JOB           직업
MGR          관리자의 사원번호
HIREDATE   입사일
SAL           월급
COMM       커미션
DEPTNO     부서번호



문제3. 이름과 월급을 출력하시오 !

SQL > select ename, sal  --- 컬럼명
          from emp;       --- 테이블 명

';' = 실행해 달라는 의미


문제4. 사원번호, 이름, 월급, 직업을 출력하시오!

SQL > select empno, ename,sal,job
          from emp;



문제5. 이름, 월급, 커미션을 출력하시오!

SQL > select ename, sal, comm
          from emp;



문제6. 이름, 월급, 커미션, 월급+커미션을 출력하시오

SQL > select ename, sal, comm, sal+nvl(comm,0)
          from emp;


* 출력시 커미션 값이 null이면 월급+커미션 값이 출력되지 않음

null 값인 경우 
 1) data가 없는 상태 
 2) 알 수 없는 상태 (unknown)


문제7. 월급이 3000인 사원들의 이름과 월급을 출력하시오 !

SQL > select ename,sal
          from emp
          where sal = 3000;

*where 절에 검색 조건을 준다


문제 8. 사원번호가 7788번인 사원의 사원번호, 이름, 월급을 출력하시오

SQL > select empno,ename,sal
          from emp
          where empno = 7788;


문제 9. 사원이름이 SMITH인 사원의 이름과 직업을 출력하시오!

SQL > select ename, job
          from emp
          where ename = 'SMITH';

* 이름은 ' ' 을 사용하여 문자 type이 string 임을 표시 해줌


문제 10. 직업이 SALESMAN인 사원들의 이름과 직업을 출력 하시오

SQL > select ename, job
          from emp
          where job = 'SALESMAN';


문제 11. 월급이 3000 이상인 사원들이 이름과 월급을 출력하시오!

SQL > select ename, sal
          from emp
          where sal >= 3000;

* 연산자의 종류 3가지
1. 산술 연산자 : * , /, +,-
2. 비교 연산자 : >,<,>=,<=,=
                     !=, <>,^= (같이 않거나)
3. 논리 연산자 : and, or, not


문제 12. 직업이 SALESMAN이 아닌 사원들의 이름과 직업을 출력하시오!

SQL > select ename, job
          from emp
          where job != 'SALESMAN';


문제 13. 월급이 1000에서 3000 사이인 사원들의 이름과 월급을 출력하시오!

SQL > select ename, sal
          from emp
          where sal between 1000 and 3000;

* 연산자의 종류 3가지
1. 산술 연산자
2. 비교 연산자
3. 논리 연산자
       - 기타 비교 연산자/  between and


문제 14. 월급이 1000에서 3000 사이가 아닌 사원들의 이름과 월급을 출력하시오

SQL > select ename, sal
          from emp
          where sal not between 1000 and 3000;


문제 15. 사원번호가 7788, 7902 인 사원들의 사원번호와 이름을 출력하시오 !

SQL > select empno, ename
          from emp
          where empno in(7788,7902);

SQL > select empno, ename
          from emp
          where empno = 7788 or empno = 7902;

* 기타 비교 연산자
1. between and
2. in (여러가지 동시에 검색)


문제 16. 직업이 SALESMAN, ANALYST, CLERK이 아닌 사원들의 이름과 직업을 출력하시오!

SQL > select ename, job
          from emp
          where job not in ('SALESMAN', 'ANALYST', 'CLERK');


문제 17. 커미션이 Null인 사원들의 이름과 커미션을 출력하시오!

SQL > select ename, comm
          from emp
          where comm is null;

*기타 비교 연산자
1. between and
2. in
3. is null


문제 18. 커미션이 null이 아닌 사원들의 이름과 커미션을 출력하시오!

SQL > select ename, comm
          from emp
          where comm is not null;


문제 19. 이름의 첫글자가 S(대문자)로 시작하는 사원들의 이름을 출력하시오!

SQL > select ename
          from emp
          where ename like 'S%';

*like 와 같이 쓰이는 것들 (1)
% : wildcard
    이자리에 뭐가 와도, 갯수가 몇개이든 관계없다.


문제 20. 이름의 끝글자가 T로 끝나는 사원들의 이름을 출력하시오!

SQL > select ename
          from emp
          where ename like '%T';


문제 21 이름의 두번째 철자가 M인 사원들의 이름을 출력하시오!

SQL > select ename
          from emp
          where ename like '_M%';

**like 와 같이 쓰이는 것들 (2)
% : 이자리에 뭐가 와도 관계없고 갯수가 몇개든 관계없다.
_ :  이자리에 뭐가 와도 관계 없는 자리 수 1개 이어야 한다.


문제 22. 이름의 세번째 철자가 A인 사원들의 이름을 출력하시오!

SQL > select ename
          from emp
          where ename like '__A%';


문제 23. 이름에 EN 또는 IN을 포함하고 있는 사원들의 이름을 출력하시오!

SQL > select ename
          from emp
          where ename like '%EN%' or ename like '%IN%';


문제 24. 아래의 DATA를 EMP 테이블에 입력하시오

SQL > insert into emp(empno, ename, sal)
          values(1234, 'A%B', 3500);

SQL > select ename, sal
          from emp;


문제 25. 이름의 두번째 철자가 %인 사원의 이름을 출력하시오

SQL > select ename
          from emp
        where ename like '_m%%' escape 'm';

*like 와 같이 쓰이는 것들 (3)
escape



* 생각해봐야할 문제 *

select ename, sal
from emp
where sal between 1000 and 3000;

둘 中 어떤것과 같은가?

1) where sal >= 1000 and sal <=3000; 
2) where sal > 1000 and sal <3000;


답은 1번 

추가로 알게 된 내용 

1. set page 400 / 보이는 페이지를 늘릴 때 사용 (점선이 사라진다.) 

2. ed+Enter키 / 메모장이 열린 후 수정이 가능하다. (닫은 후 -> '/'+Enter키) 


+ Recent posts