반응형

데이터베이스 버전: Oracle 19c Enterprise Edition

DB Tool: SQL Developer

 

다음 예제는 문제, 주의사항, 해답 순으로 작성합니다.

 

 


문제

1. 사원(emp) 테이블에서 사원 번호, 이름, 월급을 출력하세요.

2. 사원(emp) 테이블의 모든 열(column)들을 출력하세요.

3. 사원(emp) 테이블의 사원 번호, 이름, 월급을 출력하는데 컬럼명을 한글로 '사원 번호', '사원 이름'으로 출력하세요.

4. 사원(emp) 테이블의 이름과 월급을 서로 붙여서 출력하세요.

5. 사원(emp) 테이블에서 직업을 출력하는데 중복된 데이터를 제외하고 출력하세요.

6. 사원(emp) 테이블에서 월급이 낮은 사원 순서대로 이름, 월급을 출력하세요.

7. 사원(emp) 테이블에서 월급이 3000인 사원들의 이름, 월급, 직업을 출력하세요.

8. 사원(emp) 테이블에서 이름이 SCOTT인 사원의 이름, 월급, 직업, 입사일, 부서 번호를 출력하세요.

9. 사원(emp) 테이블에서 연봉이 36000 이상인 사원들의 이름, 연봉을 출력하세요.

10. 사원(emp) 테이블에서 월급이 1200 이하인 사원들의 이름, 월급, 직업, 부서 번호를 출력하세요.

11. 사원(emp) 테이블에서 월급이 1000에서 3000 사이인 사원들의 이름, 월급을 출력하세요.

12. 사원(emp) 테이블에서 이름의 첫 글자가 S로 시작하는 사원들의 이름, 월급을 출력하세요.

13. 사원(emp) 테이블에서 커미션이 NULL인 사원들의 이름과 커미션을 출력하세요.

14. 사원(emp) 테이블에서 직업이 SALESMAN, ANALYST, MANAGER 인 사람들의 이름, 월급, 직업을 출력하세요.

15. 사원(emp) 테이블에서 직업이 SALESMAN, 월급이 1200 이상인 사원들의 이름, 월급, 직업을 출력하세요.

16. 사원(emp) 테이블에서 이름이 KING인 사원의 이름, 월급, 커미션, 월급과 커미션을 합한 값을 출력하세요.

17. 사원(emp) 테이블에서 월급이 1000에서 3000 사이가 아닌 사원들의 이름, 월급을 출력하세요.

18. 사원(emp) 테이블에서 이름의 두 번째 철자가 M인 사원의 이름을 출력하세요.

19. 사원(emp) 테이블에서 직업이 SALESMAN, ANALYST, MANAGER 가 아닌 사원들의 이름, 월급, 직업을 출력하세요.

20. 사원(emp) 테이블에서 'OOO의 월급은 OOO 입니다.' 라는 내용을 컬럼명 '월급정보'로 출력하세요.

 


주의사항

1. SQL은 대문자로 작성하고 컬럼명과 테이블명은 소문자로 작성하기를 권장합니다.

2. SELECT절과 FROM절을 각각 별도의 라인에 작성하기를 권장합니다.

3. SELECT절 다음 라인에 FROM 절을 작성할 때는 2칸에서 3칸 정도 공백을 들여쓰기를 권장합니다.

4. 컬럼 별칭에 ""를 감싸줘야 하는 경우

1) 대소문자를 구분하여 출력할 때

2) 공백문자를 출력할 때

3) 특수문자를 출력할 때($, _, #만 가능)

 

 


해답

1.

SELECT empno, ename, sal

  FROM emp;

 

2.

SELECT *

  FROM emp;

 

3.

SELECT empno as "사원 번호", ename as "사원 이름", sal

  FROM emp;

 

4.

SELECT ename || sal

  FROM emp;

 

5.

SELECT DISTINCT job

  FROM emp;

 

SELECT UNIQUE job

  FROM emp;

 

6.

SELECT ename, sal

  FROM emp

ORDER BY sal asc;

 

SELECT ename, deptno, sal

  FROM emp

ORDER BY deptno asc, sal desc;

다음과 같이 ORDER BY절에 컬럼명 대신 숫자를 기입할 수도 있습니다.

SELECT ename, deptno, sal

  FROM emp

ORDER BY 2 asc, 3 desc;

 

7.

SELECT ename, sal, job

  FROM emp

WHERE sal = 3000;

 

8.

SELECT ename, sal, job, hiredate, deptno

  FROM emp

WHERE ename = 'SCOTT';

 

9.

SELECT ename, sal*12 as 연봉

  FROM emp

WHERE sal*12 >= 36000;

 

10.

SELECT ename, sal, job, deptno

  FROM emp

WHERE sal <= 1200;

 

11.

SELECT ename, sal

  FROM emp

WHERE sal BETWEEN 1000 AND 3000;

 

SELECT ename, sal

  FROM emp

WHERE (sal >= 1000 AND sal <= 3000);

 

12.

SELECT ename, sal

  FROM emp

WHERE ename LIKE 'S%';

 

13.

SELECT ename, comm

  FROM emp

WHERE comm is null;

 

14.

SELECT ename, sal, job

  FROM emp

WHERE job in ('SALESMAN', 'ANALYST', 'MANAGER');

 

15.

SELECT ename, sal, job

  FROM emp

WHERE job = 'SALESMAN' AND sal >= 1200;

 

16.

SELECT ename, sal, comm, sal + NVL(comm,0)

  FROM emp

WHERE ename = 'KING';

 

17.

SELECT ename, sal

  FROM emp

WHERE sal NOT BETWEEN 1000 AND 3000;

 

SELECT ename, sal

  FROM emp

WHERE (sal < 1000 OR sal > 3000);

 

18.

SELECT ename

  FROM emp

WHERE ename LIKE '_M%';

 

19.

SELECT ename, sal, job

  FROM emp

WHERE job NOT in ('SALESMAN', 'ANALYST', 'MANAGER');

 

20.

SELECT ename || '의 월급은 ' || sal || '입니다.' as 월급정보

  FROM emp;

 

반응형

'DB > Oracle' 카테고리의 다른 글

#2 실습 테이블 생성 및 데이터 삽입 스크립트  (0) 2022.01.31
#1 실습 계정 생성  (0) 2022.01.25
반응형

데이터베이스 버전: Oracle 19c Enterprise Edition

DB Tool: SQL Developer

 

1. 스크립트 실행

SQL 실습을 위해 테이블 생성 및 데이터 삽입을 진행합니다.

다음 스크립트를 실행합니다.

alter session set nls_date_format='RR/MM/DD';
drop table emp;
drop table dept;
CREATE TABLE DEPT (DEPTNO number(10), DNAME VARCHAR2(14), LOC VARCHAR2(13) );
INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');
CREATE TABLE EMP ( EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4) , HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2) );
INSERT INTO EMP VALUES (7839,'KING','PRESIDENT',NULL,'81-11-17',5000,NULL,10);
INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER',7839,'81-05-01',2850,NULL,30);
INSERT INTO EMP VALUES (7782,'CLARK','MANAGER',7839,'81-05-09',2450,NULL,10);
INSERT INTO EMP VALUES (7566,'JONES','MANAGER',7839,'81-04-01',2975,NULL,20);
INSERT INTO EMP VALUES (7654,'MARTIN','SALESMAN',7698,'81-09-10',1250,1400,30);
INSERT INTO EMP VALUES (7499,'ALLEN','SALESMAN',7698,'81-02-11',1600,300,30);
INSERT INTO EMP VALUES (7844,'TURNER','SALESMAN',7698,'81-08-21',1500,0,30);
INSERT INTO EMP VALUES (7900,'JAMES','CLERK',7698,'81-12-11',950,NULL,30);
INSERT INTO EMP VALUES (7521,'WARD','SALESMAN',7698,'81-02-23',1250,500,30);
INSERT INTO EMP VALUES (7902,'FORD','ANALYST',7566,'81-12-11',3000,NULL,20);
INSERT INTO EMP VALUES (7369,'SMITH','CLERK',7902,'80-12-11',800,NULL,20);
INSERT INTO EMP VALUES (7788,'SCOTT','ANALYST',7566,'82-12-22',3000,NULL,20);
INSERT INTO EMP VALUES (7876,'ADAMS','CLERK',7788,'83-01-15',1100,NULL,20);
INSERT INTO EMP VALUES (7934,'MILLER','CLERK',7782,'82-01-11',1300,NULL,10);
commit;
drop table salgrade;
create table salgrade ( grade number(10), losal number(10), hisal number(10) );
insert into salgrade values(1,700,1200);
insert into salgrade values(2,1201,1400);
insert into salgrade values(3,1401,2000);
insert into salgrade values(4,2001,3000);
insert into salgrade values(5,3001,9999);
commit;

 


2. 데이터 확인

select * from emp;

명령어를 실행하여 emp 테이블의 데이터를 확인합니다.

 

 


데이터베이스 설치를 진행하지 않았다면 하기의 링크를 참고하세요.

https://boyboy94.tistory.com/31?category=891749 

 

[DB] Oracle 19c Enterprise Edition 설치

OS 버전: Windows 10 Pro 설치 버전: Oracle 19c Enterprise Edition 설치 목적: DB 학습 1. 설치 파일 준비 Oracle 19c EE 설치 파일을 준비합니다. 자신의 OS 버전에 맞는 설치 파일을 준비합니다. https://www...

boyboy94.tistory.com

 

SQL Developer 설치를 진행하지 않았다면 하기의 링크를 참고하세요.

https://boyboy94.tistory.com/33?category=891749 

 

[DB] SQL Developer 설치

OS 버전: Windows 10 Pro 설치 버전: SQL Developer 21.4.2 Oracle 버전: 19c 설치 목적: DB 학습 1. 설치 파일 준비 SQL Developer 설치 파일을 준비합니다. 자신의 OS 버전에 맞는 설치 파일을 준비합니다. http..

boyboy94.tistory.com

 

반응형

'DB > Oracle' 카테고리의 다른 글

#3 SQL 입문 예제  (0) 2022.02.01
#1 실습 계정 생성  (0) 2022.01.25
반응형

데이터베이스 버전: Oracle 19c Enterprise Edition

 

Oracle을 처음 설치하고 설치를 확인할 때 사용한 계정은 SYS 계정이었습니다.

SYS 계정은 Oracle의 모든 권한을 소유하고 있는 최고 권한 유저이므로 SYS 계정으로 실습하지 않고,

scott이라는 이름의 계정을 생성해서 앞으로의 실습을 진행하겠습니다. 

 


1. cmd 실행

윈도우 키를 누르고 검색창에 cmd를 입력하여 명령 프롬프트(cmd)를 실행합니다.

 

2. 계정 생성 및 접속 확인

명령어

sqlplus / as sysdba 

create user scott identified by tiger;

grant dba to scott;

connect scott/tiger

show user


데이터베이스 설치를 진행하지 않았다면 하기의 링크를 참고하세요.

https://boyboy94.tistory.com/31?category=891749 

 

[DB] Oracle 19c Enterprise Edition 설치

OS 버전: Windows 10 Pro 설치 버전: Oracle 19c Enterprise Edition 설치 목적: DB 학습 1. 설치 파일 준비 Oracle 19c EE 설치 파일을 준비합니다. 자신의 OS 버전에 맞는 설치 파일을 준비합니다. https://www...

boyboy94.tistory.com

 

반응형

'DB > Oracle' 카테고리의 다른 글

#3 SQL 입문 예제  (0) 2022.02.01
#2 실습 테이블 생성 및 데이터 삽입 스크립트  (0) 2022.01.31

+ Recent posts