목록MySQL (9)
천천히 빛나는
프로그래머스 SQL 고득점 Kit의 String, Date 문제입니다. https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit 1. 자동차 대여 기록에서 장기/단기 대여 구분하기 SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE, '%Y-%m-%d') AS START_DATE, DATE_FORMAT(END_DATE, '%Y-%m-%d') AS END_DATE, IF(DATEDIFF(END_DATE, START_DATE) >=29, '장기 대여', '단기 대여') AS RENT_TYPE FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE YEAR(START_DATE) ..
프로그래머스 SQL 고득점 Kit의 JOIN 문제입니다. https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit 1. 주문량이 많은 아이스크림 조회하기 SELECT F.FLAVOR FROM FIRST_HALF AS F, JULY AS J WHERE F.FLAVOR = J.FLAVOR GROUP BY F.FLAVOR ORDER BY (SUM(J.TOTAL_ORDER) + F.TOTAL_ORDER) DESC LIMIT 3; INNER JOIN이기 때문에 WHERE 대신 JOIN JULY AS J ON F.FLAVOR = J.FLAVOR 해도 된다 2. 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 SELECT DISTINCT C...
Join 연산 - 내부 조인 (Inner Join) 1) 동등 조인 (Equi Join) 내부 조인이라고 하면 동등 조인을 생각하면 된다. SELECT 속성 FROM 테이블 1 INNER JOIN 테이블 2 ON 조인 조건 WHERE 조건 SELECT NAME, ID FROM EMPLOYEE INNER JOIN PROJECT ON EMPLOYEE.ID = PROJECT.eID 내부 조인은 WHERE 만 가지고도 충분히 구현 가능하다. WHERE 안에 조인 조건을 넣어줘도 구현이 된다. SELECT * FROM EMPLOYEE, DEPARTMENT WHERE DNUMBER=DNO; SELECT * FROM EMPLOYEE INNER JOIN DEPARTMENT ON employee.dno = departm..
프로그래머스 SQL 고득점 Kit의 IS NULL 문제입니다. https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit 1. 경기도에 위치한 식품창고 목록 출력하기 SELECT WAREHOUSE_ID,WAREHOUSE_NAME,ADDRESS,IFNULL(FREEZER_YN,'N') FROM FOOD_WAREHOUSE WHERE ADDRESS LIKE '경기도%' ORDER BY WAREHOUSE_ID; IFNULL : NULL값이라면 다른 값으로 대체 2. 이름이 없는 동물의 아이디 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL ORDER BY ANIMAL_ID; 이름이 있는 동물은 IS ..
프로그래머스 SQL 고득점 Kit의 GROUP BY 문제입니다. https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit 1. 조건에 맞는 사용자와 총 거래금액 조회하기 SELECT USER_ID, NICKNAME, SUM(PRICE) AS TOTAL_SALES FROM USED_GOODS_BOARD, USED_GOODS_USER WHERE USER_ID = WRITER_ID AND STATUS = 'DONE' GROUP BY USER_ID HAVING SUM(PRICE) >= 700000 ORDER BY TOTAL_SALES; FROM → WHERE절 → GROUP BY → HAVING → SELECT → ORDER BY 순서인 것을..
프로그래머스 SQL 고득점 Kit의 SUM, MAX, MIN 문제입니다. https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit 1. 가장 비싼 상품 구하기 SELECT MAX(PRICE) AS MAX_PRICE FROM PRODUCT; MAX : 최대값을 반환 2. 가격이 가장 비싼 식품의 정보 출력하기 SELECT PRODUCT_ID,PRODUCT_NAME,PRODUCT_CD,CATEGORY,PRICE FROM FOOD_PRODUCT WHERE PRICE IN (SELECT MAX(PRICE) FROM FOOD_PRODUCT); 내림차순 정렬을 하고 LIMIT로 가장 첫번째 행을 출력해줘도 된다. 3. 최댓값 구하기 SELECT ..
프로그래머스 SQL 고득점 Kit의 SELECT 문제입니다. https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit 1. 12세 이하인 여자 환자 목록 출력하기 SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, 'NONE') AS TLNO FROM PATIENT WHERE AGE =2 ORDER BY USER_ID, PRODUCT_ID DESC; Group by : 특정 속성의 값이 같은 투플들을 모아 그룹을 생성 Having : Group BY 절에 대한 조건을 제시 3. 인기있는 아이스크림 SELECT FLAVOR FROM FIRST_HALF ORDER BY TOTAL_ORDER DESC, ..
SELECT FNAME, LNAME FROM EMPLOYEE WHERE SUPER_SSN IS NULL; IS NULL 또는 IS NOT NULL을 이용하여 속성 값이 NULL인지 검사할 수 있다 중첩질의(Nested query) SELECT DISTINCT ESSN FROM WORKS_ON WHERE (PNO, HOURS) IN (SELECT PNO, HOURS FROM WORKS_ON WHERE ESSN=‘333445555’); SSN이 3344555인 사원이 일하는 프로젝트와 일한 시간의 조합이 동일한 사원의 SSN을 검색하는 쿼리이다. 중첩질의에서는 속성의 이름이 모호해질 수 있으므로 AS 를 사용하여 별명을 작성하는 것이 좋다. 여기서 내부 질의는 IN 이후 SELECT 문이 되고, 내부질의 -..
SELECT 문 SELECT 필드이름 FROM 테이블이름 WHERE 조건 Select를 사용하여 조건에 따른 데이터를 검색할 수 있다 SELECT * FROM 테이블명; *을 이용해서 모든 데이터를 출력할 수 있다 SELECT * FROM 테이블명 WHERE 속성1 BETWEEN 값1 AND 값2; SELECT * FROM Company WHERE age BETWEEN 23 AND 35; BETWEEN은 속성 1의 값이 값 1과 값 2 사이에 있는 것을 모두 출력해준다 SELECT * FROM 테이블명 WHERE 속성 1 IN 조건; SELECT * FROM Company WHERE Age IN (23, 24, 25); SELECT * FROM Company WHERE Age = 23 OR Age = 2..