본문 바로가기

정보보호관리자 과정 교육/Oracle

3강 연결 연산자(||)와 중복제거(Distinct)

★ 연결 연산자의 사용
   SQL> SELECT 컬럼 || '문자열' || ..  FROM 테이블;

   - 지정한 문자열이나 컬럼을 하나의 문자열로 생성한다.
   - 연결 연산자로 연결되는 문자열은 반드시 단일 인용부호(')를 사용한다.
      . SELECT문에 쓰이는 문자열, 숫자, 날짜를 리터럴이라 한다.
      . 리터럴은 반드시 단일 인용부호를 사용한다.
   - 연결 연산자는 SELECT문을 이용 다양한 문장을 만들 때 많이 사용된다.


예제 1. 사원의 이름을 직무와 함께 검색하고 급여와도 함께 검색한 다음 결과를 비교해 보자.

    • 사원의 이름을 그병와 함께 검색
    • 컬럼명이 길어서 컬럼이 개행되어 나온다.
    • col 컬럼명 format a컬럼수 : 컬럼수를 20으로 늘린다.


    • 사원의 이름을 직무와 함께 검색


예제 2. 사원의 년봉를 검색하고 에러를 확인해 보자.

    • 사원의 년봉을 검색. 에러 출력. ( ~||sal 까지 펴시가 되지만 그 뒤 * 때문에 오류가 난다. ) 연산자 우선순위.

    • 문제가 되는 부분을 묶어주면 해결 ~



★ 중복 제거
SQL> SELECT [DISTINCT | ALL] 컬럼, 컬럼, ...  FROM <테이블>;

   - DISTINCT : 중복된 출력 값은 한번만 출력한다.
   - ALL : 중복된 값을 모두 출력한다.(기본값이다.)

예제 3. 직원들의 업무는 어떤 것이 있는지 검색한다.(업무의 종류를 검색한다.)







실습

① '____학과인 ____학생의 현재 평점은 __입니다.' 형태로 학생의 정보를 출력한다.


② '____교수는 ____학과 소속입니다.' 형태로 교수의 정보를 출력한다.


③ '____학생의 4.5 환산 평점은 ____입니다.' 형태로 학생의 환산 평점을 출력한다.


④ 학교에는 어떤 학과가 있는지 검색한다.


⑤ 교수의 지위는 어떤 것들이 있는지 검색한다.








문제

1. '___의 년봉은 __입니다.' 형태로 각 직원의 년봉을 출력한다.



2. '_____과목의 학점은 ___학점입니다.' 형태로 과목의 정보를 검색한다.


3. 학교에 학생이 재학 중인 학과와 학년을 검색한다.