DB

DB/DB 모델링

[DB 모델링] 정규화

1.제 1정규형 : 하나의 레코드 속성에는 하나의 데이터만 넣는다. 1) 제 1정규형 위반 CASE ①하나의 컬럼에 여러 데이터가 들어가는 경우 Tip. 두 테이블의 관계가 M;N일 때 관계 테이블의 명칭 짓기가 애매할 때는 결합한 두 테이블의 명칭을 하나로 합친다. 예를들어 '고객'과 '취미'테이블이 M:N의 관계를 맺으면, 관계 테이블의 명칭은 '고객취미'가 된다. ②복합속성이 사용된 경우 ③유사한 속성이 반복된 릴레이션 2.제 2정규형 헬스 프로그램이 6000원에서 7000원으로 바꾼다면, 위와 같은 테이블은 수정의 비효율이 발생한다. 현재 테이블(수강등록 현황)의 주제와 관련없는 컬럼(가격)을 다른 테이블로 빼는 작업 어려운 버전 partial dependency를 제거한 테이블 빡통 버전: 현재..

DB/SQL오답노트

[DB/SQL오답노트] HackerRank Top Competitors

1.문제 Julia just finished conducting a coding contest, and she needs your help assembling the leaderboard! Write a query to print the respective hacker_id and name of hackers who achieved full scores for more than one challenge. Order your output in descending order by the total number of challenges in which the hacker earned a full score. If more than one hacker received full scores in same numb..

DB/SQL오답노트

[DB/SQL오답노트/HackerRank] Average Population of Each Continent

1.문제 Given the CITY and COUNTRY tables, query the names of all the continents (COUNTRY.Continent) and their respective average city populations (CITY.Population) rounded down to the nearest integer. Note: CITY.CountryCode and COUNTRY.Code are matching key columns. Input Format The CITY and COUNTRY tables are described as follows: 2.내 풀이 SELECT COUNTRY.Continent, trunc(avg(CITY.population)) FROM ..

DB/SQL오답노트

[SQL/SQL오답노트]LV2.가격대 별 상품 개수 구하기

1.문제 https://school.programmers.co.kr/learn/courses/30/lessons/131530 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2.정답 SELECT PRICE_GROUP, COUNT(PRICE_GROUP) AS PRODUCTS FROM (SELECT FLOOR(PRICE/10000)*10000 AS PRICE_GROUP FROM PRODUCT) GROUP BY PRICE_GROUP ORDER BY PRICE_GROUP 3.정답을 못 쓴이유 -만원 단위로 값을 잘라야하는데 어떤 조건으로 만원 단위를 맞출 지 생각..

DB/SQL오답노트

[SQL/SQL오답노트]LV4.우유와 요거트가 담긴 장바구니

💡문제 https://school.programmers.co.kr/learn/courses/30/lessons/62284 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡정답 SELECT DISTINCT CP01.CART_ID FROM CART_PRODUCTS CP01 INNER JOIN CART_PRODUCTS CP02 ON CP01.CART_ID = CP02.CART_ID WHERE CP01.NAME = 'Milk' AND CP02.NAME = 'Yogurt' ORDER BY CP01.CART_ID 💡문제 접근방법 : 우유와 요거트를 '동시'에 구입하..

DB/SQL오답노트

[SQL/SQL오답노트]LV3.대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

1.문제 https://school.programmers.co.kr/learn/courses/30/lessons/151139?language=mysql 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2.정답 SELECT MONTH(START_DATE) as MONTH, CAR_ID , count(HISTORY_ID) as RECORDS from CAR_RENTAL_COMPANY_RENTAL_HISTORY where CAR_ID in( select CAR_ID from CAR_RENTAL_COMPANY_RENTAL_HISTORY where MONTH(STA..

DB/Oracle

[DB/Oracle]오라클 실행계획

1.실행계획이란 :사용자가 SQL 문장을 실행하여 데이터를 추출할 때 옵티마이저가 수립하는 작업절차다. 한 문장으로 요약하자면, 실행계획은 SQL문이 어떻게 실행될지 알려주는 ‘설명서’다. 2.실행계획 실행하기 :쿼리문의 실행계획을 확인하는 방법은 EXPLAIN PLAIN, AUTOTRACE, SQL TRACE 3가지 방법이있다. 이중 AUTOTRACE를 가장 많이 쓰고 그 사용법에 대해서는 아래에 링크를 참조하길 바란다. 오라클 실행계획 확인하기 3.실행계획 순서 실행계획 실행계획은 다음과 같은 규칙으로 읽어나간다. 1.위에서 아래로 읽어 내려가면서 제일 먼저 읽어낼 문장을 찾는다. 2.내려가는 과정에서 같은 들여쓰기가 적용되면, 위->아래 순서로 읽는다. 3.읽고자 하는 문장보다 들여쓰기가 된 문장이..

DB/SQL오답노트

[SQL/SQL오답노트]LV4.서울에 위치한 식당 목록 출력하기

1.문제 https://school.programmers.co.kr/learn/courses/30/lessons/131118 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2.정답 SELECT RI.REST_ID, RI.REST_NAME, RI.FOOD_TYPE, RI.FAVORITES, RI.ADDRESS, RR.SCORE FROM REST_INFO RI INNER JOIN ( SELECT REST_ID,ROUND(AVG(REVIEW_SCORE), 2) AS SCORE FROM REST_REVIEW GROUP BY REST_ID) RR ON RI.RES..

각시탈코더
'DB' 카테고리의 글 목록