티스토리 뷰
1. Foreign key에 대하여 설명하시오.
부모(deptno)에 있는 deptno를 자식(emp)가 가져다 쓰는 것을 말한다.
자식쪽는 부모쪽에 들어 있는 값(deptno)만 올 수 있도록 하기 위해 사용.
2.아래의 SQL 문을 실행 하시오.
--18> 모든 사원의 이름(첫 글자는 대문자로, 나머지 글자는 소문자로 표시) 및 이름 길이를
--표시하는 쿼리를 작성하고 컬럼 별칭은 적당히 넣어서 출력하라.
--19> 사원의 이름과 커미션을 출력하되, 커미션이 책정되지 않은
--사원의 커미션은 'no commission'으로 출력하라.
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
32
33
34
35
36
37
|
-- PRIMARY KEY
-- 실무에서는 직접 지정해주는 경우보다 툴을 이용해 설정해주는 경우가 많다.
-- 마우스 오른쪽 버튼 > 테이블 편집 들어가서 보면 열쇠모양 아이콘이
-- 있는 것이 프라이머리 키가 설정된 것이다.
-- UNIQUE + NOT NULL
CREATE TABLE EMP05(
EMPNO NUMBER(4)
CONSTRAINT EMP05_EMPNO_PK PRIMARY KEY,
ENAMR VARCHAR2(10) CONSTRAINT EMP05_ENAME_NN NOT NULL,
JOB VARCHAR(9),
DEPTNO NUMBER(2)
);
COMMIT;
INSERT INTO emp05 VALUES(7499, 'ALLEN', 'SALESMAN', '20');
-- FORFIGN KEY
-- 부모(deptno)에 있는 deptno를 자식(emp)가 가져다 쓰는 것을 말한다.
-- 자식쪽에서도 부모쪽에 들어갈 수 있는(들어 있는)값만 올수 있도록 하기 위해 사용.
-- 연습문제
-- 직업이 Clerk 또는 Analyst 이면서 급여가 1000,3000,5000 이 아닌
-- 모든 사원의 이름, 직업 및 급여를 출력하라.
SELECT ename, job, sal FROM emp WHERE job in('CLERK', 'ANALYST') and sal not in(1000, 3000, 5000);
-- 사원번호, 이름, 급여 그리고 15%인상된 급여를 정수로 표시하되 컬럼명을
-- New Salary로 지정하여 출력하라.
SELECT empno, ename, sal, ROUND(sal + sal*0.15) AS "New Salary" FROM emp;
-- 모든 사원의 이름(첫 글자는 대문자로, 나머지 글자는 소문자로 표시) 및 이름 길이를
-- 표시하는 쿼리를 작성하고 컬럼 별칭은 적당히 넣어서 출력하라.
SELECT INITCAP (ename), LENGTH (ename) FROM emp;
-- 사원의 이름과 커미션을 출력하되, 커미션이 책정되지 않은
-- 사원의 커미션은 'no commission'으로 출력하라.
SELECT ename,NVL(To_char(comm),'no commisiion') FROM emp;
|
cs |
3. 게시판에서 아래의 쿼리(SQL 문)를 정리 하시오.
- list 쿼리
String query = "SELECT * FROM mvc_board ORDER BY bgroup DESC, bstep ASC";
- 답글 insert를 위한 쿼리
reply
String query = "insert into mvc_board (bid, bname, btitle, bcontent, bgroup, bstep, bindent) "
+ "values (mvc_board_seq.nextval, ?, ?, ?, ?, ?, ?)";
replyShape
String query = "update mvc_board set bstep = bstep + 1 where bgroup = ? and bstep > ?";
- 업데이트 쿼리
upHit
String query = "update mvc_board set bhit = bhit + 1 where bid = ?";
modify
String query = "UPDATE mvc_board SET bname = ?, btitle = ?, bcontent = ? WHERE bid = ?";
- 삭제 쿼리 (delete)
String query = "DELETE FROM mvc_board Where bid = ?";
- insert 쿼리 (write)
String query = "insert into mvc_board (bid, bname, btitle, bcontent, bhit, bgroup, bstep, bindent) values (mvc_board_seq.nextval, ?, ?, ?, 0, mvc_board_seq.currval, 0, 0 )";
개별 진척도 70번
to do list 기법
1. 설계도 외우기
2. 프로젝트 생성
3. 라이브러리 3개 집어넣기 lib파일안에
4. dto만들기 - edu.kosmo.ex.dto
DESC mvc_board; 컬럼명 BDto 클래스 안에 주석으로 붙여 넣고 보면서 만들기
5. dao 만들기 - edu.kosmo.ex.dao
- 멤버 변수로 DataSource 주기.
- 생성자...(Context 객체 생성, dataSource에 context.lookup 값 넣어주고 형변환 꼭 해주기)
- arraylist<BDto> list()
- String query = "SELECT * FROM mvc_board ORDER BY bgroup DESC, bstep ASC";
- 커넥션 풀
- 쿼리를 실행해 mvc_board에 있는 내용을 가져올 while 문....(rs.next())
- while문으로 불러온 내용을 dto 객체에 넣어주고 arrylist 객체(dtos)에 dto를 넣어준다...add
- 마지막에 finally로 ResultSet, preparedStatement, connection 순서로 꼭 close해주기!
6. BCommand 인터페이스 만들기! - edu.kosmo.ex.command
- void execute(HttpServletRequest request, HttpServletResponse response) 추상 함수 넣어주기!
7. BListCommand 만들기 (BCommand 상속) - edu.kosmo.ex.command
- Dao 객체 생성
- list 함수 호출
- request 객체 안에 게시판 넣기 (key - "list", value - dtos)
8. Servlet 객체 만들기 (BController)
- *.do 설정
- actionDo 함수 만들기
- 명령어 해석
String uri = request.getRequestURI();
String conPath = request.getContextPath();
String com = uri.substring(conPath.length());
- 명령어 해석후 BListCommand 객체 생성
if(com.equals("/list.do")) {
command = new BListCommand();
command.execute(request, response);
viewPage = "list.jsp";
}
- 파파라치 객체 설정 ★ - 자주 까먹고 안넣어주니까 주의!!
RequestDispatcher dispatcher = request.getRequestDispatcher(viewPage);
dispatcher.forward(request, response); - 페이지 포워딩!! 이것 때문에 다른 페이에서 request 객체를 공유해서 사용 가능
9. list.jsp 만들기
- UTF-8 세팅
- JSTL 지시자 넣기 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- 댓글 RE 다는 부분 주의 할것.
<table width="500" border="1">
<tr>
<td>번호</td>
<td>이름</td>
<td>제목</td>
<td>날짜</td>
<td>히트</td>
</tr>
<c:forEach var="dto" items="${list}">
<tr>
<td>${dto.bid}</td>
<td>${dto.bname}</td>
<td>
<c:forEach begin="1" end="${dto.bindent}">[Re]</c:forEach>
<a href="content_view.do?bid=${dto.bid}">${dto.btitle}</a>
</td>
<td>${dto.bdate}</td>
<td>${dto.bhit}</td>
</tr>
</c:forEach>
<tr>
<td colspan="5"><a href="write_view.do">글작성</a></td>
</tr>
</table>
'수업문제' 카테고리의 다른 글
[문제] 12월 10일 (DI, IOC, IOC 컨테이너, Spring 입문) (0) | 2021.12.10 |
---|---|
[문제] 12월 09일 (게시판 템플릿 적용하기) (0) | 2021.12.09 |
[문제] 12월 07일 (데이터 무결성, commit, rollback) (0) | 2021.12.07 |
[문제] 12월 06일(게시판 만들기, DML, DCL, DDL, 데이타 딕션러리, context.xml) (0) | 2021.12.07 |
- Total
- Today
- Yesterday
- abstract
- 예외처리
- 쿠키
- object
- 세션
- equals
- 참조형
- hashset
- 사칙연산 계산기
- Servlet
- 부트스트랩
- string
- exception
- el
- 제네릭
- TreeSet
- 채팅
- Session
- response
- 프로토콜
- 쓰레드
- compareTo
- Request
- 래퍼 클래스
- SOCKET
- 진척도 70번
- toString
- 입출력
- JSP
- Generic
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |