[de] Oracle (1/3)

2023. 9. 21. 17:23data engineer/database

1. get ready

  • 공부 목적: oracle sql 문법을 익히고자 초보자를 위한 sql 200제를 풀었습니다.
  • 실행 환경: livesql https://livesql.oracle.com/apex/f?p=590:1000

해당 게시글은 sql을 공부하다면서 정리하고싶은 부분만 요약한 내용입니다.

또한, 추가적인 검색을 통해 설명을 보완했습니다. 

 

 

2.  목차

입문 > 초급 > 중급 > 활용

 

1️⃣ 입문

1. 별칭에 " "을 넣는 경우

  • 대소문자 구분 출력
  • 공백문자 출력
  • 특수문자 출력 ($, _, # 만 가능)

2. alias 편리점

  • 기존컬럼의 변형을 가하는 경우 새로운 이름 지정할 때 유용
  • ORDERBY 절에서 별칭 간결하게 사용

3. 연결 연산자

|| : 값을 연결할 떄 사용


  
SELECT ename || '의 월급은' || sal || '입니다' as 월급정보
FROM emp;

 

4. Distinct = Unique


  
SELECT Distinct job
FROM emp;
-- 동일한 결과
SELECT Unique job
FROM emp;

 

5. ORDER BY

순서 지정시 select 절에서 추린 컬럼을 순서대로 불러올 수 있다


  
SELECT ename, deptno, sal
FROM emp
ORDER BY 2 asc, 3 desc;

6. WHERE 조건절 실행 순서

오류 발생

원인: from -> where 조건 -> selct 출력 하는 순서로 기존 컬럼에서 별칭을 인식할 수 없음. 


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

 

7. 날짜형식 확인 및 변경

  • NLS_DATE_FORMAT='YY/MM/DD' : 2000년대
  • NLS_DATE_FORMAT='RR/MM/DD' : 1900년대

 


  
-- 현재 날짜 형식 확인
SELECT *
FROM NLS_SESSION_PARAMETERS
WHERE PARAMETER = 'NLS_DATE_FORMAT'
-- 변경
ALTER SESSION SET NLS_DATE_FORMAT='YY/MM/DD';
ALTER SESSION SET NLS_DATE_FORMAT='RR/MM/DD';

 

8. NVL 함수

Null 데이터를 처리하는 함수

-> comm 컬럼은 결측치가 많기에 null값은 0으로 치환해서 계산됨. 

-> NVL함수를 사용하지 않으면 결과값도 null


  
SELECT sal + NVL(comm, 0)
FROM emp
WHERE ename='KING'

 

9. 비교연산자

  • between 1 and 2 : 기간 조건
  • LIKE 연산자
    • '%a' : a로 시작하는 값
    • '%a' : a로 끝나는 값
    • '%a%' : a가 들어간 값
    • '_a': 두번째 글짜가 a 인 값
  • in

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

 

 

 

 

 

대소문자 구분 확실히 할 것!

 

대소문자

  • UPPER : 모두 대문자
  • LOWER : 모두 소문자
  • INITCAP : 첫글자만 대문자

  
SELECT UPPER(ename), LOWER(ename), INITCAP(ename)
FROM emp;

 

'data engineer > database' 카테고리의 다른 글

[de]Bigquery:기본정보와 문법  (0) 2024.03.07
[de]Bigquery: 구글서치콘솔 데이터 확인  (0) 2024.03.01
[de]Bigquery  (0) 2024.02.29
[de] Pymongo (2/2)  (0) 2023.09.21
[de] Pymongo (1/2)  (0) 2023.08.31