21.11.09
: DB개발로 스키마, 쿼리문을 이용한 게시판 운영
I. DB개발하기
1)원래의 게시판 객체는(ex.board) 삭제한다.
| DROP TABLE board CASCADE CONSTRAINTS;
| DROP SEQUENCE board_seq;
2)게시판 관련 객체들을 생성 및 시퀸스(글번호, 제목, 내용, 작성자, 작성일, 조회수)
2-1)컬럼이름, 타입, 문자열인 경우 크기 필수
객체 뒤 → Datatype
Datatype 뒤 괄호 안 → 타입크기(단위:Byte) (정형데이터:SQL)
2-2)"글 번호는 중복이 되면 안되고, 데이터가 없는 것(NULL)도 안된다."
→ PRIMARY KEY(기본키)
2-3)"제목, 내용, 작성자는 사용자가 꼭 입력해서 넣어야 한다."
→ NOT NULL
2-4)똑같은 데이터로 넣어지는 것(NULLABLE)
작성일 - 항상 현재 날짜와 시간(SYSDATE)
조회수(0) → DEFALUT
| CREATE TABLE board(
no NUMBER PRIMARY KEY,
title VARCHAR2(300) NOT NULL,
content VARCHAR2(3000) NOT NULL,
writer VARCHAR2(30) NOT NULL,
writeDate DATE DEFAULT SYSDATE,
hit NUMBER DEFAULT 0
);
| CREATE SEQUENCE board_seq;
3)샘플 데이터 삽입(INSERT INTO)
3-1)글 번호(자동 - 객체: 시퀸스), 제목, 내용, 작성자
| INSERT INTO board(no, title, content, writer)
VALUES(board_seq.NEXTVAL, '자바란?', '프로그램 언어', '홍길동');
4)COMMIT; 후 SELECT 명령문을 이용해 데이터를 확인한다.
| COMMIT;
| SELECT * FROM board;
F5 버튼을 눌러(스크립트 실행)출력이 잘 되는지 확인한다.
II. 게시판 운영
[게시판 운영 쿼리]
1.게시판 리스트 쿼리 - SELECT : 여러개
- 보여줄 데이터: 글 번호, 제목, 작성자, 작성일, 조회수
- 최신글이 상단에 위치해야 한다. → no가 크면 최신글(DESCending:내림차순↔ASCEnding:오름차순)
- SELECT * FROM board; -- * :여러개를 대표하는 와일드 카드 문자(모든 column(열))
- 예제 데이터 여러개 만들기
| INSERT INTO board(no, title, content, writer)
(SELECT board_seq.NEXTVAL, title, content, writer FROM board);
COMMIT;
- 글 번호 내림차순 정렬하기
| SELECT no, title, writer, writedate, hit
ORDER BY no DESC;
2.게시판 글 보기 쿼리 - SELECT : 한개
- 글 번호(PK) 2 - 스크립트에 존재하는 글번호
- 보여줄 데이터 - 글번호, 제목, 내용, 작성자, 작성일, 조회수
- 비교의 WHERE. = 오른쪽의 데이터를 왼쪽으로 저장 / WHERE 안에서 사용되는 = 비교의 같다.
| SELECT no, title, content, writer, writedate, hit
FROM board
WHERE no = 2;
* SELECT 명령문(리스트, 글보기)은 데이터가 변경되지 않았기 때문에 COMMIT;을 필요로 하지 않는다.
3.게시판 글 등록 쿼리 - INSERT
- 사용자에게 제목, 내용, 작성자를 입력 받는다.
- PK에 해당하는 no는 시퀸스인 board_sqe.NEXTVAL을 인용한다.
| INSERT INTO board(no, title, content, writer)
VALUES (BOARD_SEQ.nextval, '오라클', '데이터베이스', '관리자');
COMMIT;
4.게시판 글 수정 쿼리 - UPDATE
- 사용자가 수정할 수 있는 데이터 : 제목, 내용, 작성자
| UPDATE board
SET title = '오라클이란', content = 'DBMS', writer = '홍길동'
WHERE no = 2;
COMMIT;
5.게시판 글 삭제 쿼리 - DELETE
ex)3번글의 데이터를 삭제한다.
| DELETE FROM board
WHERE no = 3;
COMMIT;
'데이터베이스 > 데이터베이스 기초' 카테고리의 다른 글
Oracle과 SQL Developer (0) | 2021.11.08 |
---|
댓글