ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL Select & 연산자 (1)
    Data Base_Oracle/SQL 2019. 12. 31. 21:25

    연산자를 활용한 검색

    * 곱셈 연산자

    ▷ 형식) SQL> select 필드명 연산자 숫자 from 테이블명;
    ▶ emp테이블에서 sal칼럼에 12를 곱하고,
    별칭을 "급 여"로 지정한 후, 이름, 업무, 급여 순으로 검색
    SQL> select ename,job,sal as "급 여",sal * 12 연봉 from emp;

    ENAME JOB 급 여 연봉
    SMITH CLERK 800 9600
    ALLEN SALESMAN 1600 19200
    ... ... ... ...

    => sal 칼럼 각각의 레코드에 12를 곱한 값들이 별칭 '연봉' 칼럼에 계산되서 표출됨

    || 문자열 결합 연산자

    ▷ 형식) SQL> select 필드명 || 필드명 from 테이블명;
    ▶ emp테이블에서 ename과 job의 문자열들을 결합한 후 "사원이름 업무" 별칭 필드로 출력
    SQL> select ename || job as "사원이름 직원" from emp;

    사원이름 직원
    SMITHCLERK
    ALLENSALESMAN
    ...

    레코드 사이에 공백 만들기

    ▷ 형식) SQL> select 필드명 || '(공백)' || 필드명 from 테이블명;
    ▶ emp테이블에서 ename과 job을 한칸 띄워서 결합한 후 "사원이름 업무"별칭으로 출력
    SQL> select ename || ' ' || job as "사원이름 직원" from emp;

    사원이름 직원
    SMITH CLERK
    ALLEN SALESMAN
    ...

    관계연산자

    • 대소 : >, >=, <, <=
    • 등 : =
    • 부등 : !=, ^=, < >

    where 조건식을 사용한 조회 - 부등

    ▷ 형식) SQL> select 검색할 필드명(=컬럼명),,,( * )
    from 테이블명,,,,
    where 조건식(검색할 필드명 연산자 검색할 값);
    ▶ 연봉이 3000 이상인 직원의 이름, 업무, 연봉을 emp테이블에서 출력
    SQL> select ename, job, sal from emp where sal>=3000;

    ENAME JOB SAL
    SCOTT ANALYST 3000
    KING PRESIDENT 5000
    FORD ANALYST 3000

    where 조건식을 사용한 조회 - 등

    ▶ 업무가 'Manager'인 직원의 사원번호, 이름, 업무를 emp테이블에서 출력
    SQL> select empno, ename, job from emp where job='Manager';
    => "선택된 레코드가 없습니다."
    ▶▶ 업무가 'MANAGER'인 직원의 사원번호, 이름, 업무를 emp테이블에서 출력
    SQL> select empno, ename, job from emp where job='MANAGER';

    EMPNO ENAME JOB
    7566 JONES MANAGER
    7698 BLAKE MANAGER
    7782 CLARK MANAGER

    ※ 대소문자를 구분하기 때문에 정확히 맞춰서 써야함

    논리연산자

    • A and B : A 조건과 B조건을 동시에 만족하는 값들을 표출
    • A or B : A조건이나 B조건 중 하나라도 만족하는 값들을 전부 표출
      ※ and 와 or이 같이 나오면 and가 먼저 계산됨
      A or B and C => A or (B and C)

    숫자형 범위연산자

    • between A and B : A이상 B이하의 값들을 선택, A - 작은 값, B - 큰 값
    • not between A and B : A미만 B초과의 값들을 선택

    ▶ 연봉이 1300 이상 1800 이하인 직원의 이름, 업무, 연봉을 emp테이블에서 조회
    SQL> select ename, job, sal from emp where sal between 1300 and 1800;
    (= SQL> select ename, job, sal from emp where sal>=1300 and sal<=1800;)

    ENAME JOB SAL
    ALLEN SALESMAN 1600
    TURNER SALESMAN 1500
    MILLER CLERK 1300

    ▶ 연봉이 1300 미만 1800 초과인 직원의 이름, 업무, 연봉을 emp테이블에서 조회
    SQL> select ename, job, sal from emp where sal not between 1300 and 1800;
    ( = SQL> select ename, job, sal from emp where sal<1300 or sal>1800;)

    ENAME JOB SAL
    SMITH CLERK 800
    WARD SALESMAN 1250
    ... ... ...

    다양한 연산자들을 select 구문과 함께 다뤄보았습니다.

    댓글

Designed by Tistory.