정보보안공부
Oracle_ select명령을 이용한 다양한 데이터조회 본문
데이터들을 조회하기위해서는 SELECT쿼리는 반드시 필요하다. SELECT쿼리를 어떻게 사용하는가에 따라서 조회하는 내용을 깔끔하게 정리할 수 있다. 하지만 데이터가 무수히 많을때 같은 결과값이 조회되지만 방법에 따라 SQL수행 속도가 늦어지는 경우도 있으므로 SELECT쿼리를 조회하는 여러가지 방법에 대해 알아보자.
먼저 SELECT쿼리를 다음과같은 형식을 따른다.
SELECT 컬럼 FROM 테이블명
# desc
-> 해당 테이블에 있는 컬럼 정보들을 출력해준다.
-> 테이블 목록을 출력한다.
-> 해당 테이블의 컬럼이름과 타입을 출력해준다.
# 컬럼에 별칭을 사용해보기
'Good morning'이라는 문자열을 "Hello"라는 별칭으로 출력했다 별칭은 " " 큰따음표 안에 사용한다.
-> dual이라는 테이블은 존재하지않지만 오라클에서 임의로 테스트를 할때 유용하게 사용할 수 있다.
# DISTINCT
-> 중복된 값들을 제외하고 하나만 출력한다.
emp테이블에서 deptno컬럼을 출력하는데 중복된 값을 하나로 하기위해 사용되는 distinct가 있다.
# 연결 연산자
-> 컬럼이나 문자를 연결할 때 사용한다.
두개의 컬럼의 결과를 연결하려면 아래와같이 || 연결연산자를 사용한다 이때 문자열을 연결하려면 ' ' 안에 문자열을 넣고 '표시는 ''두개를 이용해 표현가능하다.
# where조건
-> where조건을 이용해 해당 조건의 내용만 출력할 수 있다.
where조건을 이용해 해당 조건의 내용만 출력할 수 있다.
숫자외에는 꼭 작은 따음표를 사용한다.
문자는 대소문자 구분을 하고 날짜는 대소문자 구분이 없다.
# 산술 연산자
-> 산술연산자로는 +, -, x, / 를 의미하며 SQL에서도 해당 연산자를 사용할 수 있다.
# 비교 연산자
-> 비교 연산자에는 여러가지가 있다. BETWEEN, IN, LIKE, IS NULL, IS NOT NULL, AND, OR 등등
## BETWEEN
BETWEEN 연산자는 특정 구간에 속한 모든 값을 다 출력한다. 주의 사항으로는 첫째는 작은 값을 앞에, 큰 값을 뒤에 두번째는 두 값을 포함하는 결과를 출력한다는 점이다.
BETWEEN 연산자 보다는 가급적 부등호를 이용하면 데이터가 많은경우 더 빠르게 처리할 수 있다는 것을 알아두자.
## IN 연산자
IN 연산자를 사용하면 다른 연산자에비해 빠르게 처리되는 장점이 있다. 조건에는 숫자 뿐만 아니라 문자나 날짜도 올 수 있다.
## LIKE 연산자
LIKE 연산자에 사용하면 %는 글자수는 제한이 없고 어떤 글자가 와도 상관이 없다는 뜻이다. _는 글자수는 한 글자만 올 수 있고 어떤 글자가 와도 상관 없다는 뜻이다.
## IS NULL / IS NOT NULL
위와같이 조회했을때 COMM컬럼에 아무런 표시도 안되어있는 값들이 NULL값들이다.
IS NULL을 사용하면 NULL값인 항목을 찾을때 조건으로 사용하며 = NULL로 사용하지 않는다. IS NOT NULL은 NULL값이 아닌 항목을 찾을때 사용한다.
## AND/OR
AND/OR 연산자는 검색 조건이 두 개 이상일 경우 사용한다.
AND와 OR중 우선순위는 AND에게 있다 산술연산자에서 X와 +중 우선순위가 X에 먼저있다는점이랑 똑같다. OR을 우선순위가 빠르게 하려면 ( ) 처리를 해주어야 한다.
# 조건을 입력받기
-> &을 사용하면 조건을 입력받을 수 있다.
7902를 입력받아 해당조건으로 쿼리가 실행되었다.
# ORDER BY
-> 오름차순과 내림차순 두 가지의 경우가 있으며 기본값은 오름차순이다.
오름차순을 이용해 deptno를 정렬하고 내림차순을 이용해 sal을 정렬하였다.
ename컬럼의 기준 abcd순서 기준으로 asc, desc를 설정하지 않았으므로 기본값인 오름차순 정렬이 실행되었다.
order by 뒤에 숫자가 올 수 있는데 이경우 2는 2번째 컬럼인 sal, 1은 1번째 컬럼인 deptno를 나타낸다 sal로 먼저정렬하고 동일한 값이 있는경우 deptno로 다시한번 정렬한다.
-> order by 대신 다른 방법들이 많으므로 데이터가 많을수록 최대한 사용하지 않는게 좋다.
# 집합 연산자
-> 집합 연산자로는 UNION, UNION ALL, INTERSECT, MINUS가 있다.
-> 집합 연산자는 컬럼의 개수가 같고, 데이터 형도 같아야 사용이 가능하다.
# UNION
-> 두 집합의 결과를 합쳐서 출력, 중복 값 제거하고 정렬한다.
# UNION ALL
-> 두 집합의 결과를 합쳐서 출력, 중복 값 제거 안 하고 정렬 안한다.
# INTERSECT
-> 두 집합의 교집합 결과를 출력 및 정렬한다.
# MINUS
-> 두 집합의 차집합 결과를 출력 및 정렬한다. 쿼리의 순서가 중요하다.
-> MINUS를 사용하지 않아도 가능하다.
'데이터베이스 > Oracle' 카테고리의 다른 글
Oracle - 비밀번호 만료되었을 때 재설정하는 방법 (0) | 2019.09.18 |
---|---|
Oracle_ 오라클 환경 구축(윈도우) (0) | 2018.04.05 |