본문 바로가기
개발자 양성과정 필기노트/DB | ORACLE

ORDER BY , JOIN , 서브쿼리

by jono 2021. 7. 29.

DB  ||  DAY3  ||  ORDER BY, JOIN, 서브쿼리


 # 리터럴 

- 숫자의 경우, 그냥 사용하면 된다.
- 문자, 날짜의 경우, 반드시 작은따옴표안에 기재해야한다!


 # ORDER BY 로 정렬하기 

- 항상 쿼리문의 마지막에 위치한다.

. . .
ORDER BY 정렬대상 DESC or ASC ;

*** 오름차순인 asc 생략 가능함!


 # JOIN을 사용한 데이터검색 

-> 여러 테이블에 분산되어있는 데이터들을 활용하고 싶을 때 사용한다,
- 공통된 *데이터*를 가지는 컬럼을 기준으로 묶어준다. 

SELECT  A테이블의 컬럼1, A테이블의 컬럼2, A테이블의 컬럼3, A&B테이블의 컬럼
FROM  A테이블명 JOIN B테이블명
ON A테이블명.A&B테이블의 컬럼명 = B테이블명.A&B테이블의 컬럼명;


 # 테이블이름을 줄여서 지정할수 있다. 

SELECT e.employee_id, e.last_name, e.department_id, 
           d.department_id, d.location_id
FROM employee e JOIN departments d
ON e.department_id = d.department_id
WHERE e.manager_id = 150;

 # 서브쿼리 

- 쿼리구문 안에 또다시 쿼리가 있는 경우이다.

# Abel 보다 급여를 더 많이 받는 사원 출력하기.

SELECT salary
FROM employees
WHERE last_name = 'Abel';

SELECT employee_id, last_name, salary
FROM employees
WHERE salary > ('Abel's salary);

=> 쿼리문을 두번작성해야하고,
첫번째 쿼리문에서 나온 결과값을 외운 후 두번째 쿼리문에 넣어야 하므로 번거롭다.

=> 서브쿼리를 이용해 쿼리문을 간단히 만들 수 있다!
SELECT
 employee_id, last_name, salary
FROM employees
WHERE salary > (SELECT salary
                       FROM employees
                       WHERE last_name = 'Abel' ) ;

 


 # 작업취소, 저장 

- rollback ;   => 작업내용 취소하기 

- commit ;    => 작업내용 저장하기

 

*** commit에 rollback처리는 불가능하다.

 

 

댓글