본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Project

210521_work shop (2-2) . SQL

by 케리's 2021. 5. 23.

SELECT QUESTION

 


✔ 사원테이블에서 모든 데이터를 출력하라


SELECT *
FROM EMP;

 

SQL> SELECT *
  2  FROM EMP;

EMPNO ENAME                JOB                  MGR HIREDATE   SAL  COMM DEPTNO
----- -------------------- ------------------ ----- -------- ----- ----- ------
 7369 SMITH                CLERK               7902 80/12/17   800           20
 7499 ALLEN                SALESMAN            7698 81/02/20  1600   300     30
 7521 WARD                 SALESMAN            7698 81/02/22  1250   500     30
 7566 JONES                MANAGER             7839 81/04/02  2975           20
 7654 MARTIN               SALESMAN            7698 81/09/28  1250  1400     30
 7698 BLAKE                MANAGER             7839 81/05/01  2850           30
 7782 CLARK                MANAGER             7839 81/06/09  2450           10
 7839 KING                 PRESIDENT                81/11/17  5000           10
 7844 TURNER               SALESMAN            7698 81/09/08  1500     0     30
 7900 JAMES                CLERK               7698 81/12/03   950           30
 7902 FORD                 ANALYST             7566 81/12/03  3000           20

EMPNO ENAME                JOB                  MGR HIREDATE   SAL  COMM DEPTNO
----- -------------------- ------------------ ----- -------- ----- ----- ------
 7934 MILLER               CLERK               7782 82/01/23  1300           10

12 rows selected.


✔ 사원테이블에서 사원번호, 사원이름, 월급을 출력하라

 

SELECT EMPNO, ENAME, SAL
FROM EMP;

 

SQL> SELECT EMPNO, ENAME, SAL
  2  FROM EMP;

EMPNO ENAME                  SAL
----- -------------------- -----
 7369 SMITH                  800
 7499 ALLEN                 1600
 7521 WARD                  1250
 7566 JONES                 2975
 7654 MARTIN                1250
 7698 BLAKE                 2850
 7782 CLARK                 2450
 7839 KING                  5000
 7844 TURNER                1500
 7900 JAMES                  950
 7902 FORD                  3000

EMPNO ENAME                  SAL
----- -------------------- -----
 7934 MILLER                1300

12 rows selected.

 

 

✔ 사원테이블에서 월급을 뽑는데 중복된 데이터가 없게 출력하라


SELECT DISTINCT SAL
FROM EMP;

 : 칼럼에 대해 모두 중복 제거 할 때 사용

 

SQL> SELECT DISTINCT SAL
  2  FROM EMP;

  SAL
-----
 2450
 5000
 1300
 1250
 2850
 2975
 3000
  800
 1600
 1500
  950

11 rows selected.

SQL>

 


✔ 사원테이블에서 사원이름과 월급을 출력하는데 각각의 컬럼명을 '이 름', '월 급'으로 바꿔서 출력하라.

   (단, ALIAS(별칭)에 공백추가)

 

SELECT ENAME "이 름" , SAL "월 급"
FROM EMP;

 

SQL> SELECT ENAME "이  름", SAL "월  급"
  2  FROM EMP;

이  름               월  급
-------------------- ------
SMITH                   800
ALLEN                  1600
WARD                   1250
JONES                  2975
MARTIN                 1250
BLAKE                  2850
CLARK                  2450
KING                   5000
TURNER                 1500
JAMES                   950
FORD                   3000

이  름               월  급
-------------------- ------
MILLER                 1300

12 rows selected.


✔ 사원테이블에서 사원이름, 월급을 뽑고, 월급과 커미션을 더한 값을 출력하는데

   컬럼명을 '실급여' 이라고 해서 출력하라. (단, NULL값은 나타나지 않게 하라.)


SELECT ENAME, SAL, SAL + NVL(COMM,0) "실급여"
FROM EMP;

 : NULL 값인 컬럼에서 0으로 표기할 때 사용 (코드블럭에서는 COMM값 확인하기 위해 추가함)

 

SQL> SELECT ENAME, SAL, COMM, SAL + NVL(COMM,0) 실급여
  2  FROM EMP;

ENAME                  SAL  COMM 실급여
-------------------- ----- ----- ------
SMITH                  800          800
ALLEN                 1600   300   1900
WARD                  1250   500   1750
JONES                 2975         2975
MARTIN                1250  1400   2650
BLAKE                 2850         2850
CLARK                 2450         2450
KING                  5000         5000
TURNER                1500     0   1500
JAMES                  950          950
FORD                  3000         3000

ENAME                  SAL  COMM 실급여
-------------------- ----- ----- ------
MILLER                1300         1300

12 rows selected.

 


✔ 사원테이블에서 'KING' 이라는 사원의 사원번호, 이름, 월급을 출력하라

 


SELECT EMPNO, ENAME, SAL
FROM EMP
WHERE ENAME = 'SCOTT';

 : SELECT, UPDATE, DELETE문 등에서 특정 레코드에 대한 조건을 설정할 때 사용

 

SQL> SELECT EMPNO, ENAME, SAL
  2  FROM EMP
  3  WHERE ENAME ='KING';

EMPNO ENAME                  SAL
----- -------------------- -----
 7839 KING                  5000

 

 

✔ 사원테이블에서 직위가 'SALESMAN'인 사원의 사원번호, 이름, 직위를 출력하라

 

SELECT EMPNO, ENAME, JOB
FROM EMP
WHERE JOB = 'SALESMAN';

 

SQL> SELECT EMPNO, ENAME, JOB
  2  FROM EMP
  3  WHERE JOB = 'SALESMAN';

EMPNO ENAME                JOB
----- -------------------- ------------------
 7499 ALLEN                SALESMAN
 7521 WARD                 SALESMAN
 7654 MARTIN               SALESMAN
 7844 TURNER               SALESMAN



✔ 사원테이블에서 사원번호가 7499, 7521, 7654인 사원의 사원번호, 이름, 월급을 출력하라

 

(1)
SELECT EMPNO, ENAME, SAL
FROM EMP
WHERE EMPNO IN (7499, 7521, 7654);

 : 특정 조건 이거나 , 이거나 OR처럼 사용

 

(2)
SELECT EMPNO, ENAME, SAL
FROM EMP
WHERE EMPNO = ANY (7499, 7521, 7654);

 :  다수의 비교값 중 한개라도 만족하면 true 이다.
    IN과 다른점은 비교 연산자를 사용한다는 점이다.

 

SQL> SELECT EMPNO, ENAME, SAL
  2  FROM EMP
  3  WHERE EMPNO IN (7499, 7521, 7654);

EMPNO ENAME                  SAL
----- -------------------- -----
 7499 ALLEN                 1600
 7521 WARD                  1250
 7654 MARTIN                1250

 

SQL> SELECT EMPNO, ENAME, SAL
  2  FROM EMP
  3  WHERE EMPNO = ANY (7499, 7521, 7654);

EMPNO ENAME                  SAL
----- -------------------- -----
 7499 ALLEN                 1600
 7521 WARD                  1250
 7654 MARTIN                1250

 


✔ 사원테이블에서 월급이 1500에서 3000사이인 사원의 사원번호, 이름, 월급을 출력하라.

 

(1)
SELECT EMPNO, ENAME, SAL
FROM EMP
WHERE SAL BETWEEN 1500 AND 3000;

 

(2)
SELECT EMPNO, ENAME, SAL
FROM EMP
WHERE SAL >= 1500 AND SAL <= 3000;

 

SQL> SELECT EMPNO, ENAME, SAL
  2  FROM EMP
  3  WHERE SAL BETWEEN 1500 AND 3000;

EMPNO ENAME                  SAL
----- -------------------- -----
 7499 ALLEN                 1600
 7566 JONES                 2975
 7698 BLAKE                 2850
 7782 CLARK                 2450
 7844 TURNER                1500
 7902 FORD                  3000

6 rows selected.

 

SQL> SELECT EMPNO, ENAME, SAL
  2  FROM EMP
  3  WHERE SAL >= 1500 AND SAL <= 3000;

EMPNO ENAME                  SAL
----- -------------------- -----
 7499 ALLEN                 1600
 7566 JONES                 2975
 7698 BLAKE                 2850
 7782 CLARK                 2450
 7844 TURNER                1500
 7902 FORD                  3000

6 rows selected.

 

 

✔ 사원테이블에서 이름의 첫글자가 A이고 마지막 글자가 R이 아닌 사원의 이름을 출력하라


SELECT ENAME
FROM EMP
WHERE ENAME LIKE 'A%' AND NOT ENAME LIKE '%R';

 : 쿼리문 WHERE절에 주로 사용되며 부분적으로 일치하는 칼럼을 찾을때 사용

 

SQL> SELECT ENAME
  2  FROM EMP
  3  WHERE ENAME LIKE 'A%' AND NOT ENAME LIKE '%R';

ENAME
--------------------
ALLEN

'|Project' 카테고리의 다른 글

PJT2_DB_cx_Oracle  (0) 2021.08.23
210521_work shop (2-1) . SQL  (0) 2021.05.23
210517_work shop (1) . PYTHON/웹 크롤링  (0) 2021.05.18
PJT1_Web_Crawling  (0) 2021.05.12

댓글