Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 샘플데이터
- bc정규형
- vue3
- 제4정규형
- SQL
- 워크벤치
- 서브타입
- 제3정규형
- 공통코드
- 정규형
- 물리모델
- 중복서브타입
- mysql
- 요구사항명세서
- order-by
- 제1정규형
- 데이터통합
- 불완전서브타입
- 제5정규형
- 배타서브타입
- Workbench
- 실행계획
- 완전서브타입
- index
- 인덱스
- 함수종속
- 더미데이터
- 크롬원격데스크톱
- group-by
- 제2정규형
Archives
- Today
- Total
domsam - IT 기술 블로그
DAY.08 본문
반응형
-- 01-(7) 박지성이 구매하지 않은 도서의 이름
SELECT DISTINCT bookname
FROM book B
LEFT JOIN orders O
ON B.bookid = O.bookid
LEFT JOIN customer C
ON O.custid = C.custid
AND C.`name` = '박지성'
WHERE c.custid IS NULL;
SELECT *
FROM book B
LEFT JOIN orders O
ON O.bookid = B.bookid
LEFT JOIN customer C
ON C.custid = O.custid
AND C.`name` = '박지성'
WHERE C.custid IS NULL;
SELECT bookname
FROM book
WHERE bookid NOT IN ( SELECT O.bookid FROM orders O
INNER JOIN customer C
ON C.custid = O.custid
AND C.`name` = '박지성' );
SELECT B.bookname
FROM book B
WHERE NOT EXISTS ( SELECT * FROM orders O
INNER JOIN customer C
ON C.custid = O.custid
AND C.`name` = '박지성'
WHERE B.bookid = O.bookid );
-- 02-(1) 마당서점 도서의 총개수
SELECT (SELECT COUNT(bookid) FROM book)
+ (SELECT COUNT(bookid) FROM imported_book);
SELECT SUM(A.cnt)
FROM (
SELECT 1 as cnt FROM book
UNION ALL
SELECT 1 FROM imported_book
) A;
SELECT COUNT(A.bookid)
FROM (
SELECT bookid FROM book
UNION ALL
SELECT bookid FROM imported_book
) A;
-- 02-(2) 마당서점에 도서를 출고하는 출판사의 총개수 (book 테이블 기준)
SELECT COUNT(DISTINCT publisher)
FROM book;
-- 02-(3) 모든 고객의 이름, 주소
SELECT NAME, address
FROM customer;
-- 02-(4) 2024년 7월 4일 ~ 7월 7일 사이에 주문받은 도서의 주문번호
SELECT orderid
FROM orders
WHERE orderdate BETWEEN '2024-07-04'
AND '2024-07-07';
SELECT orderid
FROM orders
WHERE orderdate > '2024-07-03'
AND orderdate <= '2024-07-07';
-- 02-(5) 2024년 7월 4일 ~ 7월 7일 사이에 주문받은 도서를 제외한 도서의 주문번호
SELECT orderid
FROM orders
WHERE !(orderdate > '2024-07-03' AND orderdate <= '2024-07-07');
SELECT orderid
FROM orders
WHERE orderdate < '2024-07-04'
OR orderdate > '2024-07-07';
-- 02-(6) 성이 '김'씨인 고객의 이름과 주소
SELECT NAME, address
FROM customer
WHERE NAME LIKE '김%';
SELECT LEFT(NAME, 1), address
FROM customer
WHERE LEFT(NAME, 1) = '김';
SELECT 'abcdefg', LEFT('abcdefg', 3), RIGHT('abcdefg', 3), MID('abcdefg', 2, 3);
-- 02-(7) 성이 '김'씨이고 이름이 '아'로 끝나는 고객의 이름과 주소
SELECT NAME, address
FROM customer
WHERE NAME LIKE '김%아';
-- 02-(8) 주문하지 않은 고객의 이름 (부속질의 사용)
SELECT NAME
FROM customer
WHERE custid NOT IN ( SELECT custid FROM orders );
-- 02-(9) 주문 금액의 총액과 주문의 평균 금액
SELECT SUM(saleprice), AVG(saleprice)
FROM orders;
-- 02-(10) 고객의 이름과 고객별 구매액
SELECT C.NAME, SUM(O.saleprice)
FROM orders O
INNER JOIN customer C
ON C.custid = O.custid
GROUP BY C.name;