본문 바로가기

SQL

4. 연결연산자(||), 논리연산자

1.  연결연산자(||)
- 분리된 문자열을 결합(연결)하여 하나로 표현하기 위해 사용
- 문자열과 문자열 사이에 삽입

select 'ab' || 'cd' from dual ;
select 'ab' || 'cd' ||'12' from dual ;

예제1) emp에서 모든 직원의 사번과 이름을 7369_SMITH 형태로 출력 // 문자의 범주에 _(언더바) 포함된다. 쌍따옴표 붙일 필요 없다.

sol)

select empno||'_'||ename as 사번_이름
  from emp;

이러한 식으로 내용이 합쳐져서 출력되는걸 알 수 있다. 


예제2) emp에서 각 직원의 정보를 아래와 같이 출력
    ( SMITH의 10% 인상된 급여는 880입니다.)

sol)

select ename || '의 10% 인상된 급여는 ' || sal*1.1||' 입니다.' as 급여
  from emp;

 

2. 논리 연산자

 - not > and > or 의 우선순위를 가짐
 - 우선순위 변경 시 괄호를 사용

 

 

예제) emp2 테이블에서 정규직과 인턴직을 제외한 직급 중 
-   부서번호가 1008번이거나 취미가 오락인 직원의 이름, 고용형태, 부서번호, 취미 출력
- => (정규직과 인턴직이 아니면서 1008번 부서 소속 사원) + (정규직과 인턴직이 아니면서 오락이 취미인 사원)
- => 정규직과 인턴직이 아니면서 (1008번 부서 소속 사원 + 오락이 취미인 사원)

 

그냥 고등수학에서 배우는 집합으로 이해하면 훨씬 쉽다.

case1)

update emp2
   set hobby = '오락'
 where NAME = '백원만';      -- 실습을 위한 임시 업데이트(데이터 수정)
 


select *
  from emp2
 where emp_type not in ('정규직', '인턴직')
   and deptno = 1008
    or hobby = '오락';               -- 백원만은 출력되지 않으므로 올바른 조건임

   
    
case2)
select *
  from emp2
 where emp_type not in ('정규직', '인턴직')
   and (deptno = 1008
    or hobby = '오락');

 


    
rollback;                               -- update 취소

 

 

 

'SQL' 카테고리의 다른 글

6. 문자열 함수(2)  (2) 2024.10.16
5. 문자열 함수(1)  (0) 2024.10.15
3. Order by 절, 중복행 제거  (0) 2024.10.15
2. 계정 접속과 권한  (1) 2024.10.15
1. Select ~ From  (2) 2024.10.14