[Oracle] Select

Jay·2021년 6월 15일
0

Oracle

목록 보기
1/1

안녕하세요! 오늘은 SQL에서 가장 기본적인 'SELECT' 에 대해 배워보려고 합니다.
SELECT는 Table을 조회할 때 사용하는데요.
SELECT를 잘 쓸 수 있다면 쿼리를 간단하게 만들 수도 있습니다 👍
그럼 차근차근 시작해보겠습니다!


1. SELECT의 구조

SELECT ( 컬럼명 ), ( 컬럼명 ), ( 컬럼명 )
FROM 테이블명1 ( ,테이블명 2 (만약 SUB-QUERY를 쓴다면 Table 추가 가능))
WHERE 조건식1 [ AND | OR | NOT ] 조건식X
GROUP BY 그룹핑 대상 컬럼명 , (+ 그룹핑 대상 컬럼명 2 )
HAVING 그룹핑 결과에 대한 조건식
ORDER BY 정렬컬럼명1 정렬방법1, (+ 정렬컬럼명2 정렬방법2);

1. 컬럼 작성 부분의 조건식 종류

(1) DISTINCT : 동일한 데이터들을 중복을 제거해서 출력함
(2) 별칭 (Alias) : 컬럼 이름이 애매하거나, 길거나, 영어거나 등등의 이유로 한 눈에 알아보기 힘든 경우에 사용자가 해당 컬럼의 별칭을 지정할 수 있음

  • WHERE 절, GROUP BY 절, HAVING 절은 컬럼 별칭은 없음

2. WHERE 조건식의 종류

(1) 산술연산자 : + - * /, mod(A/B) > A를 B로 나눴을 때의 나머지 반환
(2) 비교연산자 : =(같다), !=(다르다), <>(다르다), <, >, <=, >=
(3) 논리연산자 : and, or, not
(4) SQL전용연산자

  • BETWEEN A AND B : A에서 B 사이에 해당하는 데이터를 출력
    A 시작값, B 종료값 (조건에 A와 B도 포함)
  • is null / is not null : 해당 컬럼이 NULL인지 아닌지 확인
  • in / not in : 컬럼에 해당 값이 존재하는지 확인
    (ex) in (값1, 값2, 값3))
  • like : 컬럼 값 중 어느 한 부분을 찾는 데 사용,
    % 모든 문자 대체, _ (밑줄) 한문자 대체
    (ex) like '%bear' (앞에서부터), like '%bear%'(앞뒤), like 'bear%'(뒤에서부터)
    like '_bear'
  • exist / not exist : 서브쿼리에서 사용하는데, 조회한 결과가 있을때는
    정상적으로 조회를 수행하고 없으면 수행하지 않음
  • WHERE 절에 그룹 함수를 사용해서는 안된다

2. ORDER BY

  • 정렬 가능한 항목 : 컬럼, 인덱스 번호, 별명, 수식 등
  • 정렬 방법 : 올림차순(ASC) (올림차순은 기본으로 설정되어 있어 따로 작성하지 않아도 됩니다.) , 내림차순 (DESC)
  • 정렬 기준
    (1) 숫자 : 01234...
    (2) 날짜 : 1900, 1901, 2000..
    (3) 한글 : 가나다...
    (4) 영어 : ABC...

3.GROUP BY

  • 특정 컬럼을 기준으로 그룹화하여 그룹별로 구분하기 위해 사용

2. SELECT의 실행 순서

(5) SELECT ( 컬럼명 ), ( 컬럼명 ), ( 컬럼명 ) … … .
(1) FROM 테이블명1 ( ,테이블명 2 / 만약 SUB-QUERY를 쓴다면 Table 추가 가능)
(2) WHERE 조건식1 [ AND | OR | NOT ] 조건식2
(3) GROUP BY 그룹핑 대상 컬럼명 , (+ 그룹핑 대상 컬럼명 2 … … .)
(4) HAVING 그룹핑 결과에 대한 조건식
(6) ORDER BY 정렬컬럼명1 정렬방법1, (+ 정렬컬럼명2 정렬방법2);

  • 실행순서는 해당 쿼리를 실행 할 때, 어느 구문 먼저 실행되는지 순서를 말합니다.

3. 쿼리 작성시 주의사항

  1. 'Oracle' 기준, 대소문자를 구별하지 않습니다.
    DB에서 자동으로 식별자를 대문자로 처리하기 때문입니다.
  2. 따옴표 주의 : 이 문제로 에러가 나면 헷갈리기 쉽습니다.
    문자열은 '' 별칭(Alias)은 "" 를 씁니다.
  3. 변수, 테이블 명등 사용자가 이름을 설정하는 경우, 예약어와 식별자를 사용할 수 없습니다.
    (ex) view )
profile
🟣 Fake till you make it 🟣 Finish Strong 💪

0개의 댓글