급하신 분은 보라색 글씨만 보시면 됩니다. 정답 부분은 마우스로 드래그 하세요.
# = root 계정으로 명령어 입력 $ = 사용자계정 (ex. oracle) 으로 명령어 입력
> = 오라클에 접속해 DB를 불러내고 쿼리 문 입력 - - - 명령문은 대문자, 칼럼이나 기타 변수는 소문자로 쓰겠음
# = root 계정으로 명령어 입력 $ = 사용자계정 (ex. oracle) 으로 명령어 입력
> = 오라클에 접속해 DB를 불러내고 쿼리 문 입력 - - - 명령문은 대문자, 칼럼이나 기타 변수는 소문자로 쓰겠음
0. 데이터를 꺼내와라 = SELECT
1. 기본구조
> SELECT 칼럼명 from 테이블명;
ex. 부서 테이블의 모든 칼럼에 저장된 데이터를 출력
> SELECT deptno, dname, college, loc
FROM department;
> SELECT * FROM department;
FROM department;
> SELECT * FROM department;
1.1) DISTINC : 중복되는 행 출력방지
> SELECT DISTINCT deptno FROM student;
> SELECT DISTINCT deptno, grade FROM student;
> SELECT DISTINCT deptno, grade FROM student;
1.2) 칼럼별명Alias : (컬럼이름과 별명 사이) 공백처리 or AS 별명
> SELECT dname 부서이름, deptno as 부서번호 FROM department;
> SELECT dname "부서 이름", deptno "부서 번호#" FROM department; → 별명에 띄워쓰기가 있을경우 " " 로 묶어 준다.
> SELECT dname "부서 이름", deptno "부서 번호#" FROM department; → 별명에 띄워쓰기가 있을경우 " " 로 묶어 준다.
문제 1.
emp 테이블을 사용하여 empno 를 사원번호 , ename 을 사원명 , job 을 직업 으로 별명을 설정하여 출력하라.
emp 테이블을 사용하여 empno 를 사원번호 , ename 을 사원명 , job 을 직업 으로 별명을 설정하여 출력하라.
정답> select empno "사원번호", ename "사원명", job "직업" from emp;
문제 2.
dept 테이블을 사용하여 deptno 를 부서# , dname 부서명 , loc 를 위치 로 별명을 설정하여 출력하라.
문제 2.
dept 테이블을 사용하여 deptno 를 부서# , dname 부서명 , loc 를 위치 로 별명을 설정하여 출력하라.
정답> select deptno "부서#", dname "부서명", loc "위치" from dept;
1.3) 합성 연산자 : ||
> SELECT studno ||' '|| name "Student" → studno와 name을 한 칼럼으로 묶어서 출력. 둘의 사이엔 공백' '을 준다.
2 FROM student;
2 FROM student;
문제1.
교수테이블의 교수이름과, 직급을 연결해 다음내용 형식으로 출력하라.
홍길동 교수님 배고파요~~
문제 2.
교수테이블에서 교수 이름과 직급 칼럼 사이에
‘교수의 직급은’ 이라는 문자열을 추가하고 칼럼 이름을
"Title of Professor" 라는 별명을 사용하여 출력하라.
정답> select name||'의 키는'||height||'몸무게는'||weight as "학생의 키와 몸무게"
2 from student;
교수테이블의 교수이름과, 직급을 연결해 다음내용 형식으로 출력하라.
홍길동 교수님 배고파요~~
정답> select name||' '||position||'님 배고파요~~'
2 from professor;
2 from professor;
문제 2.
교수테이블에서 교수 이름과 직급 칼럼 사이에
‘교수의 직급은’ 이라는 문자열을 추가하고 칼럼 이름을
"Title of Professor" 라는 별명을 사용하여 출력하라.
정답> select name||'교수의 직급은 '||position as "Title of Professor" from professor;
문제 3.
학생 테이블에서 ‘홍길동 의 키는 180, 몸무게는 55’
와 같은 형식으로 출력되도록 리터럴 문자를 추가하고,
칼럼이름은 “학생의 키와 몸무게”라는 별명으로 출력되도록 출력하라.
학생 테이블에서 ‘홍길동 의 키는 180, 몸무게는 55’
와 같은 형식으로 출력되도록 리터럴 문자를 추가하고,
칼럼이름은 “학생의 키와 몸무게”라는 별명으로 출력되도록 출력하라.
※ 참고 : student 테이블의 칼럼 보기 => desc student;
정답> select name||'의 키는'||height||'몸무게는'||weight as "학생의 키와 몸무게"
2 from student;
오답> select name||'의 키는'height||'몸무게는'||weight as "학생의 키와 몸무게" from student;
문제 4.
아래와 같이 홍길동 (교수) , 홍길동 ‘교수’ 이렇게 나오고,
테이블명은 "교수님들"로 출력하라.
아래와 같이 홍길동 (교수) , 홍길동 ‘교수’ 이렇게 나오고,
테이블명은 "교수님들"로 출력하라.
교수님들
-------------------------
김도훈(교수), 김도훈'교수'
이재우(조교수),이재우'조교수'
-------------------------
김도훈(교수), 김도훈'교수'
이재우(조교수),이재우'조교수'
정답> select name||'('||position||'),'
2 ||name||''''||position||'''' "교수님들"
3 from professor;
오답> select name||'('||position||'),'
2 ||name||'''||position||''' "교수님들"
3 from professor;
2 ||name||''''||position||'''' "교수님들"
3 from professor;
오답> select name||'('||position||'),'
2 ||name||'''||position||''' "교수님들"
3 from professor;
※ 참고 : 문제4.의 경우처럼 '는 두개를 쳐야 하나로 인식한다.
' '
' '' ' →두개를 쳐야 하나로 인식
' "" '
' '
' '' ' →두개를 쳐야 하나로 인식
' "" '
1.4) 산술연산자
문제 1.
교수 테이블에서 교수 이름, 급여 그리고 보너스를 포함한 연봉을 출력하여라.
단, 보너스를 포함한 연봉은 급여 *12를 한 결과에 보너스 100을 더한 값으로 계산
한다.
정답> select name, sal, sal*12+100
2 from professor;
교수 테이블에서 교수 이름, 급여 그리고 보너스를 포함한 연봉을 출력하여라.
단, 보너스를 포함한 연봉은 급여 *12를 한 결과에 보너스 100을 더한 값으로 계산
한다.
정답> select name, sal, sal*12+100
2 from professor;
'Oracle > Oracle - SQL' 카테고리의 다른 글
SQL정리 5장 그룹함수 (0) | 2012.01.05 |
---|---|
SQL정리 4장 함수 (0) | 2012.01.04 |
SQL정리 1-3장 (0) | 2012.01.04 |
SQL - 기본개념 (0) | 2012.01.02 |
SQL - 실습 준비 (0) | 2012.01.02 |