반응형

1. 기본 구조

- From 절에서 department 테이블과 Student 테이블을 카티션 프로덕트한다.

- 밑의 관계대수와 같은 의미이다.

 

 

 

 

 

 

* 일반적으로 카티션 프로덕트 보다는 조인이나 자연 조인을 사용한다.

< 오라클에서 조인 사용법 >

 

1) SELECT s.name, d.dept_name

    FROM Student s, Department d

    WHERE s.dept_id = d.dept_id

         AND d.dept_name = '컴퓨터공학과';

 

 

2) SELECT s.name, d.dept_name 

    FROM Student s INNER JOIN Department d          <-- INNER 생략 가능

        ON (s.dept_id = d.dept_id)                            <-- () 생략 가능

    WHERE d.dept_name = '컴퓨터공학과';

 

3) SELECT s.name, d.dept_name

    FROM Student s INNER JOIN Department d          <-- INNER 생략 가능

        USING (dept_id)                                          <-- () 필요. 컬럼 앞에 alias 접두사 사용 불가 (s.dept_id X)

   WHERE d.dept_name = '컴퓨터공학과';

 

4) SELECT s.name, d.dept_name

    FROM Student s NATURAL JOIN Department d      <--  join 조건 생략

    WHERE d.dept_name = '컴퓨터공학과';

 

 

 

 

< 여러 개의 조건을 하고 싶을 때 >

 

1) SELECT s.name, d.dept_name, c.col_name 

    FROM (Student s JOIN Department d ON s.dept_id = d.dept_id)      <-- () 생략 가능                

                           JOIN Collage c  ON d.col_id = c.col_id           

    WHERE c.col_name = '정보과학대학';

 

2) SELECT s.name, d.dept_name, c.col_name 

    FROM Student s JOIN Department d  USING (dept_id)                       

                          JOIN Collage c  USING (col_id)           

    WHERE c.col_name = '정보과학대학';

 

 

 

 

 

 

 

 

 

 

 

 

2. 두 개 이상의 테이블이 포함된 질의

 

 

 

 

 

 

 

3. 레코드 정렬 : ORDER BY

 

 

이름과 학생 아이디로 정렬

-> 기본적으로 오름차순 정렬이다.

 

 

 

 

 

* 내림차순 정렬하려면 해당 필드명 뒤에 'desc'를 붙여주면 된다.

 

 

 

 

 

 

 

 

 

4. 재명명 연산

 

 

* 주의 *

특정 테이블에만 존재하는 변수의 테이블명은 생략 가능하다.

 

 

- 셀프 조인

 

- 필드의 재명명

 

 

 

 

 

 

5. LIKE 연산자

: 일부분만 일치하는 경우를 찾아야 할 때

< 문자열 패턴 >

_ : 임의의 한 개 문자에 대응

% : 임의의 여러 개 문자들에 대응

 

 

 

 

like 연산 예시

 

반응형

+ Recent posts