Closed koreayong19 closed 2 years ago
로그인화면 SQL 구문 SELECT FROM clients WHERE id=? AND pwd=? AND status_flag=0,1;(0은 탈퇴이므로 실패, 1은 로그인) 로그인화면 ( 관리자 ) SQL 구문 SELECT FROM admins WHERE id=? AND pwd=?;
회원가입화면 SQL 구문 INSERT INTO clients(id,pwd,client_roadaddr,client_addr,client_cellphone_no,nickname,status_flag) values(?,?,?,?,?,?,1);
코딩컨벤션을 지킨 버전을 보고 싶으면 아래 노션 주소의 프로젝트 일지 -> 07-01 금 으로 들어갈것 https://grand-saw-92f.notion.site/1-Project-a5f309f95dec4f44a80a36c0f250dd62
-- 다이어리 게시판 SQL 구문
-- 다이어리 게시판에 들어갔을때 1번째부터 10번째 다이어리 반환 (최신글 순) : 다이어리 번호, 다이어리 제목, 닉네임, 조회수, 좋아요수, 여행시작일자, 종료일자 반환 SELECT d.diary_no -- 나중에 뺄것 , d.diary_title , d.diary_writting_time , d.id , c.nickname , d.diary_start_date , d.diary_end_date , d.view_cnt , d.like_cnt FROM diaries d LEFT OUTER JOIN clients c ON (d.id = c.id) WHERE diary_flag = 1 -- 공개글만 반환 AND ROWNUM <= 10 -- 1~10번째 글만 반환 ORDER BY diary_writting_time DESC; -- 11~20번째 반환 SELECT * FROM (SELECT d.diary_no -- 나중에 뺄것 , d.diary_title , d.diary_writting_time , d.id , c.nickname , d.diary_start_date , d.diary_end_date , d.view_cnt , d.like_cnt , ROWNUM r FROM diaries d LEFT OUTER JOIN clients c ON (d.id = c.id) WHERE diary_flag = 1 -- 공개글만 반환 ORDER BY diary_writting_time DESC) WHERE r BETWEEN 11 AND 20;
-- 다이어리 게시판에서 1번째부터 10번째 다이어리 반환 (조회수 순) : 다이어리 번호, 다이어리 제목, 닉네임, 조회수, 좋아요수, 여행시작일자, 종료일자 반환 SELECT d.diary_no -- 나중에 뺄것 , d.diary_title , d.diary_writting_time , d.id , c.nickname , d.diary_start_date , d.diary_end_date , d.view_cnt , d.like_cnt FROM diaries d LEFT OUTER JOIN clients c ON (d.id = c.id) WHERE diary_flag = 1 -- 공개글만 반환 AND ROWNUM <= 10 -- 1~10번째 글만 반환 ORDER BY like_cnt DESC, diary_writting_time DESC; -- 11~20번째 반환 SELECT * FROM (SELECT d.diary_no -- 나중에 뺄것 , d.diary_title , d.diary_writting_time , d.id , c.nickname , d.diary_start_date , d.diary_end_date , d.view_cnt , d.like_cnt , ROWNUM r FROM diaries d LEFT OUTER JOIN clients c ON (d.id = c.id) WHERE diary_flag = 1 -- 공개글만 반환 ORDER BY like_cnt DESC, diary_writting_time DESC) WHERE r BETWEEN 11 AND 20;
-- 다이어리 게시판에서 1번째부터 10번째 다이어리 반환 (좋아요수 순) : 다이어리 번호, 다이어리 제목, 닉네임, 조회수, 좋아요수, 여행시작일자, 종료일자 반환 SELECT d.diary_no -- 나중에 뺄것 , d.diary_title , d.diary_writting_time , d.id , c.nickname , d.diary_start_date , d.diary_end_date , d.view_cnt , d.like_cnt FROM diaries d LEFT OUTER JOIN clients c ON (d.id = c.id) WHERE diary_flag = 1 -- 공개글만 반환 AND ROWNUM <= 10 -- 1~10번째 글만 반환 ORDER BY view_cnt DESC, diary_writting_time DESC; -- 11~20번째 반환 SELECT * FROM (SELECT d.diary_no -- 나중에 뺄것 , d.diary_title , d.diary_writting_time , d.id , c.nickname , d.diary_start_date , d.diary_end_date , d.view_cnt , d.like_cnt , ROWNUM r FROM diaries d LEFT OUTER JOIN clients c ON (d.id = c.id) WHERE diary_flag = 1 -- 공개글만 반환 ORDER BY view_cnt DESC, diary_writting_time DESC) WHERE r BETWEEN 11 AND 20;
-- 다이어리 게시판에 들어갔을때 1번째부터 10번째 다이어리 반환 (검색어로 검색할 경우) : 다이어리 번호, 다이어리 제목, 닉네임, 조회수, 좋아요수, 여행시작일자, 종료일자 반환
SELECT DISTINCT diary_no
, diary_title
, diary_writting_time
, id
, nickname
, diary_start_date
, diary_end_date
, view_cnt
, like_cnt
FROM (SELECT d.diary_no
, d.diary_title
, d.diary_writting_time
, d.id
, c.nickname
, d.diary_start_date
, d.diary_end_date
, d.view_cnt
, d.like_cnt
, r.route_content -- 나중에 뺄것
, r.route_no -- 나중에 뺄것
FROM diaries d
LEFT OUTER JOIN routes r ON (d.diary_no = r.diary_no)
LEFT OUTER JOIN sights s ON (r.sight_no = s.sight_no)
LEFT OUTER JOIN clients c ON (d.id = c.id)
WHERE diary_flag = 1 -- 공개글만 반환
AND (r.route_content LIKE '%경복궁%'
OR d.diary_title LIKE '%경복궁%'
OR s.sight_name LIKE '%경복궁%')
AND ROWNUM <= 10 -- 1~10번째 글만 반환
ORDER BY diary_writting_time DESC);
--2~20번째 (하는중)
SELECT *
FROM (SELECT DISTINCT diary_no
, diary_title
, diary_writting_time
, id
, nickname
, diary_start_date
, diary_end_date
, view_cnt
, like_cnt
, ROWNUM r
FROM (SELECT d.diary_no
, d.diary_title
, d.diary_writting_time
, d.id
, c.nickname
, d.diary_start_date
, d.diary_end_date
, d.view_cnt
, d.like_cnt
, r.route_content -- 나중에 뺄것
, r.route_no -- 나중에 뺄것
FROM diaries d
LEFT OUTER JOIN routes r ON (d.diary_no = r.diary_no)
LEFT OUTER JOIN sights s ON (r.sight_no = s.sight_no)
LEFT OUTER JOIN clients c ON (d.id = c.id)
WHERE diary_flag = 1 -- 공개글만 반환
AND (r.route_content LIKE '%경복궁%'
OR d.diary_title LIKE '%경복궁%'
OR s.sight_name LIKE '%경복궁%')
ORDER BY diary_writting_time DESC)
)
WHERE r BETWEEN 2 AND 20 ;
-- 내 전체 다이어리 보기 SQL 구문
-- 내 전체 다이어리 보기 에 들어갔을때 1번째부터 10번째 다이어리 반환 : 다이어리 번호, 다이어리 제목, 닉네임, 조회수, 좋아요수, 여행시작일자, 종료일자 반환, 공개여부 SELECT d.diary_no -- 나중에 뺄것 , d.diary_title , d.diary_writting_time , d.id , c.nickname , d.diary_start_date , d.diary_end_date , d.view_cnt , d.like_cnt FROM diaries d LEFT OUTER JOIN clients c ON (d.id = c.id) WHERE d.id = 'koreaman@naver.com' -- 현재 로그인 중인 계정 AND ROWNUM <= 10 -- 1~10번째 글만 반환 ORDER BY diary_writting_time DESC; -- 6~20번째 반환 SELECT * FROM (SELECT d.diary_no -- 나중에 뺄것 , d.diary_title , d.diary_writting_time , d.id , c.nickname , d.diary_start_date , d.diary_end_date , d.view_cnt , d.like_cnt , ROWNUM r FROM diaries d LEFT OUTER JOIN clients c ON (d.id = c.id) WHERE d.id = 'koreaman@naver.com' -- 현재 로그인 중인 계정 ORDER BY diary_writting_time DESC) WHERE r BETWEEN 6 AND 20;
--내 계정화면 SQL구문
INSERT INTO clients(id, pwd, client_roadaddr, client_addr, client_cellphone_no, nickname) VALUES('?', '?', '?', '?', '?', '?')
--내 계정 정보 업데이트 SQL구문
UPDATE clients SET pwd = '?' ,client_roadaddr = '?' ,client_addr = '?' ,client_cellphone_no = '?' ,nickname = '?' WHERE id = 'koreaman@naver.com'; --업데이트 할 id값
SELECT * FROM clients;
--회원탈퇴 UPDATE CLIENTS SET STATUS_FLAG = '0' --0 탈퇴 , WHERE ID = 'koreaman@gmail.com';
--관광지 정보 SQL INSERT INTO sights VALUES (sight_no_seq.NEXTVAL , 1 , '?' , '?' , 10001 , '?' );
--광역자치단체 정보보기 SQL SELECT region_no , region_name FROM regions WHERE rownum <= 16;
--루트 정보 SQL INSERT INTO ROUTES VALUES (diary_no_seq.NEXTVAL , 1 , 1 , '?');
-- 루트에 대한 상세정보 SQL INSERT INTO diaries VALUES(diary_no_seq.NEXTVAL , '?' , '?' , TO_DATE('?','?') , TO_DATE('?','?') , TO_DATE('?','?') , 1 --다이어리게시물 공개 , 0 , 0 );
INSERT INTO diaries VALUES(diary_no_seq.NEXTVAL , '?' , '?' , TO_DATE('?','?') , TO_DATE('?','?') , TO_DATE('?','?') , 0 --다이어리게시물 비공개 , 1 , 0 );
-- 좋아요 상위 N개 뽑기 SELECT diary_no,like_cnt,diary_writting_time FROM (SELECT * FROM diaries ORDER BY like_cnt DESC) WHERE ROWNUM <= N;
-- 최신글 상위 N개 뽑기 SELECT diary_no FROM(SELECT * FROM diaries ORDER BY diary_writting_time DESC ) WHERE ROWNUM <= N;
-- N개의 게시물 보기
SELECT diary_no , diary_title , view_cnt , like_cnt , diary_writting_time FROM diaries WHERE ROWNUM <= N;
--m유저가 n번 여행기 좋아요 클릭시 INSERT INTO LIKES VALUES(n, m);
화면 : https://xhslsmsdl.wixsite.com/my-site-1
https://cdn.discordapp.com/attachments/986936097193996319/991942357861806110/SQL_.png