Oracle SQL & PL/SQL

남승현·2023년 6월 24일
0

SQL 기본

  • SQL명령어는 하나의 문장으로 구성되어야 하며, 여러 개의 절이 모여 문장이 될 수 있음
  • 반드시 세미콜론( ; )으로 마쳐야 함

  SELECT

  • SELECT 문은 반드시 SELECT와 FROM 2개의 키워드를 가져야 함
  • 두 개의 키워드를 기준으로 SELECT 절과 FROM 절 구분
  • SELECT 절은 출력하고자 하는 컬럼명을 기술
  • FROM 절은 조회하고자 하는 테이블 이름을 기술
  • SELECT 시 Concatenation 연산자로 여러 개의 컬럼 연결 가능
SELECT ename || '의 직급은 ' || job || '입니다.'
FROM emp;

  WHERE

  • 조건절로 조건 설정을 통해 특정 컬럼만을 출력하게할 수 있음
  • WHERE 컬럼 + 연산자 + 비교대상 값의 형태와 같이 구성
  • <>, !=, ^= 연산자는 같지 않은 조건을 설정할 떄 사용
  • 논리 연산자를 통해 조건을 연결할 수 있음
    - AND, OR, NOT
  • BETWEEN A AND B 연산자 : A ~ B 사이 값을 조회할 떄 사
    - 숫자뿐만 아니라 문자, 날짜에도 사용 가능
    • 문자형 컬럼에 숫자 값이 들어가있는 경우 값의 길이가 일정하면 사용 가능
    • 숫자형 문자일 경우 길이가 일정하지 않으면 TO_NUMBER로 형 변환 후 수치값으로 검색
  • IN 연산자 : 동일한 필드가 여러 개의 값 중 하나인 경우를 판단할 때 사용
  • LIKE 연산자 : 컬럼에 저장된 데이터의 일부만 일치하더라도 조회하기 위해 사용
    - LIKE 다음에 pattern을 기술해야 하는데 두 가지 와일드카드 사용
    • % : 문자가 없거나, 하나 이상의 문자가 어떤 값이 와도 상관없음
    • _ : 하나의 문자가 어떤 값이 와도 상관없음
  • IS NULL 연산자 : 특정 컬럼의 값이 NULL 값인지 비교할 때 사용

ORDER BY

  • ORDER BY절의 경우 컬럼에 대해 정렬 가능
    ORDER BY 절의 정렬 방식
    ASC(오름차순) DESC(내림차순)
    숫자 작은 값부터 정렬 큰 값부터 정렬
    문자 사전 순서로 정렬 사전 반대 순서로 정렬
    날짜 빠른 날짜 순서로 정렬 늦은 날짜 순서로 정렬
    NULL 가장 마지막에 나옴 가장 먼저 나옴

집합 연산자

  • 테이블의 부분 지합을 결과로 반환하는 연산자
  • 합집합 (UNION)
  • 차집합 (DIFFERENCE)
  • 교집합 (INTERSECT)
  • 기본적으로 입력 테이블과 결과 테이블에서 중복 레코드를 배제됨
    - ALL 키워드를 통해 중복 레코드 허용 가능
  • 쿼리의 컬럼 개수가 같고, 대응되는 컬럼끼리 데이터 타입이 같아야 사용 가능
  • MINUS 연산은 첫 번째 쿼리의 데이터에서 두 번째 쿼리와 같은 내용을 제거해 출력함

  NULL

  • 0(zero0)이 아님

  • 빈 공간이 아님

  • 미확정 값, 알 수 없는 값을 의미

  • 연산, 할당, 비교가 불가능

  • NULL 값 변환을 위한 NVL 함수 존재


  컬럼 별칭 부여

  • AS 키워드를 활용하여 별칭 부여 가능
SELECT ename, sal*12+NVL(comm, 0) as Salary
FROM emp;
  • AS 키워드를 생략하여 별칭 부여 가능
SELECT ename, sal*12+NVL(comm, 0) Salary
FROM emp;
  • 위의 두가지 방식은 컬럼 별칭이 모두 대문자로 출력됨
  • 원하는 형태로 출력을 위해서는 큰따옴표("")를 활용하면 됨
SELECT ename, sal*12+NVL(comm, 0) "$Salary"
FROM emp;

  키워드 정리

  • DISTINCT : 중복 제거
profile
활발한 개발자

0개의 댓글