SQL 기초 - 기본 SELECT문

MIN.DI·2021년 5월 17일
0

SQL

목록 보기
5/17

SQL기초 중 다시 보고싶은 내용만 정리.

데이터타입

  • 성별을 남 : 0, 여 : 1로 표현할 경우 데이터타입은 숫자타입인가 문자타입인가?
    : 산술연산이 들어가지 않으므로 '숫자형의 문자타입'
  • 급여, 점수 등 산술연산이 들어갈 가능성이높은 컬럼은 숫자타입.

ALIAS

  • SELECT에서 컬럼에 ALIAS를 사용하면 ORDER BY 절에서 ALIAS를 이용해 접근이 가능하다.
  • ORDER BY 외에 HAVING절 등에서는 ALIAS를 통한 접근이 불가능하다.
    (내부적으로 FROM, GROUP BY, HAVING절 등이 먼저 실행되고 이후에 SELECT, ORDER BY 순으로 실행되므로
    컬럼의 ALIAS는 ORDER BY에서만 사용 가능하다.)

DISTINCT

  • DISTINCT는 SELECT 바로 뒤에 한 번만 쓴다.
  • DISTINCT 뒤에 컬럼을 여러개 나열하면 여러개가 합쳐져서 중복이 제거됨.

Pseudo Column (의사 열)

: 오라클에서 내부적으로 사용되는 컬럼으로, 가상컬럼이라고도 한다.
테이블의 컬럼처럼 동작하지만 실제로 테이블에 저장되지는 않는 컬럼.

1. ROWID

  • 행의 고유한 값.
  • 인덱스와 행을 연결해 주는 값.
  • 테이블 내의 특정한 행을 유일하게 구별해 주는 값. 데이터 타입은 ROWID.
select *
from emp
where ROWID = 'AAAR8nAADAAACibAAH';

2. ROWNUM

  • select문 실행될 때 마다 부여되는 번호.
    몇 번째로 가져온 값인지?
  • 리턴되어지는 값의 개수를 제한할 때 사용할 수 있다.
  • 각 검색된 행의 일련번호로써, ORDER BY에 의한 정렬 이전에 부여됨.

EX > emp테이블에서 행을 3개만 조회하기.

select *
from emp
where ROWNUM < 4;

IN

  • IN 은 =ANY 와 같다.
  • NOT IN은 !=ALL 과 같다.
select player_name, e_player_name
from player
where player_name in ('고종수', '홍명보', '서동명');

위 쿼리는 아래 쿼리와 결과가 같다.

select player_name, e_player_name
from player
where player_name = '고종수'
   or player_name = '홍명보'
   or player_name = '서동명';

LIKE

  • % : 0개 이상의 문자와 대응
  • _ : 1개의 문자와 대응
  • ESCAPE : 검색할 문자에 %, _ 포함시 사용

EX > 영문선수 이름에 %문자가 포함된 선수들의 정보 조회

SELECT player_name 선수이름, e_player_name 영어이름, height 키
FROM player
WHERE e_player_name LIKE '%#%%' ESCAPE '#';

ESCAPE에서 꼭 #을 사용하지 않아도 된다.
(임의의 문자 아무거나 사용해도 상관 없다.)

profile
내가 보려고 쓰는 블로그

0개의 댓글