SELECT
SELECT문은 데이터베이스에 보관된 데이터를 조회할 때 사용한다.
SELECT 열 이름, 출력할 데이터 하나 이상 지정, * (전체 열을 가져오는 문자) FROM 테이블이름
나는 우리말로 바꿨을 때 더 이해하기 쉬웠다.
예를들어 선택한다 무엇을? ~로부터 테이블
즉, 테이블로부터 무엇을 선택해서 조회한다!라고 생각하면 확 와닿았다.
SELECT DEPTNO FROM EMP; --왼쪽 이미지
SELECT * FROM EMP; -- 오른쪽 이미지
DISTINCT
이때 부서번호를 조회한 결과를 보면 중복이 돼서 출력이 되는걸 볼 수 있다. 우리가 만약에 중복을 없애고 싶은 경우가 있다면 DISTINCT를 열을 선언하기 전에 붙여서 사용하면 중복을 제거할수 있다.
SELECT DISTINCT DEPTNO FROM EMP;
만약 열이 여러개일 때는 어떻게 될까라는 생각이 들것이다.
이때는 선택된 열들이 모두 같다면 생략이 된다!! -> 항상 이럴땐?? 이라는 생각을 가지고 한번 시도해보자.
출력 컬럼명 지정하기
맨 윗줄 출력결과를 보면 우리가 조회할 때 지정한 컬럼명이 그대로 출력되는걸 볼 수 있다.
만약에 해당 열이 의미하는 바를 한번에 알아보기 위함이나 컬럼명을 바꾸고 싶다면
AS(alias)를 사용하거나 컬럼명 뒤에 뛰고 지정할 이름을 써주면 된다. 즉, AS는 생략이 가능하다.
SELECT
ENAME, SAL, SAL*12*12
FROM EMP;
SELECT
ENAME, SAL SALLLLL, SAL*12*12 AS "내가 원하는 컬럼명"
FROM EMP;
ORDER BY
어떤 컬럼을 기준으로 정렬을 하고 싶다면! ORDER BY 컬럼 ASC, 컬럼 DESC
ASC는 오름차순 , DESC는 내림차순
기본적으로 생략이 돼있으면 ASC가 디폴트
SELECT
DEPTNO
FROM EMP
ORDER BY DEPTNO;
SELECT
DEPTNO
FROM EMP
ORDER BY DEPTNO ASC;
SELECT
DEPTNO
FROM EMP
ORDER BY DEPTNO DESC;
만약에 정렬해야하는 컬럼이 여러개라면 ??
SELECT
DEPTNO, EMPNO
FROM EMP
ORDER BY DEPTNO;
SELECT
DEPTNO, EMPNO
FROM EMP
ORDER BY DEPTNO, EMPNO;
이 경우는 먼저 앞에있는 컬럼을 기준으로 정렬이되고 만약 같다면 다음 컬럼을 기준으로 정렬이된다.
(먼저 DEPTNO가 같을 때 다른 컬럼도 정렬하고 싶은데? 라는 생각이 들어서 금방 이해할 수 있었다.)
주의사항
(먼저 쿼리 실행문이 FROM - WHERE - GROUP BY - HAVING -SELECT - ORDER BY 순으로 실행됨을 기억하자)
ORDER BY는 SELECT 절이 실행이 되고 나중에 실행이 되면서 데이터가 많이 조회가 상태에서 정렬을 하게되면 많은 시간이 걸린다. 이 뜻은 서비스를 제공할 때 응답이 느려진다는 것이므로 정렬을 꼭 필요할때만 사용하자!
'데이터베이스 > 오라클' 카테고리의 다른 글
[오라클] SQL의 조회 - 다양한 방식으로 조회하는 WHERE,연산자 (0) | 2023.09.05 |
---|