반응형

분류 전체보기 294

19. HAVING, ORDER BY, LIMIT절 개요 (그룹 필터링) | NUll 값을 비교할때는 IS NULL, IS NOT NULL

HAVING - 분류된 그룹들 중 "특정" 그룹만 가져오는 것 - WHERE 절은 일반 레코드를 필터링 - HAVING 절은 반드시 그룹화된 레코드만 필터링 -- 결제 테이블에서 수단별 평균 결제 금액이 다음과 같을때, 평균 결제금액이 36,000원 이상인 것만 조회 SELECT ptype, ROUND(AVG(amount)) AS "평균결제금액" FROM payments GROUP BY ptype HAVING ROUND(AVG(amount)) >= 36000; -- 상품명과 가격을 기준으로 누적 매출이 35,000원 이상인 상품을 조회하시오 SELECT name AS 상품명, price AS 가격, SUM(order_details.count) AS 누적판매량, SUM(products.price * ord..

DB/PostgreSQL 2022.11.07

4. Server에서 스프링 build하고 실행 | 서버가 구축된 환경이라면 war 아니면 jar 형식

CMD로 이동 후 아래 순서대로 실행 1. 소스코드가 있는 폴더로 찾아가기 2. gradlew build 명령어 치면 build 실행 (아래사진은 build 끝나고 성공한 화면) 3. cd build 해서 build 폴더로 들어가주기 4. cd libs 해서 libs 폴더로 들어가주기 5. 그런다음에 ll 명령어 치면 파일 목록 확인할 수 있음. (아래 사진은 cmd말고 실제 폴더 경로 따라가서 jar파일 확인 한 모습) 6. java -jar hello-spring-0.0.1-SNAPSHOT.jar 명령어 치면 스프링 실행 7. 실행 확인 화면 - 이렇게하면 server에서도 스프링이 실행됨 스프링부트는 tomcat 서버가 내장되어 있기에 jar 형식으로 빌드하면 별도의 서버 구축없이 해당 파일만 실행..

18. GROYP BY | GROUP BY 와 COUNT | JOIN 후 GROUP BY

그룹별 데이터 집계를 위한 GROYP BY - GROYP BY 란 데이터를 특징별로 분류하여, 이를 기준으로 분석하는 기법이다. 단 몇 줄의 쿼리로, 수 많은 데이터를 분류 및 집계할 수 있다. - 그룹화 한 다음엔 일반 컬럼은 SELECT 할 수 없다. GROUP BY 절에 명시된 컬럼만 SELECT 된다 - 예) 테이블 컬럼 속 row 데이터의 해당 데이터 별로 분류해서 이를 기준으로 집계할수 있다. 예) status의 SUCC 상태와 ERRO 상태별 갯수가 궁금할때 사용 (성공 상태 인건 몇개고 에러 상태인건 몇개 일까?) GROUP BY 와 COUNT -- 결제 테이블을 결제 방법에 따라 분류하고, 각각의 결제횟수를 조회하시오 SELECT ptype, COUNT(ptype) FROM payment..

DB/PostgreSQL 2022.11.07

3. [Insert] Java-Spring

NoticeVO.java package hello.itemservice.domain.item; import lombok.Data; import lombok.Getter; import lombok.Setter; // @Data // Data는 위험하다. getter, setter 정도만 쓰는게 좋음, DTO용으로 쓸땐 괜찮음 @Getter @Setter public class NoticeVO { private String subject; private String contents; private String regDt; private String updDt; private String regUser; private String updUser; } noticeMapper.java package data.ma..

16. OUTER JOIN( RIGHT JOIN 과 FULL JOIN )

RIGHT JOIN - 연관 데이터를 조인해서 가져오는데 조인할수 없을때 오른쪽을 살리면 RIGHT JOIN이 된다 FULL JOIN - 조인 가능한 데이터 뿐만 아니라 조인 불가능한것 까지도 좌,우측 상관없이 모두 가져온다. 테이블 생성 CREATE /* 테이블 생성 */ -- 사용자 CREATE TABLE users( id SERIAL PRIMARY KEY, -- PK email VARCHAR(60) UNIQUE, -- 이메일 nickname VARCHAR(30) -- 닉네임 ); -- 주문 CREATE TABLE orders( id SERIAL PRIMARY KEY, -- PK status VARCHAR(15), -- 주문 상태 created_at TIMESTAMPTZ, -- 주문시각 user_id..

DB/PostgreSQL 2022.10.31

15. OUTER JOIN( LEFT JOIN )

LEFT JOIN - 가장 많이 사용함 - INNER JOIN은 합친 테이블의 "공통" 데이터만 가져오지만 - LEFT JOIN은 나머지 왼쪽 테이블의 "모든" 데이터도 가져온다 - 공통된 부분을 먼저 조회하고, 추가로 왼쪽 테이블의 나머지 부분도 가져온다. - 데이터가 없는 부분은 NULL로 채워서 가져온다. LEFT JOIN 문제1 -- 모든 사진의 파일명을 조회하시오. 게시자가 있다면 닉네임도 함께 가져올것 SELECT photos.filename, users.nickname FROM photos LEFT JOIN users ON photos.user_id = users.id; LEFT JOIN 문제2 -- 모든 댓글 내용을 조회하시오. 단, 댓글이 달린 사진의 파일명도 함께 가져올 것 SELECT..

DB/PostgreSQL 2022.10.31

14. INNER JOIN 실습

테이블 삭제 DROP -- 기존 테이블 삭제 DROP TABLE likes; DROP TABLE settings; DROP TABLE comments; DROP TABLE photos; DROP TABLE users; 테이블 새로 CREATE -- users 테이블 CREATE TABLE users ( id SERIAL PRIMARY KEY, nickname VARCHAR(50), email VARCHAR(100) ); -- photos 테이블 CREATE TABLE photos ( id SERIAL PRIMARY KEY, filename VARCHAR(255), user_id INTEGER REFERENCES users(id) ); -- comments 테이블 CREATE TABLE comments (..

DB/PostgreSQL 2022.10.31

13. 테이블 JOIN이란? INNER JOIN | OUTER JOIN

테이블 JOIN 이란? 두 테이블 데이터를 하나로 합치는것 FROM절의 데이터를 JOIN절의 데이터와 합쳐준다. 뭐를 통해 합친다? 조건으로 걸러서 합친다. 테이블 JOIN은 크게 내부조인, 외부조인으로 분리된다 내부조인 INNER JOIN SELECT * FROM comments JOIN users ON users.id = comments.user_id; 외부조인 OUTER JOIN 외부조인은 그 안에서 또 LEFT JOIN, RIGHT JOIN, FULL JOIN 으로 나눠진다.

DB/PostgreSQL 2022.10.30
반응형