SELECT
: 데이터 검색, 칼럼을 가공 처리하여 조회 가능
(테스트를 위한 테이블)
모든 컬럼 값 출력
SELECT * FROM 테이블명;
컬럼 조회
DESC 테이블명;
: DESCribe 의 약자
: 해당 테이블에 어떤 컬럼이 있는지를 조회하는 명령어
테이블에서 원하는 컬러만 조회
SELECT 컬럼명 FROM 테이블명;
: 조회할 컬럼이 여러개 일 경우 ,(콤마)로 구분하고 이름을 여러 개 작성 가능
표현식을 사용하여 출력
SELECT 컬럼명, '표현식' FROM 테이블명;
: 표현식(Expression)이란 컬럼 이름 이외에 출력하기를 원하는 내용을 의미
: SELECT 구문 뒤에 ' '(작은 따옴표)로 묶어서 사용
: 리터럴(literal) 상수(문자)라고 부르기도 함
: 표현식 안에 작은 따옴표가 있을 경우 작은 따옴표 1개를 출력하기 위해서 2개를 사용해야 한다.
컬럼 별칭 사용하여 출력
: 컬럼 별칭(Column Alias)
: 테이블의 컬럼 이름이 변경되는 것이 아니라 출력될 때 임시로 바꾸어 보여주는 것
SELECT 컬럼명 AS "별칭" FROM 테이블명;
SELECT 컬럼명 "별칭" FROM 테이블명;
DISTINCT 명령어로 중복된 값을 제거하고 출력
: 10g R2 버전부터는 별도 정렬작업을 해주어야 함 (정렬기능 없음)
SELECT DISTINCT 컬럼명 FROM 테이블명;
연결 연산자로 컬럼을 붙여서 출력
: 연결(합성) 연산자 (CConcatenation)
SELECT 컬럼명1 || 컬럼명2 FROM 테이블명;
SELECT 컬럼명1 || '표현식' || 컬럼명2 FROM 테이블명;
원하는 조건만 골라내기 - WHERE절
SELECT 컬럼명
FROM 테이블명
WHERE 조건;
: 숫자 외에는 꼭 작은 따옴표를 사용
: 문자는 대소문자 구분을 함
: 날짜는 대소문자 구분이 없음
기본 산술 연산자 사용
: 덧셈, 뺄셈, 곱셈, 나눗셈 연산자를 사용하여 조회 가능
연산자 종류 | 설명 | ||
= | 비교 대상에서 같은 조건을 검색 | ||
!= , <> | 비교 대상에서 같지 않은 조건을 검색 | ||
> | 비교 대상에서 큰 조건을 검색 | ||
>= | 비교 대상에서 크거나 같은 조건을 검색 | ||
< | 비교 대상에서 작은 조건을 검색 | ||
<= | 비교 대상에서 작거나 같은 조건을 검색 | ||
BETWEEN A AND B | A와 B 사이에 있는 범위 값을 모두 검색 | ||
IN( A, B, C ) | A이거나 B이거나 C인 조건을 검색 | ||
LIKE | 특정 패턴을 가지고 있는 조건을 검색 | ||
IS NULL / IS NOT NULL | Null 값을 검색 / Null이 아닌 값을 검색 | ||
A AND B | A 조건과 B 조건을 모두 만족하는 값만 검색 | ||
A OR B | A 조건이나 B 조건 중 한 가지라도 만족하는 값을 검색 | ||
NOT A | A가 아닌 모든 조건을 검색 |
BETWEEN 연산자
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 BETWEEN 조건1 AND 조건2;
: 결과는 동일하지만 데이터가 많을수록 BETWEEN의 속도가 더 느리다.
IN 연산자
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 IN (조건1, 조건2, ...);
LIKE 연산자
: % 글자 수에 제한이 없고(0개 포함) 어떤 글자가 와도 상관 없음.
: _ (Underscore) 글자 수는 한 글자만 올 수 있고 어떤 글자가 와도 상관 없음.
: '작은 따옴표'로 묶어서 사용해야함.
: '%'나 '_' 가 조건 부분에서 가장 먼저 나올 경우 SQL의 성은은 대부분 최악으로 늦어질 경우가 많음
: 절대로 %나 _를 가장 먼저 쓰지 않는다!
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '조건%';
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '조건_';
값이 무엇인지 모를 경우
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 IS NULL;
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 IS NOT NULL;
정렬하여 출력하기 - ORDER BY
: SQL 문장에서 가장 마지막에 적어야 함
: ASC 오름차순 (기본 값. 생략가능)
: DESC 내림차순
SELECT 컬럼명 FROM 테이블명 ORDER BY ASC;
SELECT 컬럼명 FROM 테이블명 ORDER BY DESC;
집합 연산자
: 여러 건의 데이터가 모여 있다
연산자 종류 | 내용 | |
UNION | 두 집합의 결과를 합쳐서 출력. 중복 값 제거하고 정렬함 | |
UNION ALL | 두 집합의 결과를 합쳐서 출력. 중복 값 제거 안 하고 정렬 안함 | |
INTERSECT | 두 집합의 교집합 결과를 출력 및 정렬함 | |
MINUS | 두 집합의 차집합 결과를 출력 및 정령함. 쿼리의 순서가 중요함 |
UNION / UNION ALL (두 집합의 결과들을 더합니다)
SELECT 컬럼명 FROM 테이블명1 WHERE 조건
UNION ( UNION ALL )
SELECT 컬럼명 FROM 테이블명2 WHERE 조건;
INTERSECT 연산자
SELECT 컬럼명 FROM 테이블명1 WHERE 조건
INTERSECT
SELECT 컬럼명 FROM 테이블명2 WHERE 조건;
MINUS 연산자
SELECT 컬럼명 FROM 테이블명1 WHERE 조건
MINUS
SELECT 컬럼명 FROM 테이블명2 WHERE 조건;
'DataBase > OracleDB' 카테고리의 다른 글
DDL 명령과 딕셔너리 (0) | 2020.09.04 |
---|---|
Constraint (제약 조건) (0) | 2020.09.04 |
JOIN (0) | 2020.09.03 |
복수행 함수 (0) | 2020.09.02 |
단일행 함수 (0) | 2020.09.01 |