본문 바로가기

DB15

[SQL] 서브쿼리(Subquery) & 뷰(VIEW)정리 서브쿼리(subquery) : 다른 쿼리 내부에 포함되어 있는 SELECT 문 서브쿼리(= 자식쿼리, 내부쿼리) : 메인쿼리 컬럼 사용 가능 메인쿼리(=부모쿼리, 외부쿼리) : 서브쿼리 컬럼 사용 불가 * 서브쿼리에서는 order by절 사용 불가능 서브쿼리 종류 1. 스칼라 서브쿼리(Scalar Subquery) - SELECT 절에 사용되는 서브쿼리 - 다른 테이블에서 어떠한 값을 가져올 때 사용됨 - 하나의 레코드만(단일 행, 단일 컬럼) 리턴이 가능하며, 두 개 이상의 레코드는 리턴 불가능 - 일치하는 데이터가 없어도 오류가 나지 않고 NULL 값을 리턴한다. - 데이터 건수가 적은 경우, JOIN보다 유리하다. 2. 인라인 뷰(Inline View) - FROM 절에 사용되는 서브쿼리 + JOI.. 2023. 4. 4.
[Programmers] JOIN - 상품별 오프라인 매출 구하기 SELECT product_code, sum(p.price * o.sales_amount) as sales FROM offline_sale as o left join product as p on o.product_id = p.product_id GROUP BY product_code ORDER BY sales desc, p.product_code; - 조건에 맞는 도서와 저자 리스트 출력하기 SELECT book_id, author_name, date_format(published_date, '%Y-%m-%d') as published_date FROM book as b left join author as a on b.author_id = a.author_id WHERE .. 2023. 1. 17.
[Programmers] GROUP BY * Alias group by 절, having 절, order by 절에도 alias 사용 가능! (where 절은 인식 X) " select 절에서 별칭 선언 후, group by 절 이후부터 별칭(alias) 인식 가능 " - 가격대 별 상품 개수 구하기 SELECT ( case when price 숫자 3부터 4자리 잘라내기.. 2023. 1. 16.
[programmers] SELECT - 흉부외과 또는 일반외과 의사 목록 출력하기 SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') FROM DOCTOR WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS' ORDER BY HIRE_YMD DESC, DR_NAME ASC; * 날짜 포맷 변환 SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') -> 2021-03-30 - 12세 이하인 여자 환자 목록 출력하기 SELECT PT_NAME, PT_NO, GEND_CD, AGE, ifnull(TLNO, 'NONE') as TLNO from patient where age 1 order by user_id asc, product_id desc; G.. 2023. 1. 10.
[programmers] JOIN 문제 풀기 JOIN 문제들은 테이블 2개를 합쳐서 풀어야 하는만큼 문제를 이해하는데 더 많은 시간이 걸렸다. - 없어진 기록 찾기 ANIMAL_INS(as I) : 보호소에 들어온 기록, ANIMAL_OUTS(as O) : (보호소에서) 입양 간 기록 SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_INS I RIGHT JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID # 입양을 간 기록을 기준으로 두 테이블 조인 WHERE I.ANIMAL_ID IS NULL # 입양을 갔지만 보호소에 기록이 없는 동물의 ID # where 절이 없으면 입양을 가서 보호소에 들어온 동물, 입양을 갔지만 보호소에 들어오지 않은 동물에 대한 모든 기록 존재 ORDER BY O... 2022. 9. 17.
[programmers] IS NULL 문제 풀기 - 이름이 없는 동물 아이디 동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다. SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL ORDER BY NAME; - 이름이 있는 동물 아이디 동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다. SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NOT NULL ORDER BY ANIMAL_ID; - NULL 처리하기 입양 게시판에 동물 정보를 게시하려 합니다. 동물의 생물 종, 이름, 성별 및 중성화 여부를 .. 2022. 9. 15.