명령 | 문법 | 설명 |
---|---|---|
일반조인 | SELECT <속성들> FROM 테이블1, 테이블2 WHERE <조인조건> AND <검색조건> -------------------------------------------------------- SELECT <속성들> FROM 테이블1 INNER JOIN 테이블2 ON <조인조건> WHERE <조인조건> AND <검색조건> | SQL 문에서는 주로 동등조인을 사용함 두가지 문법 중 하나를 사용할 수 있음 |
외부조인 | SELECT <속성들> FROM 테이블1 {LEFT | RIGHT | FULL [OUTER]} JOIN 테이블2 ON <조인조건> WHERE <검색조건> | 외부조인은 FROM 절에 조인 종류를 적고 ON을 이용해 조인조건을 명시함 |
example 1. 고객과 고객의 주문에 관한 데이터를 모두 보이시오.
SELECT *
FROM Customer, Orders
WHERE Customer.custid = Orders.custid;
example 2. 고객과 고객의 주문에 관한 데이터를 고객번호 순으로 정렬하여 보이시오.
SELECT *
FROM Customer, Orders
WHERE Customer.custid = Orders.custid
ORDER BY Customer.custid;
example 3. 고객의 이름과 고객이 주문한 도서의 판매가격을 검색하시오.
SELECT (Customer.)name, (Orders.)saleprice
FROM Customer, Orders
WHERE Customer.custid = Orders.custid
example 4. 고객별로 주문한 모든 도서의 총 판매액을 구하고, 고객 이름으로 정렬하시오.
SELECT name, sum(saleprice) AS 총 판매액
FROM Customer, Orders
WHERE Customer.custid = Orders.custid
GROUP BY Customer.custid
ORDER BY Customer.name;
example 5. 고객의 이름과 고객이 주문한 도서의 이름을 구하시오.
SELECT Customer.name, Book.bookname
FROM Customer, Orders, Book
WHERE Customer.Custid = Orders.Custid AND Orders.bookid = Book.bookid;
example 6. 가격이 20,000원인 도서를 주문한 고객의 이름과 도서의 이름을 구하시오.
SELECT Customer.name, Book.bookname
FROM Customer, Orders, Book
WHERE Customer.Custid = Orders.Custid AND Orders.bookid = Book.bookid
AND Book.saleprice = 20000;
example 7. 도서를 구매하지 않은 고객을 포함하여 고객의 이름과 고객이 주문한 도서의 판매가격을 구하시오.
SELECT Customer.name, saleprice
FROM Customer LEFT OUTER JOIN Orders
ON Customer.custid = Orders.custid;