본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Playdata_study/SQL.Oracle

210517_ DB 1 (SQL)

by 케리's 2021. 5. 17.

✓ db 설치 후 속성 파일을 확인할 수 있다.
✓ sid 개념을 이해할 수 있다.
✓ select구문을 이해하고 활용할 수 있다.

 



✔ SELECT 컬럼리스트 , , , [ * (전체출력)]
    FROM 테이블명 ;

 


Q1) 생성된 모든 테이블을 확인하자.


  SELECT *
  FROM TAB;

 


Q2) 접속된 계정을 확인하자.


  SHOW USER;

 


Q3) 생성된 테이블 중 사원테이블(EMP)의 구조를 살펴보자.


  DESC EMP;


Q4) 생성된 테이블 중 부서 (DEPT)테이블의 구조를 살펴보자.


  DESC DEPT;

Q5) 사원테이블의 모든 컬럼을 확인하자.


  SELECT *
  FROM EMP;

 

 


Q6) 부서테이블의 모든 컬럼을 확인하자.


  SELECT *
  FROM DEPT;

 

 

 

Q7) 사원테이블에서 사원의 이름, 사번을 출력해보자.


  SELECT ENAME, EMPNO
  FROM EMP;

 

 

Q8) 사원테이블에서 사원의 이름과 연봉을 출력하자.

 

  SELECT ENAME, SAL

  FROM EMP;

 


Q9) 사원테이블에서 사원의 이름과 연봉, 커미션을 출력하자.

 

  SELECT ENAME, SAL, COMM

  FROM EMP;

 


Q10) 부서테이블에서 부서번호와 부서위치를 출력하자

 

  SELECT DEPTNO, LOC

  FROM DEPT;

 


Q11) 사원테이블에서 사원의 이름과 매니저 사원번호 출력

 

  SELECT ENAME, MGR

  FROM EMP;

 


Q12) 사원테이블과 부서테의블의 전체 내용을 출력하자


   SELECT *

   FROM EMP,DEPT;

 

총 48개의 리스트가 출력된다.

 



Q13) 사원의 이름과 부서번호, 부서이름을 출력하자. (중복을 피하기 위해 별칭을준다)


  SELECT EMP.ENAME, EMP.DEPTNO, DEPT.DNAME
  FROM EMP, DEPT;

 

 



✔ SELECT 컬럼[AS는 선택] 별칭(별칭이 공백이면 " " 줘야한다) , , ,
    FROM 테이블 명 별칭 , , , , ;

 


Q14) 사원의 이름과 부서번호, 부서이름을 출력하되
테이블에 각각 사원 부서로 별칭을주자. (테이블 별칭)


  SELECT 사원.ENAME, 부서.DEPTNO, 부서.DNAME
  FROM EMP 사원, DEPT부서;

 

 


Q15) 사원테이블에서 사원의 이름, 부서번호, 봉급이라고 타이틀(별칭)을 주고 출력하자.


  SELECT ENAME "사원의 이름", DEPTNO "부서번호", SAL 봉급
  FROM EMP

  

 

  SELECT ENAME AS "사원의 이름", DEPTNO AS "부서번호", SAL AS 봉급

  FROM EMP

 

 

  SELECT ENAME AS "사원의 이름", DEPTNO AS "부서번호", SAL AS 봉급

  FROM EMP AS 사원 → X

 

   

  ♯ "사원의 이름" 처럼 공백이 있을때 (" ") 사용

  ♯ 그 외에는 사용하지 않아도 작성 가능하다. 

 






Q16) 문자열 연결 연산자. || : SELECT 위치에 지정


  ex) 이름 님 이라고 출력하자.

 


  SELECT ENAME ||'님'
  FROM EMP;

 

 


= "= CHAR 정적 , VARCHAR, VARCHAR2 (가변)

CHAR (20) != VARCHAR(20)

 

 

 


Q17) ○○님은 ○○일에 입사했다.


  SELECT ENAME ||'님 은', HIREDATE ||'일에 입사했다'
  FROM EMP;


  SELECT ENAME ||'님 은 ''||HIREDATE ||'일에 입사했다'
  FROM EMP;

 


Q18) 중복데이터를 삭제하는 DISTINCT (열 중복제거) ↔ 반대는 ALL


  SELECT DISTINCT 컬럼
  FROM 테이블;

 

  

 컬럼이 2가지 값이 정해질 때 사원번호가 다를경우 중복제거가 되지 않는다.

 


Q19) 사칙연산 (컬럼)


  ex) 사원테이블에서 연봉을 구하자
       연봉 * 12 + 커미션

 

  SELECT ENAME, SAL*12+COMM  
  FROM EMP;

 

 

  SELECT ENAME, SAL, COMM, SAL*12+COMM AS 연봉

  FROM EMP;

 


  SELECT ENAME, SAL*12+NVL(COMM,0) 연봉 = SELECT ENAME, SAL*12+NVL(COMM,0) AS 연봉

  FROM EMP;

 

    위의 경우 COMM이 NULL값으로 연봉이 제대로입력되지 않음, 

       NULL값을  NVL(COMM,0)으로 값을 채워준후 재 계산 한다.

 


  SELECT COMM, NVL(COMM,0)

 




✔ SELECT 컬럼 [AS는 선택] 별칭(공백이면 " " 줘야한다) , , ,
   FROM 테이블명 별칭 , , , ,
   ORDER BY 정렬할 컬럼 [ASC(DEFAULT,오름차순), DESC(내림차순)];

 


Q20)


  SELECT ENAME
  FROM EMP
  ORDER BY ENAME;

 

  값을 주지않으면 DEFAULT값으로 오름차순 정렬

 

 

  SELECT ENAME

  FROM EMP

  ORDER BY ENAME DESC;

 

 

 

   컬럼 값이 2일때는 첫번째 컬럼은 '1', 두번째 컬럼은 '2' 라고 표기한다.

 

 

  SELECT ENAME, SAL

  FROM EMP

  ORDER BY 1;

 


  SELECT ENAME, SAL
  FROM EMP
  ORDER BY 2 DESC;

 

댓글