ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 오라클 SELECT 문 - 데이터 추출
    웹프로그래밍/데이터베이스 2018. 6. 17. 16:00

    --##SELECT 문 - 기본

    SELECT * FROM DEPT;

    SELECT DEPTNO, DNAME FROM DEPT;


    --칼럼 이름에 별칭 지정(공백이나 특수문자, 대소문자 구별하려면 AS를 생략하고" "을 사용

    --주로 자바 언어로 데이터를 꺼내올때 쓴다.

    SELECT DEPTNO AS DepartmentNo, DNAME AS DepartmentName FROM DEPT;

    SELECT DEPTNO "Department No", DNAME "Department Name" FROM DEPT;


    --DISTINCT

    --중복된 데이터 없이 한번씩 출력

    --EMP 테이블의 JOB 칼럼의 데이터를 중복 없이 가져온다.

    SELECT DISTINCT JOB FROM EMP;


    --##WHERE 조건과 비교 연산자

    SELECT EMPNO, ENAME, SAL FROM EMP WHERE SAL>=3000;


    --문자 데이터 조회

    SELECT EMPNO, ENAME, SAL FROM EMP WHERE ENAME='SCOTT';


    --날짜 데이터 조회

    SELECT ENAME, HIREDATE FROM EMP WHERE HIREDATE >='1985/01/01';


    --AND 연산자

    SELECT ENAME, DEPTNO, JOB FROM EMP WHERE DEPTNO=10 AND JOB='MANAGER';


    --OR 연산자

    SELECT ENAME, DEPTNO, JOB FROM EMP WHERE DEPTNO=10 OR JOB='MANAGER';


    --NOT 연산자

    SELECT ENAME, DEPTNO, JOB FROM EMP WHERE NOT DEPTNO=10;


    --BETWEEN AND 연산자

    --급여가 1000~3000 사이에 있는 사원

    SELECT ENAME, SAL FROM EMP WHERE SAL BETWEEN 1000 AND 3000;


    --IN 연산자

    --칼럼의 값 중에서 원하는 값을 가져온다.

    SELECT ENAME, SAL, EMPNO FROM EMP WHERE EMPNO IN(7844, 7654, 7521);

    --아래도 동일한 결과

    SELECT ENAME, SAL, EMPNO FROM EMP WHERE EMPNO=7844 OR EMPNO=7654 OR EMPNO=7521;


    --LIKE 연산자와 와일드카드

    --찾고자하는 값을 정확히 모를 경우, 와일드카드를 함께 사용하여 검색한다.

    --ENAME 값이 K로 시작하는 사원

    SELECT EMPNO, ENAME FROM EMP WHERE ENAME LIKE 'k%';

    --이름 중 K를 포함하는 사원

    SELECT EMPNO, ENAME FROM EMP WHERE ENAME LIKE '%K%';

    --이름이 K로 끝나는 사원

    SELECT EMPNO, ENAME FROM EMP WHERE ENAME LIKE '%K';

    --이름에 두 번째 글자가 A인 사원

    SELECT EMPNO, ENAME FROM EMP WHERE ENAME LIKE '_A%';

    --이름에 A를 포함하지 않은 사원

    SELECT EMPNO, ENAME FROM EMP WHERE ENAME NOT LIKE '%A%';


    --##NULL은 비교 연산자를 사용할 수 없다.

    --NULL은 연산, 할당, 비교가 불가능하다.

    --ex) 100 + NULL = NULL

    SELECT ENAME, COMM, JOB FROM EMP WHERE COMM=NULL; -->>아무 값도 나오지 않는다.

    --IS NULL과 IS NOT NULL

    SELECT ENAME, COMM, JOB FROM EMP WHERE COMM IS NULL;

    SELECT ENAME, COMM, JOB FROM EMP WHERE COMM IS NOT NULL;


    --정렬 ORDER BY 

    --행(ROW)을 정렬하는데 사용, 쿼리문 맨 뒤에 기술하며 칼럼이름 또는 SELECT 절에서 명시된 별칭을 사용할 수 있다.

    --ASC(오름차순, 기본값), DESC(내림차순)

    --사번을 기준으로 오름차순 정렬

    SELECT EMPNO, ENAME FROM EMP ORDER BY EMPNO; --또는 ORDER BY EMPNO ASC;