Data Base Design System

연산자

곽수진 2021. 9. 30. 00:07
반응형

비교 연산자

  • =   >   >=   <=

 

select 1 = null or 1 = 1;

    : Null(unknown) or True의 결과는 True이기 때문에 1 출력

 

 

select 1 = null and 1 != 1;

    : Null(unknown) and False의 결과는 False이므로 0 출력

 

 

select (null = 1) = null;

    : Null = 1 은 unknown일 때, unknown은 등호로 판별할 수 없으므로 Null 출력

 

 

  • between ... and ... 

     : 범위 검색 수행

 

where 컬럼명 between 시작 값 and 끝 값;

 

      → where 컬럼 >= 값1 and 컬럼 <= 값2와 같은 결과

      → 부정 : not between ... and ...

 

select ename, job, sal from emp where sal between 1000 and 2000;

    : emp에서 ename, job, sal를 선택하되, sal는 1000과 2000사이의 값을 가진 ename과 job만 출력

 

 

  • in (list)

     : 조건에 다수의 나열된 값을 지정해 매칭되는 값을 추출

       → 완전 매칭

 

where 컬럼명 in (값1, 값2, ...);

      → 컬럼명 = 값1 or 컬럼명 = 값2 or 컬럼명 = 값3 or ... 과 같은 결과

      → 부정 : not in (list)

 

▶ select ename, job from emp where job in ('analyst', 'clerk');

    : emp에서 ename과 job을 선택하되, job 중에서도 'analyst'와 'clerk'에 해당하는 ename만 출력

 

 

  • like 

     : 문자열 완전 혹은 부분 매칭을 수행  

      → 와일드 카드 기호 '%'(다수의 문자)와 '_'(하나의 문자) 사용

      → 부정 : not like

 

▶ select ename, job from emp where ename like '%A%';

  : emp에서 ename과 job을 선택하되, ename은 맨 앞과 맨 뒤를 제외하고 'A'가 들어가는 경우만 출력

 

 

select ename, job from emp where ename like '_A%';

    : emp에서 ename과 job을 선택하되 ename 중 두 번째에 'A'가 들어가는 경우만 출력

 

 

select ename, job from emp where ename like '__L%';

    : emp에서 ename과 job을 선택하되 ename 중 세 번째에 'L'이 들어가는 경우만 출력

 

 

  • is null

      → NULL 값을 검색할 경우 반드시 논리 연산자 '='대신 'is null'을 사용함

      → 부정 : is not null

 

select ename, comm from emp where comm is null;

    : emp에서 ename과 comm을 선택하되, comm의 null값만 출력

 

 

논리 연산자

  • and (&&)

 

  • or (||)

 

★ 다중 조건 사용 ★ 

 

→ 'and'와 'or'를 사용해 다중의 조건을 적용

select ename, sal from emp where ename like '%A%' and sal > 2000;

: emp에서 ename과 sal을 선택하되, ename은 중간에 'A'가 들어가고 sal는 2000보다 큰 경우만 출력

 

 

→ 'and'와 'or'을 동시에 사용할 때는 소괄호를 사용해 연산자 우선순위 지정

select mgr, sal from emp where mgr = 7698 or (mgr = 7839 and sal > 1500);

    : emp에서 mgr과 sal을 선택하되, mgr이 7698인 경우 혹은 mgr이 7839이고 sal이 1500보다 큰 경우만 출력

 

  • not (!)

 

 


 

 

Q1.

EMP TABLE에서 이름(ENAME)이 사전배열 상 A에서 H 사이에 있는 사원의 모든 정보를 이름을 기준으로
오름차순으로 출력해보자.

 

select * from emp where ename between 'A' and 'H' order by ename;

  → order by ename asc도 동일함

 

 

Q2.

EMP TABLE에서 이름(ENAME)에 알파벳 A가 포함되고 급여(SAL)가 2000이상인 사원의
모든 정보를 출력해보자.

 

 

    

Q3.

EMP TABLE에서 자신의 상관(MGR)이 없는 직책(JOB)을 출력해보자.

 

조건에 해당하는 'job'만 출력한 모습

 

 

제대로 출력되었는지 확인하기 위해 job과 mgr 모두 출력한 모습

 

 

Q4.

T / F 결과값을 확인해보자.

 

fast 앞에 와일드 카드가 들어가지 않아 False 출력 

 

 

 

break 뒤로 1글자, 이후에는 제한 없는 와일드 카드가 들어가 True 출력

 

 

ll 앞에 3글자, 뒤에 제한 없는 와일드 카드가 들어가 True 출력

반응형

'Data Base Design System' 카테고리의 다른 글

JOIN  (0) 2021.10.01
함수  (0) 2021.09.30
where  (0) 2021.09.29
SQL 클라이언트 화면 지움  (0) 2021.09.29
Order by  (0) 2021.09.29