책 리뷰/초보자를 위한 SQL 200제

[Day2/30] 초보자를 위한 SQL 200제

조조링 2024. 10. 18. 17:34
728x90
반응형

 

 

이 카테고리는 정보문화사의 "초보자를 위한 SQL 200제" 30일 코스를 학습 하면서 실습한 내용입니다. 

 

 

 

1. 연결 연산자 사용하기 (||)

  • 연결 연산자 || 을 사용하면 컬럼과 컬럼을 서로 연결해서 출력할 수도 있고, 컬럼과 문자열을 연결해서 출력할 수도 있다.
SELECT ename || '의 월급은 ' || sal || '입니다.' as 월급정보
    FROM emp;

 

 

2. 중복된 데이터를 제거해서 출력하기 (DISTINCT)

  • 컬럼의 데이터를 출력할 때 중복된 데이터를 제거하고 출력하려면 DISTINCT 또는 UNIQUE 사용하면 된다.
SELECT DISTINCT job
    FROM emp;

 

 

3. 데이터를 정렬해서 출력하기 (ORDER BY)

  • 오름차순 ASC / 내림차순 DESC
  • ORDER BY절은 SQL 작성 시에도 맨 마지막에 작성하고, 오라클이 실행할 때도 맨 마지막에 실행된다.
  • 맨 마지막에 실행되기 때문에 SELECT절에 사용한 컬럼 별칭을 ORDER BY절에 사용해도 된다.
  • ORDER BY절에 컬럼명 대신 숫자를 적어줄 수도 있다. 이때, 작성한 숫자는 SELECT절 컬럼의 순서이다. 
SELECT ename, deptno, sal as 월급
    FROM emp
    ORDER BY deptno asc, 월급 desc;
SELECT ename, deptno, sal as 월급
    FROM emp
    ORDER BY 2 asc, 3 desc;

 

 

4. WHERE절 배우기 -1 (숫자 데이터 검색)

비교 연산자 기타 비교 연산자
연산자 의미 연산자 의미
> 크다 BETWEEN AND ~ 사이에 있는
< 작다 LIKE 일치하는 문자 패턴 검색
>= 크거나 같다 IS NULL NULL 값인지 여부
>= 작거나 같다 IN 값 리스트 중 일치하는 값 검색
= 같다    
!=, ^=, <> 같지 않다    
SELECT ename, sal as 월급
    FROM emp
    WHERE sal = 3000;

 

 

SELECT ename, sal as 월급
    FROM emp
    WHERE 월급 = 3000;

  • 오라클은 FROM절을 실행하고 나서 WHERE절을 실행하기 때문에 별칭을 찾지 못해서 에러 발생

 

 

5. WHERE절 배우기 -2 (문자와 날짜 검색)

  • 숫자 검색과 다르게 문자를 검색할 때는 문자 양쪽에 싱글 쿼테이션 ' ' 감싸주어야 함
SELECT ename, sal, job, hiredate, deptno
    FROM emp
    WHERE ename='SCOTT'
  • 날짜를 검색할 때는 현재 접속한 세션의 날짜 형식에 맞춰주어야 한다. 
  • 현재 접속한 세션의 날짜 형식 조회 방법은 아래와 같다. (RR 연도, MM 월, DD 일)
SELECT *
    FROM NLS_SESSION_PARAMETERS
    WHERE PARAMETER = 'NLS_DATE_FORMAT';

 

 

6. 산술 연산자 배우기

SELECT ename, sal*12 as 연봉
    FROM emp
    WHERE sal*12 >= 36000;

 

 

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

 

  • comm가 NULL 상태이기 때문에, SAL+COMM도 NULL 값이 된다. 
  • 이런 경우는 NULL이 아닌 숫자로 변경해 주어야 SAL+COMM 값이 출력될 수 있다. 
  • NVL함수는 NULL데이터를 처리해주는 함수로, NVL(comm,0)은 comm을 출력할 때, comm이 NULL이면 0으로 출력해준다.
SELECT ename, sal, comm, sal+NVL(comm,0)
    FROM emp
    WHERE deptno = 10;

 

7. 비교 연산자 배우기 

SELECT ename, sal, job, deptno
    FROM emp
    WHERE sal <= 1200;

 

 

8. 기타 비교 연산자 배우기

SELECT ename, sal
    FROM emp
    WHERE sal BETWEEN 1000 AND 3000;

SELECT ename, sal
    FROM emp
    WHERE sal NOT BETWEEN 1000 AND 3000;

 

SELECT ename, hiredate
    FROM emp
    WHERE hiredate BETWEEN '1982/01/01' AND '1982/12/31';

728x90
반응형