분류 전체보기 279

데이터 모델링_1

* 데이터 모델링 목적 - 저장하고자 하는 데이터에서 Entity, Attribute, Relationship, Constraint 파악 * Relational Model - 데이터를 relation, 즉 테이블로 정리해서 표현한 모델 - foregin key를 통해서 테이블 간의 관계를 표현 - 테이블 간의 관계 특성을 확인하기 힘듬 - foregin key를 저장하고 있는 테이블을 child table - foregin key를 통해서 참조되느 테이블을 parent table * Entity-Relationship 모델 - entity : 테이블, attribute : 컬럼, relationship : foregin key - 각각 연결되 선을 통해 의미하는 바를 파악할 수 있음 - 관계의 특징에 따..

SQL VIEW

중첩쿼리문을 많이 중첩시켜서 사용할 경우 가독성이 떨어진다 이때 VIEW를 사용하여 쿼리문의 가독성을 높일 수 있다. 각 직무별 데이터 수요에 알맞은, 다양한 구조의 데이터 분석 기반을 구축해둘 수 있습니다. 컴퓨터에 일일히 물리적으로 저장되지는 않는 가상의 테이블이다. CREATE VIEW three_tables_joined AS SELECT i.id, i.name, AVG(star) AS avg_star, COUNT(*) AS count_star FROM item AS i LEFT OUTER JOIN review AS r on r.item_id = i.id LEFT OUTER JOIN member AS m ON r.mem_id = m.id WHERE m.gender = 'f' GROUP BY i.id..

SQL 서브쿼리 실습

select * from review where item_id in ( select id from item where registration_date < '2018-12-31' ); - where절 서브쿼리 * review 테이블의 모든 컬럼 * 2018-12-31 이전의 review 확인 * in 으로 review 테이블의 item_id와 item 테이블의 id가 같은게 있으면 값을 가져오게함 SELECT AVG(review_count), MAX(review_count), MIN(review_count) FROM (SELECT SUBSTRING(address, 1, 2) AS region, COUNT(*) AS review_count FROM review AS r LEFT OUTER JOIN membe..

SQL 서브쿼리 종류

*서브쿼리 1) SELECT절에서 서브쿼리 사용(스칼라 서브쿼리) - price 컬럼 옆에 평균 price를 붙여서 비교하면서 볼 수 있도록함 SELECT id, name, price, (SELECT AVG(price) FROM item) AS avg_price FROM copang_main.item; 2) WHERE절에서 서브쿼리 사용(중첩쿼리) - item 테이블에서 최소가격인 항목만 보여준다. SELECT id, name, price FROM item WHERE price = (SELECT MIN(price) FROM item); 3) FROM절에서 서브쿼리 사용(인라인뷰) - 리뷰 테이블에서 item_id를 GROUP BY 했을때 리뷰수가 3개 이상인 item_id를 가져온다. 그 item_id를..

SQL COALESCE, JOIN, USING, UNION

SELECT p.name AS name, COALESCE(s.sales_volume, '판매량 정보 없음') AS '판매량' FROM pizza_price_cost p LEFT OUTER JOIN sales s on p.id = s.menu_id ; * COALESCE SELECT A, COALESCE(A,'널입니다.') FROM TABLE; SELECT 문에 사용함 NULL일 때 나타낼 내용을 지정한다. (오라클에서 NVL() 같은것) * JOIN문 -- OLD ITEM 테이블 기준으로 보기 -- OLD 테이블에는 있지만 NEW 테이블에는 없는 SELECT OLD.ID OLD ID, OLD.NAME OLD NAME, NEW.ID NEW ID, NEW.NAME NEW NAME FROM ITEM AS OL..

SQL Foreign Key

*Foreign Key Foreign Key는 다른 테이블의 특정 row를 식별할 수 있어야 하기 때문에 주로 다른 테이블의 Primary Key를 참조한다. products, customers 테이블이 부모가 되고 orders 테이블이 자식 테이블이됨 orders에서 product의 name이나 price를 알 수 없지만 Foreign Key 통한 join을 통해서 정보를 확인 할 수 있음 SELECT o.productID, p.name, p.price FROM products p INNER JOIN orders o ON p.name = o.productID; 내생각에는 이런 간다한 그림이 이해하는게 좋을것 같아 정리함

SQL 실용함수들 살펴보기

-- 5~100세 사이 member들의 나이 평균 SELECT AVG(age) FROM copang_main.member WHERE age BETWEEN 5 AND 100; -- 끝자리에 호가 없는행 SELECT * FROM copang_main.member WHERE address NOT LIKE '%호'; --COMMENT가 NULL이 아닌 ROW들로 평균 별점 구하기 SELECT COUNT(COMMENT) AS 'COUNT(*)', ROUND(AVG(star)) FROM review WHERE COMMENT IS NOT NULL; -- 비만도 계산식 SELECT email, height, weight, weight / ((height/100) * (height/100)) FROM copang_mai..