본문 바로가기

JAVA 공책/알고리즘 문제

DB(Oracle)_연습문제

Q.EMP 테이블에서 sal이 3000이상인 사원의 empno, ename, job, sal을 조회하는 SELECT 문장을 작성


A.해결

2행의 데이터가 출력


▼코드

select empno, ename, job, sal

from emp

where sal >= 3000;

설명

▼코드


Q.EMP 테이블에서 empno가 7788인 사원의 ename과 deptno를 조회하는 SELECT 문장을 작성


A.해결

결과 출력 안 됨.

▼코드

select ename, deptno

from emp

where empno = 7788;

설명

▼코드

결과 출력 안되는 게 맞음.

Q.EMP 테이블에서 hiredate가 1981년 2월 20일 과 1981년 5월 1일 사이에 입사한 사원의 ename, job, hiredate을 조회하는 SELECT 문장을 작성(단 hiredate 순으로 조회)


A.해결

4 행의 데이터가 출력


▼코드

select ename, job, hiredate

from emp

where hiredate>= to_date('1981/02/20','yyyy/mm/dd') and hiredate <= to_date('1981/05/01', 'yyyy/mm/dd')

order by hiredate;

설명

▼코드

- 같은 결과가 나오는 코드.

where between to_date('1981/02/20','yyyy/mm/dd') and to_date('1981/05/01', 'yyyy/mm/dd')


Q.EMP 테이블에서 deptno가 10, 20인 사원의 모든 정보를 조회하는 SELECT 문장을 작성(단 ename순으로 조회)


A.해결

결과가 안 나옴.

▼코드

select *

from emp

where deptno = 10 and[각주:1] deptno = 20

order by ename;


▼코드

where deptno in(10,20)

where deptno = 10 or deptno = 20

Q.EMP 테이블에서 sal이 1500이상이고 deptno가 10, 30인 사원의 ename과 sal를 조회하는 SELECT 문장을 작성(단 HEADING을 employee과 Monthly Salary로 조회)



A.해결

오류 생김.

▼코드

select ename, sal

from emp

where sal >= 1500 and deptno = 10 and deptno = 30

order by heading

해드를 바꾸라는 

▼코드

select ename employee, sal "Monthly Salary"

from emp

where sal >= 1500 and deptno = 10 and deptno = 30

(where sal >= 1500 and deptno in (10,30))

Q.EMP 테이블에서 hiredate가 1982년인 사원의 모든 정보를 조회하는 SELECT 문을 작성


A.해결

설명

▼코드

select *

from emp

where hiredate = to_date('1982','yyyy');

자주 쓰이기 때문에 날자로 범위내에 있는 데이터를 뽑아 내는 것은 잘 해야 합니다.

between도 쓸 수 있습니다.

▼코드

select *

from emp

where hiredate like '82%';

(where hiredate >= to_date('1982/01/01;,) and hiredate <= to_date('1982/12/32'.);)

Q.EMP 테이블에서 COMM이 NULL이 아닌 사원의 모든 정보를 조회하는 SELECT 문을 작성


A.해결

4행 데이터 출력

▼코드

select *

from emp

where comm is not null;


Q.EMP 테이블에서 comm이 sal보다 10% 이상 많은 사원에 대하여 ename,sal, comm를 조회하는 SELECT 문을 작성


A.해결

데이터 안 뜸.

▼코드

select ename, sal, comm

from emp

where comm = (sal + sal*0.1);

상여금이 급여보다 많은 사람

▼코드

select ename, sal, comm

from emp

where comm >= sal * 1.1;

Q.EMP 테이블에서 job이 CLERK이거나 ANALYST이고 sal이 1000, 3000, 5000이 아닌  사원의 모든 정보를 조회하는 SELECT 문을 작성


A.해결

오류

▼코드

select *

from emp

where job = 'CLERK' or 'ANALYST' and sal != 1000 or sal != 3000 or sal !=5000;

설명

in을 써보는게 좋습니다.

만약 or 이나 != 를 쓰면 줄 수가 길어집니다.

▼코드

select *

from emp

where job in('CLERK', 'ANALYST') and sal not in (1000, 3000, 5000);


Q.EMP 테이블에서 (ename에 L이 두 자 이상이 포함되어 있고 deptno가 30)이거나 mgr이 7782인 사원의 모든 정보를 조회하는 SELECT 문을 작성


A.해결

설명


▼코드

select *

from emp

where ename like '%L%L%' and deptno = 30 or mgr = 7782;












  1. 틀린부분 [본문으로]

'JAVA 공책 > 알고리즘 문제' 카테고리의 다른 글

DB(Oracle)_Join_연습문제  (0) 2018.07.26
DB(Oracle)_그룹함수_연습문제  (0) 2018.07.26
0723_선생님이 주신 문제.  (0) 2018.07.23
문제풀기1  (0) 2018.07.19
실습 해보기  (0) 2018.07.18