KH_ORACLE_02_SELECT로 특정 데이터 추출하기

2022. 12. 20. 17:12· 교육 | 외부활동/ORACLE
목차
  1. WHERE 조건과 비교 연산자
  2. 비교 연산자
  3. 문자 데이터 조회
  4. 날짜 데이터 조회
  5. 논리 연산자
  6. AND 연산자
  7. OR 연산자
  8. NOT 연산자
  9. BETWEEN AND 연산자
  10. IN연산자
  11. LIKE 연산자와 와일드카드
  12. NOT LIKE 연산자
  13. 정렬을 위한 ORDER BY 절
  14.  
  15. 오름차순 정렬을 위한 ASC
  16. 내림차순 정렬을 위한 DESC
반응형

WHERE 조건과 비교 연산자

원하는 로우만 얻으려면 제한하는 조건을 SELECT 문제 WHERE절을 추가하여 제시해야 한다.

SELECT *
FROM EMP
WHERE SAL >= 3000;

비교 연산자

 

문자 데이터 조회

SQL에서 문자열이나 날짜는 반드시 작은따옴표 안에 표시해야 한다.

SELECT EMPNO, ENAME, SAL
FROM EMP
WHERE ENAME='FORD';
SELECT EMPNO, ENAME, SAL
FROM EMP
WHERE ENAME='ford'; -- 테이블 내에 저장된 데이터 값은 대소문자를 구분한다.

 

날짜 데이터 조회

날짜는 문자열과 마찬가지로 단일 따옴표 안에 기술해야 한다.

SELECT *
FROM EMP
WHERE HIREDATE<='1982/01/01';

 

논리 연산자

 

AND 연산자

두 가지 조건을 모두 만족할 경우에만 검색할 수 있도록 하기 위해서는 AND연산자를 사용한다.

SELECT *
FROM EMP
WHERE DEPTNO=10 AND JOB='MANAGER';

 

OR 연산자

두 가지 조건 중에서 한 가지만 만족하더라도 검색할 수 있도록 하기 위해서는 OR연산자를 사용한다.

SELECT *
FROM EMP
WHERE DEPTNO=10 OR JOB='MANAGER';

 

NOT 연산자

NOT 연산자는 참은 거짓으로 거짓은 참으로 즉 반대되는 논리값을 구하는 연산자이다.

SELECT *
FROM EMP
WHERE NOT DEPTNO=10;
SELECT *
FROM EMP
WHERE DEPTNO<>10;

 

BETWEEN AND 연산자

오라클에서는 특정 범위위 값을 조회하기 위해서는 BETWEEN AND 연산자를 사용할 수 있다.

SELECT *
FROM EMP
WHERE SAL>=2000 AND SAL<=3000;
SELECT *
FROM EMP
WHERE SAL BETWEEN 2000 AND 3000;
SELECT *
FROM EMP
WHERE SAL NOT BETWEEN 2000 AND 3000;
SELECT *
FROM EMP
WHERE HIREDATE BETWEEN '1987/01/01' AND '1987/12/31';

 

IN연산자

동일한 필드가 여러 개의 값 중에 하나인 경우인지를 살펴보기 위해서 비교 연산자와 논리 연산자 OR를 사용하여 복잡하게 쿼리문을 작성하지 않고 IN 연산자를 사용하여 훨씬 간단하게 표현할 수 있다.

SELECT *
FROM EMP
WHERE COMM=300 OR COMM=500 OR COMM=1400;
SELECT *
FROM EMP
WHERE COMM IN(300, 500, 1400);
SELECT *
FROM EMP
WHERE COMM<>300 AND COMM<>500 AND COMM<>1400;
SELECT *
FROM EMP
WHERE COMM NOT IN(300, 500, 1400);

 

LIKE 연산자와 와일드카드

LIKE 연산자는 검색하고자 하는 값을 정확히 모를 경우에도 검색 가능하도록 하기 위해서 와일드카드와 함께 사용하여 원하는 내용을 검색하도록 한다.

LIKE 다음에는 pattern을 기술해야 하는데 pattern에 다음과 같이 두 가지 와일드카드가 사용된다.

와일드카드 사용법

검색하고자 하는 값을 정확히 모를 경우 즉, 특정 문자가 포함되가만 하고 그 이전이나 이후에 어떤 문자가 몇 개가 오든지 상관없다는 의미를 표현하기 위해서는 LIKE 연산자와 함께 %를 사용해야 한다.

SELECT *
FROM EMP
WHERE ENAME LIKE 'F%';--맨 앞글자가 F
SELECT *
FROM EMP
WHERE ENAME LIKE '%A%';--글자 중 A가 포함
SELECT *
FROM EMP
WHERE ENAME LIKE '%N';--맨 뒷글자가 N

 

_역시 %와 마찬가지로 어떤 문자가 오든 상관없다는 의미로 사용되는 와일드카드이다.

차이점은 %는 몇 개의 문자가 오든 상관없지만 _는 한 문자에 대해서만 와일드카드 역할을 한다.

SELECT *
FROM EMP
WHERE ENAME LIKE '_A%';
SELECT *
FROM EMP
WHERE ENAME LIKE '_ _A%';

 

NOT LIKE 연산자

SELECT *
FROM EMP
WHERE ENAME NOT LIKE '%A%';

 

NULL을 위한 연산자

어떤 컬럼을 NULL 즉, 모르는 값과 같다(=) 라는 것은 의미상으로 말이 되지 않기 때문에 =대신 IS NULL 연산자를 사용해야 한다.

SELECT *
FROM EMP
WHERE COMM=NULL; -- NULL 값을 = 연산자로 판단할 수 없다.
SELECT *
FROM EMP
WHERE COMM IS NULL; -- EMP 테이블에서 COMM 컬럼이 NULL 사원을 출력한다.
SELECT *
FROM EMP
WHERE COMM IS NOT NULL;

 

정렬을 위한 ORDER BY 절

정렬이란 크기 순서대로 나열하는 것을 의미한다.

오름차순 정렬 방식 - ASC - 작은 것이 위에 출력되고 아래로 갈수록 큰 값이 출력

내림차순 정렬 방식 - DESC - 큰 값이 위에 출력되고 아래로 갈 수록 작은 값이 출력

로우를 정렬하기 위해서는 SELECT 문에 ORDER BY 절을 추가하고 어떤 컬럼을 기준으로 어떤 정렬을 할 것인지를 결정해야 한다.

 

오름차순 정렬을 위한 ASC

오름차순 정렬은 작은 값부터 큰 값으로 정렬하는 것을 의미한다. 이를 위해서는 ASC를 칼럼 다음에 기술해야 하는데 만일 생략하게 되면 디폴트로 ASC로 지정되어 있기 때문에 오름차순으로 출력된다.

SELECT *
FROM EMP
ORDER BY SAL ASC;
SELECT *
FROM EMP
ORDER BY SAL;
SELECT *
FROM EMP
ORDER BY ENAME; -- 문자 데이터의 경우 아스키 코드 값으로 저장되므로 아스키 코드 값을 기준으로 정렬된다.

 

내림차순 정렬을 위한 DESC

내림차순 정렬은 큰 값부터 작은 값으로 정렬을 하는 것이다.

SELECT *
FROM EMP
ORDER BY SAL DESC;
SELECT *
FROM EMP
ORDER BY HIREDATE DESC;
SELECT *
FROM EMP
ORDER BY SAL DESC, ENAME ASC;

 

반응형

'교육 | 외부활동 > ORACLE' 카테고리의 다른 글

KH_ORACLE_06_서브쿼리  (0) 2022.12.20
KH_ORACLE_05_조인  (2) 2022.12.20
KH_ORACLE_04_그룹 쿼리와 집합 연산자  (0) 2022.12.20
KH_ORACLE_03_SQL 주요 함수  (0) 2022.12.20
KH_ORACLE_01_SQL의 기본  (0) 2022.12.20
  1. WHERE 조건과 비교 연산자
  2. 비교 연산자
  3. 문자 데이터 조회
  4. 날짜 데이터 조회
  5. 논리 연산자
  6. AND 연산자
  7. OR 연산자
  8. NOT 연산자
  9. BETWEEN AND 연산자
  10. IN연산자
  11. LIKE 연산자와 와일드카드
  12. NOT LIKE 연산자
  13. 정렬을 위한 ORDER BY 절
  14.  
  15. 오름차순 정렬을 위한 ASC
  16. 내림차순 정렬을 위한 DESC
'교육 | 외부활동/ORACLE' 카테고리의 다른 글
  • KH_ORACLE_05_조인
  • KH_ORACLE_04_그룹 쿼리와 집합 연산자
  • KH_ORACLE_03_SQL 주요 함수
  • KH_ORACLE_01_SQL의 기본
wn1331
wn1331
반응형
wn1331
JONGHUN
wn1331
전체
오늘
어제
  • 분류 전체보기 (268)
    • Spring (16)
      • Spring Data JPA (0)
      • Spring Security (11)
      • Spring Batch (5)
    • DEV (40)
      • FrontEnd (2)
      • JAVA (5)
      • Git (1)
      • 기타 (6)
      • Network (1)
      • MSA (12)
      • 개발일기 || 트러블슈팅 (5)
      • 행사 || 후기 (3)
      • GraphQL (3)
      • Kotlin (0)
      • Database (2)
    • 코딩테스트 (164)
      • Programmers_LV0 (100)
      • Programmers_LV1 (54)
      • 백준 (8)
      • Algorithm (1)
    • 교육 | 외부활동 (44)
      • 이론_JAVA (13)
      • ORACLE (12)
      • PUBLISHING (6)
      • JAVASCRIPT (5)
      • JQuery (0)
      • 항해99 플러스 백엔드 (8)
    • 기본지식 (0)
    • 끄적끄적 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 학부생(용인대학교 컴퓨터과학과 1~4학년) 네이버 블로그는⋯

인기 글

태그

  • SESSION
  • 압축
  • MSA
  • 항플 백엔드
  • 스프링 부트
  • Spring Boot
  • JPA
  • 항플
  • 스프링
  • Spring Batch
  • Step
  • java
  • spring security
  • 세션
  • 항해99
  • 스프링 시큐리티
  • transaction
  • 항해플러스
  • MySQL
  • Spring

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
wn1331
KH_ORACLE_02_SELECT로 특정 데이터 추출하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.