문제1. SQL의 종류에는 무엇이 있는가?
(1) query (질의, 검색어)
~> select 문의 6가지 절
(2) DML문 (Data manage Language)
- insert /입력
- update /수정
- delete / 삭제
- merge / 입력&수정&삭제
(2) DML문 (Data manage Language)
- insert /입력
- update /수정
- delete / 삭제
- merge / 입력&수정&삭제
(3) DDL문 (Data definition Language)
- create /생성
- alter /수정
- drop /삭제
- truncate /삭제
- rename/이름 변경
- 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이면 월급+커미션 값이 출력되지 않음
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;
where empno = 7788;
문제 9. 사원이름이 SMITH인 사원의 이름과 직업을 출력하시오!
SQL > select ename, job
from emp
where ename = 'SMITH';
* 이름은 ' ' 을 사용하여 문자 type이 string 임을 표시 해줌
where ename = 'SMITH';
* 이름은 ' ' 을 사용하여 문자 type이 string 임을 표시 해줌
문제 10. 직업이 SALESMAN인 사원들의 이름과 직업을 출력 하시오
SQL > select ename, job
from emp
where job = 'SALESMAN';
where job = 'SALESMAN';
문제 11. 월급이 3000 이상인 사원들이 이름과 월급을 출력하시오!
SQL > select ename, sal
from emp
where sal >= 3000;
* 연산자의 종류 3가지
1. 산술 연산자 : * , /, +,-
2. 비교 연산자 : >,<,>=,<=,=
!=, <>,^= (같이 않거나)
3. 논리 연산자 : and, or, not
where sal >= 3000;
* 연산자의 종류 3가지
1. 산술 연산자 : * , /, +,-
2. 비교 연산자 : >,<,>=,<=,=
!=, <>,^= (같이 않거나)
3. 논리 연산자 : and, or, not
문제 12. 직업이 SALESMAN이 아닌 사원들의 이름과 직업을 출력하시오!
SQL > select ename, job
from emp
where job != 'SALESMAN';
where job != 'SALESMAN';
문제 13. 월급이 1000에서 3000 사이인 사원들의 이름과 월급을 출력하시오!
SQL > select ename, sal
from emp
where sal between 1000 and 3000;
* 연산자의 종류 3가지
1. 산술 연산자
2. 비교 연산자
3. 논리 연산자
- 기타 비교 연산자/ between and
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);
where empno in(7788,7902);
SQL > select empno, ename
from emp
where empno = 7788 or empno = 7902;
* 기타 비교 연산자
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');
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
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;
where comm is not null;
문제 19. 이름의 첫글자가 S(대문자)로 시작하는 사원들의 이름을 출력하시오!
SQL > select ename
from emp
where ename like 'S%';
where ename like 'S%';
*like 와 같이 쓰이는 것들 (1)
% : wildcard
이자리에 뭐가 와도, 갯수가 몇개이든 관계없다.
이자리에 뭐가 와도, 갯수가 몇개이든 관계없다.
문제 20. 이름의 끝글자가 T로 끝나는 사원들의 이름을 출력하시오!
SQL > select ename
from emp
where ename like '%T';
where ename like '%T';
문제 21 이름의 두번째 철자가 M인 사원들의 이름을 출력하시오!
SQL > select ename
from emp
where ename like '_M%';
where ename like '_M%';
**like 와 같이 쓰이는 것들 (2)
% : 이자리에 뭐가 와도 관계없고 갯수가 몇개든 관계없다.
_ : 이자리에 뭐가 와도 관계 없는 자리 수 1개 이어야 한다.
_ : 이자리에 뭐가 와도 관계 없는 자리 수 1개 이어야 한다.
문제 22. 이름의 세번째 철자가 A인 사원들의 이름을 출력하시오!
SQL > select ename
from emp
where ename like '__A%';
where ename like '__A%';
문제 23. 이름에 EN 또는 IN을 포함하고 있는 사원들의 이름을 출력하시오!
SQL > select ename
from emp
where ename like '%EN%' or ename like '%IN%';
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';
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;
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키)