본문 바로가기
데이터베이스/데이터베이스 기초

스키마와 쿼리문을 이용한 게시판 운영

by 썬키 2021. 11. 9.

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

댓글