일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #db#order#by
- #select#from#distinct
- #자바스크립트#텍스트#알람#alert
- #jQuery#mouse#over
- #C언어#do#while#계산기#함수
- #클릭#숨기기#보이기
- #C언어#if
- #C언어#타입#printf
- #증감#연산자
- #C언어#숫자비교#삼항연산자
- #자바스크립트#alert
- #자바스크립트#시계#실시간시계
- #db#데이터베이스#select
- #C언어#switch#case#계산기#함수
- #자바스크립트#접속시간#시간
- #db#froup#by
- #C언어#scanf#fflush
- #db#where
- #자바스크립트#만년달력#달력
- #html#테이블#table
- #getElementById#id
- #alert#자바스크립트#radio#check
- #html#프레임
- #C언어#for#간단#예제
- #C언어#사각형
- #자바스크립트#회원가입#유효성#검사
- #db#join#inner#cross
- #C언어#do#while#계산기
- #alert#자바스크립트#checkbox#alert
- #C언어#성적처리#점수#등급
- Today
- Total
선택장애
데이터베이스(DB) - Join(cross join, 내부조인(inner join) - 예제,문제풀이_1 본문
Join은 종류가 아주 다양하다.
그중에서 개인적으로 자주쓴다고 생각하는
Cross Join, 내부조인, 외부조인을 예를 들면서 설명하겠습니다.
(양이 많아서 다음 포스트에서 계속...)
●먼저 테이블 컬럼부터 보여드려야죠
★ORDERS 테이블
★CUSTOMER 테이블
●크로스 조인(간단하게 하겠습니다. 그냥 합치기만 하는거라서 이건;;)
문제 1. Customer 테이블을 Orders 테이블과 조건 없이 연결해보자.
Customer와 Orders 테이블의 합 체 결과 튜플의 개수는 고객이 다섯 명이고 주문이 열 개이므로 5×10 해서 50이 된다.
SELECT *
FROM Customer, Orders;
●내부조인(천천히 하나씩 할게요)
- 내부 조인(inner join)은 여러 애플리케이션에서 사용되는 가장 흔한 결합 방식이며, 기본 조인 형식으로 간주된다. 내부 조인은 조인 구문에 기반한 2개의 테이블(A, B)의 컬럼 값을 결합함으로써 새로운 결과 테이블을 생성한다. 그 질의어는 조인 구문을 충족하는 모든 일치되는 결과 열을 찾기 위해 A 테이블의 각 열을 B 테이블의 각 열과 비교를 한다. 조인 구문이 충족되면, A, B 테이블에서 일치된 각 열의 컬럼 값은 결과 열로 결합된다. 조인으로 도출된 결과 값은 (테이블 A 내의 모든 레코드와 테이블 B에 있는 모든 레코드가 결합하여) 테이블에 존재하는 모든 레코드(또는 크로스 조인)의 최초의 곱집합의 결과값으로 정의될 수 있으며, 그런 이후 조인 구문을 충족시키는 모든 레코드 값을 반환한다.
(라고 하는데 전 실습 하는걸 좋아해서 이론은 잘 모르겠네요...;; 바로 실전으로 보시죠)
문제 2. 고객과 고객의 주문에 관한 데이터를 모두 보이시오.
SELECT *
FROM Customer, Orders
WHERE Customer.custid = Orders.custid
/*Customer의 custid컬럼과 Orders의 custid의 컬럼을 기반으로 합치겠다*/
ORDER BY Customer.custid;
/*ORDER By는 그냥 보기 좋게 정렬하기 위해서*/
문제 3. 고객의 이름과 고객이 주문한 도서의 가격을 검색하시오.
SELECT name. saleprice
/*문제 2번은 모조리 다 뽑아오고 이건 이름과 가격만 뽑아오는거죠*/
FROM Customer, Orders
WHERE Customer.custid = Orders.custid;
문제 4. 고객별로 주문한 모든 도서의 총 판매액을 구하고, 고객별로 정렬하시오.
SELECT name, SUM(saleprice)
/*열 이름을 안 주었기 떄문에 (열 이름 없음)이라고 하는데 SUM(saleprice)뒤에 바로 이름만 쓰면 되겟죠*/
FROM Customer, Orders
WHERE Customer.custid =Orders.custid
GROUP BY Customer.name
ORDER BY Customer.name;
-------------------------------------------------------------------------------------------------------
내용이 길어져서 다음 포스팅에 계속 할게요 ㅜㅠ
'데이터베이스(DB)' 카테고리의 다른 글
데이터베이스(DB) - OUTER JOIN(외부조인 간단예제) (0) | 2017.08.14 |
---|---|
데이터베이스(DB) - Join(cross join, 내부조인(inner join) - 예제,문제풀이_2 (0) | 2017.08.14 |
데이터베이스(DB) - Join(기본 문법) (0) | 2017.08.14 |
데이터베이스(DB) - GROUP BY와 HAVING의 문법과 주의사항(예시) (0) | 2017.08.14 |
데이터베이스(DB) - GROUP BY(예제, 문제 해석) (0) | 2017.08.14 |