RouteDiary / route-diary

3 stars 2 forks source link

화면별 SQL 구문 (화면 출력시 수행되는 sql도 놓치지 말것) 도출 #4

Closed koreayong19 closed 2 years ago

koreayong19 commented 2 years ago

화면 : https://xhslsmsdl.wixsite.com/my-site-1

https://cdn.discordapp.com/attachments/986936097193996319/991942357861806110/SQL_.png

  1. 목요일 15시에 강사님과 확인
  2. SQL 도출 후 서로 검증할것
BACKMINSEONG commented 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=?;

BACKMINSEONG commented 2 years ago

회원가입화면 SQL 구문 INSERT INTO clients(id,pwd,client_roadaddr,client_addr,client_cellphone_no,nickname,status_flag) values(?,?,?,?,?,?,1);

kwonminho1992 commented 2 years ago

코딩컨벤션을 지킨 버전을 보고 싶으면 아래 노션 주소의 프로젝트 일지 -> 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;

glfldehd commented 2 years ago

--내 계정화면 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';

lemonjunnn commented 2 years ago

--관광지 정보 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 );

kwonminho1992 commented 2 years ago

-- 좋아요 상위 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);