일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 어노테이션 #@WebServlet #WebServlet #
- QUERY #DML #SQL문 #내림차순정렬 #오름차순정렬
- cos.jar #cos드라이버 #파일업로드드라이버 #루피는귀여워 #마이바티스 #MyBatis #마이바티스sql #마이바티스DB #마이바티스jsp #마이바티스이클립스 #mapper #config.xml #마이바티스다운로드
- sql #오라클 #불리언형 #boolean #webjava #java #jsp #Mybatis #마이바티스 #마이바티스환경설정 #모델1 #모델1프로그래밍 #Batis #마이바티스다운로드 #web설정 #웹프로그래밍 #게시판 #게시판제작 #게시판만
- View #
- 기말고사 #방통대기말고사 #방통대후기 #방통대기말고사후기 #방통대2023년1학기 #방통대1학기 #방통대C프로그래밍 #방통대장학금 #방통대영어회화1
- Controller
- jsp #게시판만들기 #자바로게시판만들기 #웹테스트 #JNDI #myora #Oracle #오라클 #DAO #DTO #아파치톰캣 #웹자바셋팅 #모델1 #모델1방식 #모델1방식웹프로그래밍 #웹프로그래밍
- web.xml #배포지시자 #서블릿테스트
- 정처기3회 #정보처리기사2023
- Model #
- 자바웹프로그래밍
- 서블릿 #자바모델1 #자바모델2 #mvc #mvc패턴
- union #sql99 #외부조인 #오라클조인 #sql조인 #자체조인 #비등가조인 #비등가조인 #테이블복사 #오라클테이블 #null인데이터출력
- 정처기 #정처기필기 #정보처리기사 #정보처리기사필기 #정보처리기사2023 #정처기2023 #정처기3회 #정보처리기사3회 #정보처리기사실기 #정처기실기 정처기합격
- java #array #자바 #배열 #프로그래밍 #코딩 #자바프로그래밍
- 서블릿선언 #서블릿선언방법 #
- 방통대 #방송통신대학교 #컴퓨터과학 #컴퓨터과학과 #컴과 #방통대컴퓨터과학과 #방통대컴과 #방통대파이썬 #방통대C #방통대자바
- spring #스프링 #전자정부표준프레임워크 #표준프레임워크 #자바스프링 #스프링다운로드 #자바스크립트 #웹프로그래밍설정 #웹프로그래밍셋팅
- 갤러리제작 #갤러리만들기 #jsp갤러리 #jsp게시판 #jsp프로그래밍 #jsp웹프로그래밍 #jsp웹 #jsp모델1방식 #사진업로드 #jsp사진업로드 #jdbc6 #jdbc드라이버다운 #jdbc드라이버무료다운
- ORACLE #TIGER #SCOTT #SCOTT계정 #오라클학습계정 #프로그래밍 #SQL #SQLORACLE #오라클 #오라클연습 #오라클연습계정 #오라클연습문제 #WHERE절 #오라클조건절
- 자바 #웹자바 #JAVA #WEB #WEBJAVA #WEBPROGRAMMING #웹 #웹프로그래밍 #코딩 #CODING #모델1 #모델2 #모델1방식 #모델2방식
- 정처기필기합격 #정처기합격후기
- 자바 #웹자바 #webJava #java #코딩 #코딩초보 #ojdbc #서블릿 #자바서블릿 #javaServelet #servelet #httpServlet
- 마이바티스환경설정
- Init-param #context-param #
- 8 실무에서 가장 많이 사용하는 SQL
- html #자바와서블릿 #자바와웹연결 #웹연결
- Doit #Doit오라클 #Doit시리즈 #연습문제
- tern다운로드 #메이븐다운로드 #maven #스프링라이브러리 #자바라이브러리 #톰캣설정 #WAS #웹어플리케이션서버
- Today
- Total
장미의 개발일기
Do it! 오라클로 배우는 데이터베이스 입문 : 연습문제 9 본문
오라클 학습용 계정 scott 로그인:
9 SQL문 속 또 다른 SQL문, 서브쿼리
연습문제 page 262
늘 힘들었지만 오늘 특히나 힘들었다 ㅠㅠㅠ
1번문제부터 막혀서 미치는 줄...
DEPT테이블하고 EMP 테이블의 열을 뽑아내는 문제는 익숙한데,
SALGRADE 요 테이블이 낯설어... 2,4번 문제에 나왔는데 멘붕와서 시간 엄청 날림
솔직히 조인쓰면 풀만했는데, 서브쿼리 공부하는게 목적이니 서브쿼리로 어떻게 푸나 계속 화면 봤음
SALGRADE는 EMP 테이블의 SAL열과 관련이 있지만, 딱 일치하는게 아니라서 범위로 어떻게 잡나
이것저것 찾아봄 사실 이 테이블 자체에 대해 잘 몰랐네
그렇게 시간 헛보내다가 조인먼저 써서 풀고 그걸 보고 조인 안쓰는걸로 변환하는 방식으로 해보니, 되긴 되더라
헤맨 시간이 허무할정도로 한번 하고나니 쭉 풀림 특히 4번이 너무 간단해서 ...너무 허무했다
----------------------------------
(문제는 아래에 사진으로)
4번문제 코드/ 4번만 코드 4개다.
조인쓴거 2개, 안쓴거 2개, 교재문제에 다중행 함수 쓰거나 안쓴거 둘다 하라길래 했음 그래서 총 4개
SALGRADE 테이블 때문에 걱정했는데, 다행히 결과 다 똑같이 출력 됌
--4번문제
--조인쓴거
SELECT EMPNO, ENAME, SAL, GRADE
FROM EMP E, SALGRADE S
WHERE SAL > (SELECT MAX(SAL) FROM EMP WHERE JOB='SALESMAN')
AND (E.SAL BETWEEN S.LOSAL AND S.HISAL)
ORDER BY E.EMPNO;
--조인쓴거: 다중행 함수 미사용 (MAX) /SAL > ALL
SELECT EMPNO, ENAME, SAL, GRADE
FROM EMP E, SALGRADE S
WHERE SAL > ALL (SELECT SAL FROM EMP WHERE JOB='SALESMAN')
AND (E.SAL BETWEEN S.LOSAL AND S.HISAL)
ORDER BY E.EMPNO;
--조인 미사용
SELECT DISTINCT EMPNO, ENAME, SAL,
(SELECT GRADE FROM SALGRADE WHERE SAL>=LOSAL AND SAL<= HISAL) AS GRADE
FROM EMP E, SALGRADE S
WHERE SAL > (SELECT MAX(SAL) FROM EMP WHERE JOB='SALESMAN')
ORDER BY E.EMPNO;
--다중행 함수 미사용 (MAX) /SAL > ALL
SELECT DISTINCT EMPNO, ENAME, SAL,
(SELECT GRADE FROM SALGRADE WHERE SAL>=LOSAL AND SAL<= HISAL) AS GRADE
FROM EMP E, SALGRADE S
WHERE SAL > ALL (SELECT SAL FROM EMP WHERE JOB='SALESMAN')
ORDER BY E.EMPNO;
조인 안쓰니까 아래처럼 중복이 미친듯이 되어 나오더라.
하지만 난 바로 DISTICT을 생각해내서 EMPNO에 넣었음 해결 끝 ㅋ
그리고 다중행 함수 쓴거 안쓴거 차이
SAL > (SELECT MAX(SAL)
SAL > ALL
-포인트는 MAX를 쓰면 다중연산자를 안써줘도 된다.
3,4번문제
3번문제 : 이건 EXISTS 써서 해보려 해는데, 이 키워드 특징이 답 없으면 걍 출력화면에 암것도 안뜨는 거라;;
쓸 수가 없었다 ㅠㅠㅠ 방법이 있을거 같은데...
SELECT EMPNO, ENAME, JOB, DEPTNO, DNAME, LOC
FROM EMP , (SELECT DNAME, LOC FROM DEPT WHERE DEPTNO =10) D
WHERE JOB NOT IN (SELECT JOB FROM EMP WHERE DEPTNO=30)
AND DEPTNO = 10;
1,2번 문제
1,2번 문제 코드:
조인안쓰니 정렬이 틀어져서 ORDER BY추가해줌
--1번문제-----------------------------------------------------
--조인쓴거
SELECT JOB, EMPNO, ENAME, SAL, E.DEPTNO, DNAME
FROM EMP E, DEPT D
WHERE JOB = (SELECT JOB FROM EMP WHERE ENAME = 'ALLEN') --단일행 서브쿼리
AND E.DEPTNO = D.DEPTNO;
--조인안쓴거
SELECT JOB, EMPNO, ENAME, SAL, E.DEPTNO,
(SELECT DNAME FROM DEPT WHERE DEPTNO=E.DEPTNO) AS DNAME
FROM EMP E
WHERE JOB = (SELECT JOB FROM EMP WHERE ENAME = 'ALLEN') --단일행 서브쿼리
ORDER BY SAL DESC;
-----------------------------------------------------------------
--2번문제
--조인 사용
SELECT EMPNO,ENAME, D.DNAME,
TO_CHAR(HIREDATE,'YYYY-MM-DD') AS HIREDATE,
D.LOC,
E.SAL,
S.GRADE
FROM EMP E, SALGRADE S, DEPT D
WHERE SAL > (SELECT AVG(NVL(SAL,0)) FROM EMP)
AND E.DEPTNO=D.DEPTNO
AND (E.SAL BETWEEN S.LOSAL AND S.HISAL)
ORDER BY E.SAL DESC, E.EMPNO ASC;
--SAL > 여기에 다중연산자 안들어가도 되나??
-- 조인안쓴거
SELECT EMPNO,ENAME,
(SELECT DNAME FROM DEPT WHERE DEPTNO = E.DEPTNO) AS DNAME,
TO_CHAR(HIREDATE,'YYYY-MM-DD') AS HIREDATE,
(SELECT LOC FROM DEPT WHERE DEPTNO = E.DEPTNO) AS LOC,
SAL,
(SELECT GRADE FROM SALGRADE WHERE SAL>=LOSAL AND SAL<= HISAL) AS GRADE
FROM EMP E
WHERE SAL > (SELECT AVG(NVL(SAL,0)) FROM EMP)
ORDER BY SAL DESC, EMPNO ASC;
* SCOTT계정의 SALGRADE 테이블 **
--GRADE COL : 1~5등급 , 1등급이 급여 최고로 낮은 등급
SELECT GRADE FROM SALGRADE WHERE LOSAL <= 1600 AND HISAL >= 1600; --3 등급
//뭘 할지 모르겠었을 때, 세일즈맨 조건으로 등급 구해본거 같은데... 코드가 어디갔는지 안보임
이게 사실 왜 되는지 아직도 좀 헷갈리지만...
EMP테이블하고 SALGRADE 테이블하고 연결접점 (?) 코드다 서브쿼리로 작성
SELECT * FROM EMP E, SALGRADE S WHERE E.SAL BETWEEN S.LOSAL AND S.HISAL;
'개발일기 > Oracle' 카테고리의 다른 글
오라클 JOIN ,UNION ,UNION ALL (집합연산자), 연습문제 (0) | 2023.05.13 |
---|---|
Do it! 오라클로 배우는 데이터베이스 입문 : 연습문제 8,9 다시 (0) | 2023.05.13 |
Do it! 오라클로 배우는 데이터베이스 입문 : 연습문제 8 (0) | 2023.05.11 |
Do it! 오라클로 배우는 데이터베이스 입문 : 연습문제 7 (0) | 2023.05.10 |
Do it! 오라클로 배우는 데이터베이스 입문 : 연습문제 6 (0) | 2023.05.09 |