연결 연산자

SELECT 컬럼 || '리터럴' || ......
FROM  테이블;

 

중복 제거

SELECT [DISTINCT | ALL] 컬럼, 컬럼, ...
FROM  테이블;

 

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

SELECT ename||sal 이름_급여
FROM emp;

SELECT ename||' '||sal  이름_급여
FROM emp;

SELECT ename||'의 업무는 '||job||'입니다.'
FROM emp;

 

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

SELECT ename||' '||sal+100
FROM emp;

위와 같이 하면 오류가 난다. (연산자 우선순위 때문)

괄호를 붙여주도록 한다.

SELECT ename||' '||(sal+100)
FROM emp;

 

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

SELECT job 업무 FROM emp;

기본으로 출력되는 것이 ALL이기 때문에 전체가 출력된다.

아래와 같이 출력하면 중복을 제거해 출력한다.

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.5/4)||'입니다.'
FROM student;

 

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

SELECT cname||'과목 담당 교수번호는 '||pno||'입니다.'
FROM course;

 

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

SELECT cno 과목번호, cname 과목이름, st_num 학점수
FROM course;

 

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

SELECT DISTINCT cno "수강 과목번호"
FROM course;

+ Recent posts