본문 바로가기
study/Oracle

[Oracle] 3. NULL, 중복 제거(DISTINCT), 조건문 (BETWEEN, IN, LIKE), 정렬(ORDER BY), 집합(UNION) TEST 풀이

by 금이패런츠 2022. 3. 3.
728x90
반응형
-- 1.학생이 소속된 학과번호(deptno1)를 중복되는 행은 제외하고 출력하여라.
select distinct deptno1 from student

-- 2 professor 테이블에서 직급이 정교수인 교수의 이름과  부서코드, 직급 출력하기
select name, deptno, position from professor
where position='정교수'

-- 3. 학생 테이블에서 학생 이름과키,몸무게, 표준체중을 출력하기
--    표준 체중은 키에서 100을 뺀 값에 0.9를 곱한 값이다.
select name,height,weight, (height-100) * 0.9 표중체중 
from student

-- 4. 101 번 학과 학생 중에서 3학년 이상인 학생의 이름, 아이디, 학년을 출력하기
select name,id,grade from student
where deptno1=101 and grade >=3

-- 5. 비교 연산자와 SQL 연산자(between)를 사용하여 
-- 키가  165 이상 175 이하인 학생의 이름, 학년, 키를 출력하여라.
select name,grade,height from student
where height between 165 and 175

select name,grade,height from student
where height >= 165 and height <= 175

-- 6. 학생 중 이름의 끝자가 '호'인 학생의 학번, 이름, 부서코드 출력하기
select studno,name,deptno1 from student
where name like '%호'

-- 7.  학생 중 전화번호(tel)가 서울지역(02)인 학생의 이름, 학번, 전화번호 출력하기 
select name,studno,tel from student
where tel like '02%'

-- 8. 학생 중  id에 'm'문자를 가지고 있는 학생의 이름,  id,  학과번호1을 출력하기
select name, id, deptno1 from student
where id like '%m%'

-- 9. 학생 테이블에서 학년이 2학년과 3학년이고, 학과가 101이거나 201인 학생의
-- 학번, 이름, 학년, 학과를 출력하기.
-- 단  between  과  in 연산자를 사용하여 출력하기
select studno,name,grade,deptno1 from student
where grade between 2 and 3 and deptno1 in (101,201)

select studno,name,grade,deptno1 from student
where grade in (2,3) and deptno1 in (101,201)

-- 10. EMP 테이블에서 급여가 1300에서 1700 사이인 
-- 사원의 성명, 업무, 급여, 부서번호(deptno)를 출력하여라.
select ename,job,sal,deptno from emp
where sal between 1300 and 1700

-- 11. EMP테이블에서 사원번호(empno)가 7902, 7788, 7566 인 사원의 사원번호, 성명, 업무(job), 
-- 급여, 입사일자(hiredate)를 출력하여라.
select empno,ename, job,sal, hiredate from emp
where empno in (7902, 7788, 7566)

-- 12. EMP 테이블에서 이름의 첫 글자가 ‘M’인 사원의 이름, 급여를 조회하라.
select ename, sal from emp
where ename like 'M%'

-- 13. EMP 테이블에서 급여가 1100 이상이고, JOB이 MANAGER 인
--     사원의 사원번호, 성명, 담당업무, 급여, 입사일자, 부서번호를 출력하여라.
select empno,ename, job,sal,hiredate, deptno from emp
where sal >= 1100 and job = 'MANAGER'

-- 14. EMP 테이블에서 JOB이 PRESIDENT이고 급여가 1500 이상이거나 업무가 SALESMAN인 
--     사원의 사원번호, 이름, 업무, 급여를 출력하여라
select empno,ename,job,sal from emp 
where ( job='PRESIDENT' and sal >=1500 ) or job='SALESMAN'

select empno,ename,job,sal from emp 
where  job='PRESIDENT' and sal >=1500  or job='SALESMAN'

-- 15. EMP 테이블에서 보너스(comm)가 없는 
-- 사원의 사원번호, 이름, 업무, 급여, 입사일자, 부서번호를 출력하여라.
select empno,ename,job,sal,hiredate,deptno from emp
where comm is null

-- 16. 교수테이블에서 교수들의 이름 중 성씨에 ㅇ이 포함된 사람의 교수이름을 출력하기
select name from professor
where name >= '아' and name < '자'

-- 16. EMP 테이블에서 급여가 1100 이상이고, JOB이 MANAGER 인 
-- 사원의 사원번호, 성명, 담당업무, 급여, 입사일자, 부서번호를 출력하여라.
select empno,ename,job,sal,hiredate,deptno from emp
where sal >= 1100 and job='MANAGER'

-- 17. EMP 테이블에서 급여가 1100 이상이거나, 
-- 이름이 M으로 시작하지 않는 사원의 사원번호, 성명, 담당업무, 급여, 입사일자, 부서번호를 출력하여라.
select empno,ename,job,sal,hiredate,deptno from emp
where sal >= 1100 or  ename not like 'M%'

-- 18. EMP 테이블에서 JOB이 MANAGER , CLERK, ANALYST가 아닌 
--    사원의 사원번호, 성명, 업무, 급여, 부서번호를 출력하여라.
select empno,ename, job,sal, deptno from emp
where job not in ('MANAGER' , 'CLERK', 'ANALYST')

-- 19. EMP 테이블에서 부서별로 담당하는 업무를 한번씩 조회하라. 
-- 단, 부서별,업무별 정렬해서 조회하기
select distinct deptno,job from emp
order by deptno,job

-- 20. 학생테이블에서 지도교수(profno)가 배정되지 않은 
-- 학생의 학번, 이름, 지도교수번호, 학과코드 출력
-- 단 학과코드 순으로 정렬하기
select studno, name, profno, deptno1 from student
where profno is null
order by deptno1
728x90
반응형