SELECT문
■ 1. SQL 작성 지침
- 대소문자 구별안함, 들여쓰기
■ 2. SQL문의 기본 구조
■ 3. 원하는 것 정의/요청 하기
- 정의/요청 위치
SELECT절과 FROM절 사이, select-list : 원하는 것(what)을 요구사항에 맞게(how) 정의하여 나열
- select-list에 가능한 요소
*(아스타), 테이블명.* : 모든컬럼
컬럼, 리터럴, 수식, 함수, 스칼라 서브쿼리 > 값
- EX 모든 부서에 대한 전체 정보를 일련번호를 붙여서 출력하세요
SELECT ROWNUM, departments.*
FROM 부서 테이블
- 식별자(identifier)
데이터베이스 객체이름, 컬럼이름, 컬러별칭
- 식별자 이름 지정 규칙
영문자로 시작, 30 byte 이하, #, $, _을 제외한 특수문자 불가, 키워드/예약어 불가
예외: quoted name 방식 CREATE TABLE "from" (no NUMBER); 여기선 대소문자 구분, "" 로 사용해야함
■ 4. 컬럼 별칭(column alias)
- 용도
Column heading(필드 이름 아닌 select에서 정의 한 컬럼 이름)이 너무 길거나 특수문자 포함
계산식에서 유용, 뷰 정의시 CTAS 방식으로 테이블 생서이 유용
- 정의방식(3)
한 칸 띄움, AS 키워드, 큰 따옴 표
- 제한
정의는 SELECT 절에서,
사용은 ORDER BY절에서 (from, where, group by, having, select 절에서는 사용 불가)
1~6 순서 생각하면 됨.
▶5. DISTINCT(중복된 값을 하나만 고려)
SELECT job_id
FROM employees;
SELECT DISTINCT job_id
FROM emplyees;
SELECT job_id
FROM employees
GROUP BY job_id;
[사원들의] 커미션 비율을 중복없이 출력하세요
SELECT DISTINCT 커미션 비율
FROM 사원 테이블
[부서별 사원의] 직무를 중복없이 출력하세요
SELECT DISTINCT department_id, job_id (전체에 대한 DISTINCT)
FROM 사원 테이블
요거 조회 결과 이해하기!