1. DESC 명령어
특정 테이블에 어떤 컬럼이 있는 지 조회하기
DESC emp;
2. SELECT - 데이터 조회하기
(1) 모든 컬럼 조회하기
SELECT * FROM emp;
* 컬럼길이 조정하기
데이터가 숫자일 경우
COL empno FOR 9999
컬럼명 숫자 네자리
데이터가 문자일 경우
COL ename FOR a8
컬럼명 문자 8바이트
SET LINE 200;
한 화면에 50줄까지 나오게 설정
SET PAGESIZE 50;
(2) 원하는 컬럼만 조회하기
SELECT empno, ename
FROM emp
(3) 표현식(Expression)을 사용하여 출력하기
리터럴(literal) 상수(문자)
SELECT name, '아무거나'
FROM professor ;
(4) 컬럼 별칭 사용하여 출력하기
SELECT studno "학번", name AS "이름", profno 지도교수번호
FROM student;
다양한 방법이 있지만 공백과 대소문자는 " "를 꼭 써주어야 한다.
(5) DISTINCT - 중복된 값 제거하고 출력하기
SELECT DISTINCT deptno
FROM student;
DISTINCT는 반드시 SELECT 뒤에 써주어야 한다.
1개의 컬럼에만 적어도 모든 컬럼에 적용되어 성능이 저하된다.
9i 까지는 정렬을 해서 심각한 속도저하가 발생했으나
10g부터는 HASH알고리즘을 사용해서 성능이 향상되었다.
(6) 연결연산자 사용 ||
SCOTT> SELECT name||position
2 FROM professor;
두개의 컬럼을 마치 하나의 컬럼인 것처럼 출력
(7) 산술연산자 사용 +, -, *, /
SCOTT> SELECT ename, sal, sal+100, (sal+100)/2
2 FROM emp;
우선순위는 ()사용
(8) WHERE 절을 활용하여 원하는 조건만 조회하기
SEELCT ename, sal
FROM emp
WHERE ename = 'SCOTT'
AND hiredate = '23-MAY-01'
AND deptno = 10;
문자나 날짜를 조회할 경우 ' ' 홑따옴표 사용
문자는 대소문자를 구분한다.
(9) 다양한 연산자를 활용하는 방법
= 같은 조건 검색
!=, <> 같지 않은 조건 검색
> 큰 조건을 검색
>= 크거나 같은 조건 검색 (순서 주의)
< 작은 조건 검색
<= 작거나 같은 조건 검색 (순서 주의)
BETWEEN a AND b a와 b 사이에 있는 범위 값을 모두 검색
(문자로 인식하기 때문에 숫자일 경우 비교연산자가 성능이 더 좋다.)
IN(a,b,c) a이거나 b이거나 c인 조건 검색
LIKE 특정 패턴을 가지고 있는 조건 검색
( WHERE name LIKE '김%' 글자 수 제한 없음
'김_' 한글자만 올수 있다.
'%김%' 이렇게 짜면 성능저하를 가져온다.)
IS NULL / IS NOT NULL Null 값을 검색 / Null이 아닌 값을 검색
a AND b a 조건과 b 조건을 모두 만족하는 값만 검색
a OR b a 조건이나 b 조건 중 한가지라도 만족하는 값을 검색
NOT a a가 아닌 모든 조건을 검색
(10) ORDER BY 절을 사용하여 출력 결과 정렬하기
한글: 가, 나, 다, 라...
영어: A, B, C, D...
숫자: 1, 2, 3, 4...
날짜: 예전날짜부터 최근날짜로 정렬
ORDER BY height ;
ASC 는 오름차순 ( 안써주면 자동 ASC )
DESC 는 내림차순 정렬
ORDER BY 2;
SELECT 절에서 2번째 컬럼 순으로 정렬하라는 의미
(11) 집합 연산자
UNION 두 집합을 더해서 결과를 출력, 중복 값 제거하고 정렬함
UNION ALL 두 집합을 더해서 결과를 출력, 중복 값 제거안하고 정렬 안함 (당연히 속도가 UNION에 비해 빠름)
INTERSECT 두 집합의 교집합 결과를 출력, (9i까지는 정렬했으나 10g부터는 안함)
MINUS 두 집합의 차집합 결과를 출력, 정렬함, 쿼리의 순서가 중요함.
[출처] 다양한 예제로 쉽게 배우는 오라클 SQL과 PL/SQL 서진수 저