11일 차 특이사항
1. 캡슐화, 상속, 추상화, 다형성이란 무엇인지 영상 시청하면서 출근.
2. SQL 6번, 7번에서 막혔다. JOIN? UNION? 무엇을 사용해서 테이블을 합쳐야 하는지 모르겠다. 테이블의 칼럼명과 개수가 다르다. → null값을 임의로 넣어줘서 해결하긴 했으나 정답인지는 모르겠다.
3. 게시판 상세보기 페이지를 페이지 전환 없이 화면에 보이기. 나는 페이지 하나 더 만들어버렸음. 페이지 전환 없는 상세페이지 및 수정하기를 만들어보자.
4. 그냥 새로 프로젝트를 만들어서 처음부터 해보려고 한다. 기존의 내 코드와 팀장님 코드가 너무 다르기 때문이다. 가져와서 쓰려고 하니 오류가 계속 난다. 새 프로젝트로 이해하고 옮겨보자.
5. 새로 프로젝트를 만드니 이제 mapping이 되지 않는다. 뭐가 문제일까? web.xml 설정이 문제였다. 컨트롤러도 다시 설정해 줬다.
6. 프로젝트를 처음부터 다시 만들고 있다. 반복하다 보면 이해되는 것이 있을 것이다. 결국 해낼 것이다.
SQL 문제 풀어보기
SQL 문제 정리
테이블 : dept, emp, project
1. 커미션(comm)이 없는 사원의 정보 검색
- (사원번호, 사원이름, 직업, 부서코드, 프로젝트코드, 연봉, 커미션)
2. 직업이 ('MANAGER','CLERK')인 사원의 정보검색
- (사원번호, 사원이름, 직업, 부서코드, 프로젝트코드, 연봉)
3. 입사일(hiredate)가 81년도 이면서 연봉(sal)이 3000 이상인 사원정보검색
- (사원번호, 사원이름, 연봉, 입사일(0000년00월00일))
4. 각 부서별 사원수
- (부서코드, 부서명, 사원수)
5. 각 부서별 프로젝트 총 기간?
- (부서코드, 부서명, 프로젝트 기간)
6. (dept, emp, project) UNION을 사용하여 하나의 테이블로 완성
(결과 총 22개의 데이터 검색)
- 컬럼개수와 이름이 일치하지 않아서 합치기 힘들다. deptno와 project_code를 각각 추가해주면?
7. 부서별 사원의 연봉을 내림차순으로 정렬
- (부서코드, 부서명, 연봉, 랭크)
문제 정답 - 정답이 아닐 수 있음. 6번과 7번은 솔직히 잘 모르겠다.
-- 1번 문제
SELECT EMPNO, ENAME, JOB, DEPTNO, PROJECT_CODE, SAL, COMM
FROM EMP
WHERE COMM IS NULL;
-- 2번 문제
SELECT EMPNO, ENAME, JOB, DEPTNO, PROJECT_CODE, SAL
FROM EMP
WHERE JOB='CLERK' OR JOB='MANAGER';
-- 3번 문제
SELECT EMPNO, ENAME, SAL, HIREDATE
FROM EMP
WHERE HIREDATE BETWEEN '1981/01/01' AND '1981/12/31' AND SAL >= 3000;
-- 4번 문제
SELECT A.DEPTNO, A.DNAME, COUNT(B.DEPTNO) AS EMPLOYEE_COUNT
FROM DEPT A
LEFT OUTER JOIN EMP B
ON A.DEPTNO = B.DEPTNO
group by A.DEPTNO, A.DNAME;
-- 5번 문제
SELECT SUM(PROJECT_TERM)
FROM PROJECT;
-- 6번 문제(UNION활용) NULL 값을 임의로 넣어줌
SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO, PROJECT_CODE
FROM EMP
UNION ALL
SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, DEPTNO, NULL
FROM DEPT
UNION ALL
SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, PROJECT_CODE
FROM PROJECT;
심화문제
DB_STUDY_EXAMP1 테이블 참조하여 db교육_심화 이미지의 오른쪽 내용으로 보이게 쿼리문짜기
팀장님의 조언
1. 게시글 제목의 링크가 파란색으로 나오는데 CSS로 설정해 주면 사라진다. 찾아보고 적용해 볼 것.
2. 상세 보기 페이지를 만들지 말고 한 페이지 안에서 해결해야 함.
3. where 조건문 빠지면 안 된다. spring에서 db로 넘어가면 자동으로 커밋된다. 그래서 롤백하기가 힘들다.
4. or을 합친 함수가 in이다.
5. 쿼리문을 여러 번 실행시키는 것은 효율이 좋지 않다. 쿼리문이 반복되지 않도록 하는 것이 좋다.
6. mybatis foreach문 검색해서 정리해 보기.
'일경험' 카테고리의 다른 글
[국민취업지원제도 일경험프로그램 13일차] SQL 문제 풀이 및 함수 정리 (2) | 2023.08.18 |
---|---|
[국민취업지원제도 일경험프로그램 12일차] SQL 문제 풀이(JOIN) (0) | 2023.08.17 |
[국민취업지원제도 일경험프로그램 10일차] 게시판 체크박스로 삭제하기 (0) | 2023.08.15 |
[국민취업지원제도 일경험프로그램 9일차] 게시판 상세페이지 만들기 (1) | 2023.08.11 |
[국민취업지원제도 일경험프로그램 8일차] 게시판 글쓰기 기능 : jsp에서 db로 데이터 보내기 (0) | 2023.08.11 |