안녕하세요 jju_developer 입니다.
오늘은 지난시간의 SQL*Plus에 이어서 SELECT로 특정 데이터를 추출하는 방법에 대해 소개하는 시간을 갖겠습니다.
#DATABASE
#Oracle SQL
우선 만들어진 표의 이름은 EMP이며, 정보는 다음과 같습니다.
✔ WHERE 조건과 비교 연산자
전체를 다 가져오기 보다는 원하는 로우 값을 얻으려면 SELECT문에 WHERE 절만 추가하면 됩니다.
비교 연산자를 통해서 원하는 값만 얻을 수 있습니다.
no | 연산자 | 의미 | 예제 |
1 | = | 같다. | SELECT EMPNO, ENAME, SAL FROM EMP WHERE SAL=3000; |
2 | > | 보다 크다. | SELECT EMPNO, ENAME, SAL FROM EMP WHERE SAL>3000; |
3 | < | 보다 작다. | SELECT EMPNO, ENAME, SAL FROM EMP WHERE SAL<3000; |
4 | >= | 보다 크거나 같다. | SELECT EMPNO, ENAME, SAL FROM EMP WHERE SAL>=3000; |
5 | <= | 보다 작거나 같다. | SELECT EMPNO, ENAME, SAL FROM EMP WHERE SAL<=3000; |
6 | <>, !=, ^= | 다르다. | SELECT EMPNO, ENAME, SAL FROM EMP WHERE SAL<>3000; |
예시)
SELECT EMPNO,ENAME, SAL FROM EMP
WHERE SAL != 3000;
--셀러리가 3000이 아닌 값만 가져와라!
결과)
✔ 문자 데이터 조회
SQL에서 문자열이나 날짜는 반드시 작은따옴표('')안에 표시해야 합니다.
※대소문자 필수 구분!
DESC EMP;
SELECT EMPNO, ENAME, SAL
FROM EMP
WHERE ENAME = 'FORD';
이름이 FORD 인 사람을 조회하는 구문입니다.
결과)
✔ 날짜 데이터 조회
✔ 논리 연산자
no | 연산자 | 의미 | 예제 |
1 | AND | 두 가지 조건을 모두 만족해야만 검색할 수 있습니다. | SELECT * FROM emp WHERE deptno=10 AND job='MANAGER'; |
2 | OR | 두 가지 조건 중에서 한 가지만 만족하더라도 검색할 수 있습니다. | SELECT * FROM emp WHERE deptno=10 OR job='MANAGER'; |
3 | NOT | 조건에 만족하지 못하는 것만 검색합니다. | SELECT * FROM emp WHERE NOT deptno=10; |
✔ BETWEEN AND 연산자
✔ IN연산자
동일한 필드가 여러 개의 값 중에 하나인 경우인지를 살펴보기 위해서 비교 연산자와 논리 연산자 OR를 사용하여 복잡하게 쿼리문을 작성하지 않고 IN 연산자를 사용하여 훨씬 간단하게 표현할 수 있습니다.
-> 이거를 WHERE COMM<>300 AND COMM<>500 ABD COMM<>1400 으로도 쓸 수 있습니다.
✔ LIKE 연산자와 와일드카드
LIKE 연산자는 검색하고자 하는 값을 정확히 모를 경우에도 검색 가능하도록 하기 위해서 와일드카드와 함께 사용하여 원하는 내용을 검색하도록 합니다.
LIKE 다음에는 pattern을 기술해야 하는데 pattern에 다음과 같이 두 가지 와일드카드가 사용됩니다.
와일드카드의 의미
% : 문자가 없거나, 하나 이상의 문자가 어떤 값이 와도 상관없다.
_ : 하나의 문자가 어떤 값이 와도 상관없다.
SELECT* FROM EMP
WHERE ENAME LIKE 'F%';
--뒤에 무슨 문자가 오던지 간에 이름이 F로 시작하는 애들 찾아
-> 앞뒤에 A가 있으면 검색됩니다.
-> _뒤에오는 문자가 포함된 이름은 전부 검색 됩니다.
✔ NULL을 위한 연산자
어떤 컬럼을 NULL 즉, 모르는 값과 같다(=)라는 것은 의미상으로 말이 되지 않기 때문에 = 대신 IS NULL 연산자를 사용해야 합니다.
오라클에서 NULL 값을 겁색 하고 싶을때 그냥 WHERE COMM NULL; 이라고 하면 아무것도 검색이 되지 않습니다.
반드시 IS NULL 로 검색하여야 합니다.
반대로 NULL 이 아닌 항복만 검색하고 싶을때에는 IS NOT NULL로 변경하시면 됩니다.
✔ 정렬을 위한 ORDER BY절
정렬이란 크기 순서대로 나열하는 것을 의미한다.
오름차순(ascending) 정렬 방식
• 작은 것이 위에 출력되고 아래로 갈수록 큰 값이 출력
내림차순(descending) 정렬 방식
• 큰 값이 위에 출력되고 아래로 갈수록 작은 값이 출력
로우를 정렬하기 위해서는 SELECT 문에 ORDER BY 절을 추가하고 어떤 컬럼을 기준으로 어떤 정렬을 할 것인지를 결정해야 한다.
지금까지 오라클에서 SELECT로 특정 데이터를 추출 하는 방법에 대한 설명이였습니다.
궁금하신 점이나 수정사항은 댓글 부탁드립니다.
감사합니다.
'주니어 기초 코딩공부 > Database 기초' 카테고리의 다른 글
06장 SQL 그룹쿼리와 집합연산자 (오라클) (0) | 2022.12.14 |
---|---|
05장 SQL 주요 함수 (숫자 함수, 문자 함수) (0) | 2022.12.13 |
03. SQL과 SQL*PLUS의 개념 (1) | 2022.12.13 |
02. SQL의 기본 데이터 형, 연산자 소개 (1) | 2022.12.12 |
01. 데이터베이스의 개념 설명 및 SQL 예시 (0) | 2022.12.12 |