본문 바로가기

자린고비 독학하기/자린고비 코딩하기

SQL - ORDER BY / DISTINCT / AS

반응형

 

 

 

 

ORDER BY 

 

 

문자는 아스키 코드 값을 기준으로 정렬됨.

 

 

출처: https://codedragon.tistory.com/8452

 

 

* 실제 테이블이 정렬되어 저장되는 것은 아님.

 버퍼에서 일시적으로 정렬되는 것이기 때문에, 다시 테이블을 부르면 이전 값 그대로 출력됨.

 

 

 

 

 

 

 

 SELECT * FROM emp;

 

 

기본 emp 테이블을 정렬하면서 가지고 놀 것이다.

 

 

ASC 

 

 SELECT * FROM emp ORDER BY sal ASC;

 

SAL 칼럼을 오름차순으로 정렬했다.

 

 

 

 

 SELECT * FROM emp ORDER BY sal;

 

ORDER BY의 디폴트 값은 ASC기에, 지정하지 않고 정렬하면 오름차순으로 정렬된다.

 

 

 

DESC

 

 SELECT * FROM emp ORDER BY sal DESC;

 

sal 칼럼을 내림차순으로 정렬했다.

 

 

 

활용 

 

 

  • 가장 최근에 입사한 사람부터 출력하는 SQL문 

 

 SELECT * FROM emp ORDER BY hiredate DESC;

 

날짜는 내림차순으로 정렬하면 최신순으로 정렬된다.

 

 

 

DISTINCT

 

 

속성 앞에 DISTINCT를 사용하면 중복 값을 제거해서 출력해 준다.

 

 

 

AS 

 

 

 

 

 SELECT ename, sal, sal*12+NVL(comm,0) FROM emp ;

 

sal*12+NVL(comm,0) 칼럼은 한번에 의미를 파악하기 힘들다.

 

 

 SELECT ename, sal, sal*12+NVL(comm,0) AS ANNSAL FROM emp ;

 

AS를 통해 컬럼에 별칭을 부여해 한눈에 알아볼 수 있도록 한다. (ANNual SALary)

 

 

 

 

 

 SELECT ename, sal, sal*12+NVL(comm,0) ANNSAL FROM emp ;

 

 

AS는 생략이 가능하지만, 컬럼명과 별칭 사이에 화이트 스페이스(공백)을 하나 넣어 줘야 한다.

 

 

 

만약 컬럼명에 소문자를 넣고 싶은 경우, "큰 따옴표" 사이에 지정할 컬럼명을 넣으면 된다.

 

 

작은 따옴표는 사용할 수 없고, 별칭에 공백이 있을 때도 문법 오류가 생기니 큰 따옴표로 묶어 주자.

 

 

 

 

한글로도 가능하지만, 오류의 큰 원인이 될 수 있으니 쓰지 말자....

 

 

 

연결 연산자 : || 

 

  • 행의 속성들을 연결해 하나의 문장으로 만들고자 할 때 사용한다. 
  • '작은 따옴표'를 이용해 값을 넣는 것보다 깔끔하게 한 문장처럼 보여진다.

 

 

 

  • 새로운 컬럼 생성

 

SELECT ename, ' is a ' , job FROM emp;

 

'작은 따옴표'를 사용해 새로운 칼럼을 만들어 넣을 수 있다. 따옴표 안에 있는 값이 속성 값으로 들어간다.

 

 

새로운 칼럼을 만들어 넣을 때는 "큰 따옴표"를 쓸 수 없음에 유의하자. 

 

 

 

  • || '연결 연산자' || 를 이용

 

SELECT ename|| ' is a ' || job FROM emp;

 

 

 

  • 연결 연산자 이용한 것 AS 이용 -  컬럼 이름 지정

 

 

연결 연산자를 사용한 값도 AS를 이용해 컬럼 이름을 지정해 줄 수 있다. 단, 여기서 쓰인 한글은 예시 용도. 실제로 사용하지는 말자. 

반응형

'자린고비 독학하기 > 자린고비 코딩하기' 카테고리의 다른 글

SQL - 날짜 함수 / 날짜 연산  (0) 2019.07.31
SQL - 숫자 함수  (0) 2019.07.31
ORACLE TABLE  (0) 2019.07.30
SQL - WHERE 조건절과 연산자  (0) 2019.07.30
SQLPLUS 시스템 환경 변수 설정  (0) 2019.07.30