SQL - 복습1

강용구·2021년 4월 27일

SQL 공부

목록 보기
1/1

[초보자를 위한 SQL 200제]를 바탕으로 공부하고 있다.

책을 보고, SQL Developer에서 실행해 볼 때는 생생한데
뒤돌아서면 까먹는다.

복습은 필수이다!!!

SELECT *
  FROM 테이블

SELECT : '선택하라'. 테이블로부터 출력하고 싶은 열(column) 이름을 콤마(,)로 구분하여 작성한다
FROM : 데이터를 가지고 있는 테이블명
' * ' : 전체 열(column)을 조회하라

  • SQL에서는 대소문자 상관없이 수행된다
SELECT empno AS "사원 번호"
  FROM emp

AS : 컬럼 별칭(column alias) 설정하기. 영어일 때는 반드시 더블 쿼테이션(")안에 넣어주기. 한글의 경우는 자동으로 인식, 하지만 띄어쓰기가 있으면 따옴표 안에 넣어줘야 함!

SELECT ename || sal
  FROM emp

|| : 연결연산자(concatenation operator). 컬럼과 컬럼을 서로 연결해서 출력할 수 있게 해준다. 엑셀의 '&'와 쓰임이 비슷한듯!

SELECT DISTINCT job
  FROM emp

DISTINCT : 컬럼의 데이터를 출력할 때, 중복된 데이터를 제거해서 출력하고자 할 때 사용.

SELECT ename
     , sal
  FROM emp
  ORDER BY sal ASC

ORDER BY : 데이터를 정렬해서 출력하고자 할 때 사용. 오름차순 ~ ASC, 내림차순 ~ DESC.

  • SQL 작성시에 맨 마지막에 작성하고, 실행될 때도 맨 마지막에 실행된다!!
SELECT ename
     , sal
     , job
     FROM emp
     WHERE sal = 3000

WHERE : 검색하기 원하는 조건을 WHERE절에 작성하여 데이터를 작성한다. FROM절 다음에 기입!

  • 참고
    '>' : 크다
    < : 작다
    '>=' : 크거나 같다
    <= : 작거나 같다
    = : 같다
    != , ^=, <> : 같지 않다
    BETWEEN AND : ~ 사이에 있는 (하한값 AND 상한값) ** 앞에 NOT을 쓰면 ~~ 사이가 아닌 값으로 검색된다!
    LIKE : 일치하는 문자 패턴 검색
    IS NULL : NULL 값인지 여부
    IN : 값 리스트 중 일치하는 값 검색
  • WHERE 절에는 컬럼 별칭 사용 불가! (SELECT 절보다 먼저 수행되기 때문!!!)
SELECT ename
     , sal
     , job
     , hiredate
     , deptno
  FROM emp
  WHERE ename = 'SCOTT'

숫자와는 다르게 문자를 WHERE 절을 이용해서 검색할 때는 문자 양쪽에 싱글 쿼테이션 마크를 둘러 감싸 주어야 한다!

  • 문자, 날짜 모두 마찬가지
ALTER SEEEION SET NLS_DATE_FORMAT = 'YY/MM/DD'

ALTER SESSION SET : 현재 내가 접속한 세션의 파라미터를 변경하는 명령어

  • 세션 : 데이터베이스 유저로 로그인해서 로그아웃할 때까지의 한 단위. 즉 현재 세션에서만 유효한 파라미터를 적용하는 명령어.
SELECT ename
     , sal * 12 as 연봉
  FROM emp
  WHERE sal * 12 >= 36000

산술연산자에서는 곱셈이 덧셈보다 우선순위이다!

SELECT ename
     , sal
     , comm
     , sal + comm
  FROM emp
  WHERE deptno = 10

null 값이 출력되는 경우가 있다.
NULL 값은 데이터가 할당되지 않은, 알 수 없는 값이다.
NULL값이 포함된 컬럼에 NVL함수를 적용해주면 된다

NVL(comm, 0) : NULL이면 0으로 출력하라!

SELECT ename
     , sal
  FROM emp
  WHERE ename LIKE 'S%'

LIKE : 문자 패턴이 일치하는 데이터를 검색
% : 일명 '와일드 카드'. 이 자리에 어떠한 철자가 오든, 철자의 개수가 몇 개가 되든 관계없다는 의미. 즉 0개 이상의 임의 문자와 일치.
_ : 하나의 문자와 일치.

SELECT ename
     , sal
     , job
  FROM emp
  WHERE job in ('SALESMAN', 'ANALYST', 'MANAGER')

IN : WHERE절에서 여러 리스트의 값을 한번에 조회할 수 있다!

  • 해당 리스트에 포함되지 않는 값을 조회하려면 앞에 NOT 을 붙인다
profile
Lifetime Value Creator

0개의 댓글