Oracle

SELECT

sejin2 2024. 6. 4. 09:54

테이블 컬럼의 정보 조회

  • (') 홑따옴표 : 문자열일 때
  • (") 쌍따옴표 : 컬럼명일 때

SELECT 

데이터를 조회할 때 사용하는 구문
>> RESULT SET : SELECT문을 통해 조회되 결과물 ( 조회된 행들의 집합 )

[표현법]
SELECT 조회하려는 컬럼명, 조회하려는 컬럼명, ...
FROM 테이블명

 

 

컬럼 값을 통한 산술 연산

: SELECT절 컬럼명 작성 부분에 산술 연산 기술 가능 ( 이때 산술 연산된 결과 조회 )

 

컬럼명에 별칭 지정하기

: 산술 연산 시 산술에 들어간 수식 그대로 컬럼명이 된다. 이때 별칭을 부여하면 깔끔하게 처리가 가능하다.

[표현법]
컬럼명 별칭 / 컬럼명 AS 별칭 / 컬럼명 "별칭" / 컬럼명 AS "별칭"
별칭에 띄어쓰기나 특수문자 포함되면 반드시 (") 쌍따옴표를 넣어줘야 한다

 

리터럴

: 임의로 지정된 문자열 ( ' )로 SQL에서 사용자가 직접 입력하는 값을 의미한다. 
SELECT절에 리터럴을 제시하면 마치 테이블 상에 존재하는 데이터 처럼 조회 가능하다. 오라클에서 리터럴은 문자열, 숫자, 날짜 등 다양한 데이터 타입의 값을 직접 명시할 수 있다. 
SELECT 절에 리터럴을 사용하는 경우, 조회된 RESULT SET의 모든 행에 반복적으로 출력

 

연결 연산자 ||

: 여러 컬럼 값들을 마치 하나의 컬럼 값인 것처럼 연결하거나, 컬럼 값과 리터럴을 연결할 수 있다.
이는 오라클 SQL에서 두 개 이상의 문자열을 연결하는 데 사용된다. 이 연산자를 사용하면 여러 문자열을 하나의 문자열로 합칠 수 있다.

SELECT 'Hello' || ' ' || 'World' AS greeting
FROM dual;

이 쿼리의 결과는 greeting이라는 열에 Hello World라는 문자열이 출력된다. 

 

DISTINCT

: 컬럼의 중복된 값들을 한 번씩만 표시하고자 할 때

🥵SELECT 절에서 DISTINCT는 한번만 기술 가능함

SELECT DISTINCT DEPT_CODE, JOB_CODE
FROM EMPLOYEE;

=> DEPT_CODE, JOB_CODE 2개의 조합 중에 중복된 것 제외

 

WHERE절

: 조회하고자 하는 테이블에서 특정 조건에 만족하는 데이터만 조회할 때 WHERE절에 조건식을 제시한다.

[표현법]
SELECT 컬럼, 컬럼, 산술연산, ...
FROM 테이블명
WHRER 조건식;

 

비교연산자

  • >, <, >=, <= : 대소비교
  • = : 같은지 비교
  • !=, ^=, < > : 같지 않은지 비교

논리연산자 : 여러 개의 조건을 묶어서 제시하고자 할 때

  • AND( ~이면서, 그리고 )
  • OR ( ~ 이거나, 또는 )
  • NOT ( 부정 ) : 컬럼명 앞 또는 BETWEEN 앞에 쓴다

BETWEEN AND : ~이상 ~이하인 범위의 조건을 제시할 때

 [표현법]
  비교대상컬럼 BETWEEN 하한 값 AND 상한 값

 

LIKE : 비교하고자 하는 컬럼 값이 내가 제시한 특정 패턴에 만족하는 경우 조회

[표현법]
비교대상컬럼 LIKE '특정패턴'
: 특정패턴 제시시 '%', '_' 와일드카드로 사용할 수 있음

- % : 0 글자 이상
EX) 비교대상컬럼 LIKE '문자%' => 비교대상 컬럼 값이 '문자'~로 시작되는  것들을 조회
    비교대상컬럼 LIKE '%문자' => 비교대상 컬럼 값이 '~문자'로 끝나는 것들을 조회
    비교대상컬럼 LIKE '%문자%' => 비교대상 컬럼 값이 '문자'가 포함되는 것들을 모두 조회

- '_' : 1 글자
EX) 비교대상컬럼 LIKE '_문자' => 비교대상 컬럼 값의 '문자' 앞에 무조건 한 글자가 올 경우 조회 
            ( 3 글자만 가능 )
    비교대상컬럼 LIKE '문자_' => 비교대상 컬럼 값의 '문자' 뒤에 무조건 한 글자가 올 경우 조회 
            ( 3 글자만 가능 )
    비교대상컬럼 LIKE '_문자_' => 비교대상 컬럼 값의 '문자' 앞과 뒤에 무조건 한 글자씩 올 경우 
            조회 ( 4 글자만 가능 )

 

이메일 중 앞에 글자가 3글자인 사원들의 사번, 사원 명, 이메일 조회
SELECT EMP_ID, EMP_NAME, EMAIL
FROM EMPLOYEE
WHERE EMAIL LIKE '___%'; → 언더바 4개로 인식 

_가 와일드 카드로 인식이 됨 -> 데이터와 와일드카드를 구분지어야 함
: 데이터 값으로 취급하고자하는 값 앞에 나만의 와일드카드 ( 아무거나 ( 문자, 숫자, 특수문자 ))를 제시하고, 
  나만의 와일드카드 escape로 등록해야 함 !

SELECT EMP_ID, EMP_NAME, EMAIL
FROM EMPLOYEE
WHERE NOT EMAIL LIKE '__#%'ESCAPE'#';

 

IS NULL / IS NOT NULL : 컬럼 값에 NULL이 있는 경우 NULL 값 비교에 사용되는 연산자

 

IN / NOT IN 

  • IN : 컬럼 값이 내가 제시한 목록 중에 일치하는 값이 있는 것만 조회
  • NOT IN : 컬럼 값이 내가 제시한 목록 중에 일치하는 값이 있는 것을 제외한 나머지 조회
[표현법]
비교대상컬럼 IN ( '값1', '값2', '값3', .... )

 

연산자 우선 순위

1. ( )
2. 산술연산자
3. 연결연산자
4. 비교연산자
5. IS NULL / LIKE '패턴' / IN
6. BETWEEN AND
7. NOT ( 논리연산자 )
8. AND ( 논리연산자 )
9. OR ( 논리연산자 )

 

ORDER BY절

: 정렬의 역할, SELECT문 가장 마지막 줄에 작성, 실행 순서 또한 맨 마지막에 실행한다.

[표현법]
SELECT 컬럼, 컬럼, ....
FROM 테이블명
WHERE 조건식
ORDER BY 정렬기준이 되는 컬럼명 | 별칭 | 컬럼순번[ ASC | DESC ] | [NULLS FIRST | NULLS LAST]
  • ASC : 오름차순 정렬 ( 생략 시 기본 값 )
  • DESC : 내림차순 정렬
  • NULLS FIRST : 정렬하고자 하는 컬럼 값에 NULL이 있는 경우 해당 데이터를 맨 앞에 배치
                              ( 생략 시 DESC일 때의 기본 값 )
  • NULLS LAST : 정렬하고자 하는 컬럼 값에 NULL이 있는 경우 해당 데이터를 맨 뒤에 배치
                              ( 생략 시 ASC일 때의 기본 값 )

'Oracle' 카테고리의 다른 글

SELECT  (0) 2024.06.10
데이터베이스  (0) 2024.06.04