SELECT 검색 대상
FROM 검색 대상 집합 (테이블, 뷰, 서브쿼리)
WHERE 행 제한을 위한 조건식
-- 전체 컬럼 검색
SELECT *
FROM 테이블명
WHERE 조건;
-- 특정 컬럼 검색
SELECT 컬럼1, 컬럼2
FROM 테이블명
WHERE 조건
SELECT *
FROM emp;
SELECT ename, job, deptno
FROM emp;
SELECT empno, mgr, hiredate, deptno
FROM emp;
5. SELECT : 검색 대상 표현식
1. FROM : 검색 대상 집합 (테이블, 뷰, 서브쿼리)
2. WHERE : 행 제한을 위한 조건식
3. GROUP BY : 그룹 생성을 위한 표현식
4. HAVING : 그룹 제한을 위한 조건식
6. ORDER BY : 정렬 위한 표현식
(실행 순서라는 표현은 실행 계획에 영향을 받는 부분이기 때문에 실행 순서라고 보기에는 어폐가 있음.)
SELECT empno,
empno AS no, -- as 키워드를 이용해서 별칭 사용
ename AS name,
hiredate hire, -- " "공백을 삽입하여 별칭으로 처리
deptno dno
FROM emp;
SELECT empno AS eno,
ename AS name,
mgr management,
sal salary
FROM emp; -- 기본적인 테이블 처리 문법은 아래와 같이 테이블명.컬럼명으로 적는데, 테에블이 하나밖에 없을 때는 테이블명을 생력한다.
SELECT emp.empno
FROM emp;
SELECT e.empno, ename
FROM emp e;
SELECT empon NO, e.*
FROM emp e; -- 컬럼의 alias에 공백이나 허용되지 않는 특수문자를 사용할 때는 컬럼명 "alias명" 으로 사용하여 처리한다.
SELECT empno "번 호", -- 중간에 공백을 넣어서 alias를 활용할 때 사용한다.
sal "#급여" -- alias명으로 허용되지 않는 특수문자를 사용할 때도 "특수문자"로 처리한다.
FROM emp;
SELECT empno "사 원 번 호", ename "@사원명@", sal 급여
FROM emp;
SELECT empno, empno + 10 "10더함", sal, sal*0.5 "급여의 50%", deptno,
sal*(deptno/100) "급여와 부서의 연산" MOD(sal, deptno) "나머지"
FROM emp;
SELECT empno + 10000 사원번호, comm, sal+comm 총급여, sal+nvl(comm,0) 총급여2
FROM emp; -- cf) null값 데이터는 연산처리하면 null 처리된다. -- cf) nvl(컬럼) 컬럼이 null(데이터가 없을 때, 초기데이터), 초기데이터로 처리
select 컬럼명 || '연결할문자열', 컬럼명1 || 컬럼명2
SELECT empno || '번' 사원번호
ename || empno "이름과 사원번호"
deptno || '/' || empno || '/' || ename "부서번호/사원명/이름" FROM emp;
SELECT * FROM emp;
SELECT '사원명' || ename || '의 사원번호는' ||empno|| '입니다.'
FROM emp;
SELECT ename||'의 월급여는'|| sal/12 || '입니다' show
FROM emp;
-- round():반올림, ceil():올림, floor:내림 ==> 내장 함수시 진행
SELECT ename || '님의 사원번호는' || empno || '이고, 올해 연말보너스는 연봉의 20%인 ' ||
sal*1.2 || '원입니다.' show
FROM emp;
SELECT ename || '님의 입사일은 ' || hiredate || '이고, 현재 연봉의 1/13인 월급여는' ||
sal/13 || '만원.' show
FROM emp;
SELECT ename || '님의 이번달 보너스는 연봉' || sal || '의' || deptno || '%기준으로' ||
sal*(deptno/100) ||'만원 지급합니다.'show
FROM emp;