SQL 연산자

2020. 4. 13. 13:39·Programming/SQL
728x90

 * 연산자의 종류

1. 산술 연산자 : * / + -

2. 비교 연산자 : >, <, <=, >=, =, !=, <>, ^= (뒤에 세가지는 같지 않거나)

          기타 비교 연산자 : 1. between .. and

                                   2. like

                                   3. in 

                                   4. is null

3. 논리 연산자 : and, or, not

 

* 산술 연산자

문제) 사원이름, 월급, 월급 +300*2를 출력하시오

select ename, sal, sal+300*2
from emp;

* 비교 연산자

문제) 사원번호가 7788번인 사원의 사원번호와 이름을 출력하시오

select ename, empno
from emp
where empno = 7788;

문제) 직업이 SALESMAN인 사원들의 이름과 직업을 출력하시오

select ename, job
from emp
where job = 'SALESMAN';

where절에 SALESMAN이라는 조건을 주려면 데이터는 대소문자를 구분하므로 테이블안의 데이터가 대문자로 되어있으면 검색할때도 대문자로 검색해주어야한다. 숫자와는 다르게 문자와 날짜는은 싱글쿼테이션 (' ')마크로 둘러줘야한다.

 

* 기타 비교 연산자

⑴ bewteen ... and

select ename, sal
from emp
where sal between 1000 and 3000;

-> sal이 1000이상 3000이하인 사원들의 이름과 월급이 나온다.

 

⑵ like 

select ename
from emp
where ename like 'S%'; 

-> '%'는 와일드 카드로 이 자리에 뭐가와도 관계없고 갯수가 몇개가 되던 상관 없다는 뜻이다.

->like가 영어로 쓰일때 ~처럼, ~일것 같은의 뜻인 것 처럼 SQL에서도 '이름의 첫글자가 S로 시작할것 같은'으로 쓰인다.

 

문제) 이름의 두번째 철자가 M인 사원들의 이름을 출력하시오

select ename
from emp
where ename like '_M%';

-> '_'(언더바)는 이자리에 뭐가 와도 관계없으나 자릿수는 하나여야 한다.

 

문제) 이름의 두번째 철자가 %인 사원의 이름을 출력하시오

select ename
from emp
where ename like '_m%%' escape 'm';

-> escape : m바로 다음에 나오는 %는 와일드 카드가 아니라 특수문자 %다 라는걸 명시함. m자리에 영문 어떤걸 써도 무관하다.

 

 #like 연산자와 짝꿍인 옵션들

   - % : 이 자리에 뭐가 와도 관계 없고 갯수도 관계없다

   - _ : 이 자리에 뭐가 와도 관계는 없는데 자릿수는 하나.

   - escape : %와 _를 특수문자로 인식하게 하는 키워드

 

⑶ in 

select ename, job
from emp
where job in ('SALESMAN', 'ANALYST');

->where절에 컬럼명 in (조건, 조건) 

조건이 하나가 아닐때 사용한다.

 

 

 

 

 

 

⑷ is null

select ename, comm
from emp
where comm is null;

-> comm is null하면 comm의 값이 null인 사원들만 나온다.

 

 

 

 

 

 

 

 

 

 

* 논리 연산자

⑴ and 

문제) 직업이 SALESMAN이고 월급이 1000이상인 사원들의 이름과 직업과 월급을 출력하시오

select ename, job, sal
from emp
where job = 'SALESMAN' and sal >=1000;

 

⑵ or

문제 ) 사원번호가 7788, 7902, 7369번인 사원들의 사원번호와 사원이름을 출력하시오

select ename, empno
from emp
where empno = 7788 or empno = 7902 or empno = 7369;

 

⑶ not

문제) 커미션이 null이 아닌 사원들의 이름과 커미션을 출력하시오

select ename, comm
from emp
where comm is not null

 

*order by 절 - 데이터를 정렬하는 절로 가장 마지막에 사용한다.

select ename, sal
from emp
order by sal desc;

order by 정렬할 컬럼명

 

※ 정렬 옵션

desc : 높은것부터 출력

asc   : 낮은거부터 출력 -> 안쓰면 디폴트값

 

 

 

 

 

 

 

 

오라클 명령어 실행 순서

1. from

2. where

3. select

4. order by

 

오라클 명령어 코딩순서

1. select

2. from

3. where

4. order by

'Programming/SQL' 카테고리의 다른 글
  • SQL 단일행함수 - 날짜함수
  • SQL 단일행함수 - 숫자함수
  • SQL 단일행 함수 - 문자함수
  • SQL 기초
해치
해치
뭐라도 하자
  • 해치
    hi there
    해치
  • 글쓰기 관리자
  • 전체
    오늘
    어제
    • ALL (70)
      • Programming (62)
        • Python (14)
        • SQL (13)
        • 알고리즘 (35)
      • Framework (4)
        • Airflow (3)
        • Django (1)
      • Infra (3)
        • Docker (3)
        • Linux (0)
      • AWS (0)
      • Dashboard (1)
  • 블로그 메뉴

    • 링크

    • 인기 글

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    해치
    SQL 연산자
    상단으로

    티스토리툴바