2020. 4. 30.

[Oracle] 3. 연결 연산자와 중복 제거 정리


연결 연사자의 사용
SQL> select 컬럼 || '리터럴' |… from 테이블;

예제 1. 다양한 방법으로 사원의 이름을 급여 또는 업무와 함께 검색한다.

SQL> select ename || sal 이름_급여 from  emp;



SQL> select ename||' '||sal 이름_급여 from emp;


SQL> select ename ||' 업무는 '||job||'입니다.' from emp;


예제 2. 주의해야할 연결 연산자를 이용

SQL> select ename||' '||sal|100 from emp;
오류

SQL> select eno||ename||(sal*12+NVL(comm,0)) from emp;



SQL> select eno||ename||sal*12+NVL(comm,0) from emp;
오류

중복 제거

SQL> select [DISTINCT | ALL] 컬럼, 컬럼…. from 테이블;

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

SQL> select job 업무 from emp;

SQL> select distinct job 업무 from emp;



실습

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

select major ||'학과인 '||sname||' 학생의 현재 평점은 '||avr||'입니다.' from student;
#출력 형식을 || 이용해서 변경



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

select cname||' 과목은 '||st_num||'학점 과목입니다.' from course;


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

select pname||'교수는 '||section||'학과 소속입니다.' from professor;


 4. 학교에는 어떤 학과가 있는지 검색한다. (학생 테이블 기반으로 검색한다.)

select distinct major from student;


 5. 학교에는 어떤 학과가 있는지 검색한다.(교수 테이블 기반으로 검색한다.)

select distinct section from professor;


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

select distinct orders from professor;


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

select sname||' 학생의 4.5 환산 평점은 '||(avr/4*4.5)||'입니다.' from student;


 8. '___과목의 담당 교수 번호는 ___입니다.' 형태로 과목의 정보를 출력한다.

select section||'과목의 담당 교수 번호는 '||pno||'입니다.' from professor;


 9. 학교에 개설된 과목들은 학점짜리인지 검색한다.

select distinct cname, st_num from course;


 10. 학생들이 수강중인 과목의 과목번호를 검색한다.

select distinct cno from score;



댓글 없음:

댓글 쓰기