Programming/SQL

SELECT (1) : 구절 순서와 ORDER BY 함수. 2021-08-05

최동훈1 2021. 8. 5. 23:27

우선 select 절에 올수 있는 함수는 총 5가지 이다.

SELECT, FROM, WHERE, COUNTING BY, HAVING COUNT, ORDER BY 가 그것이다.

그리고 이런 함수들이 오는 '순서' 가 매우 중요하다. 이 순서를 지키지 않고 함수를 나열하면, 에러가 난다.

우선 각 키워드의 특징을 나열하겠다.

from: 가공할 데이터의 테이블을 가져오는 역할을 한다.

where: 가져온 테이블의 어떤 레코드(ROW)를 출력할지 조건에 따라(관계연산자,비교연산자,패턴연산자, 정규식 패턴을 이용) 선별한다.

GROUP by: 집계함수 이다. 우선 어떤 기준에 따라 집계하고 예를 들면 납입한 날/시간/이름이 순차적으로 주어진 테이블에서 해당 납입횟수별로 집계하고 싶다면 이 함수를 쓰면 된다. 자세한건 다음 포스트에 적겠다.집계테이블을 만든다.

HAVING  : 집계함수로 만들어진 집계테이블을 조건에따라 선별/가공한다. 집계테이블에는 where 절을 쓸수 없으므로 이 함수를 써야 한다.

 

앞전의 키워드로 인해 가공된 테이블들의 칼럼을 기준으로 정렬하는 역할을 한다.( ASC: 오름차순, DECS: 내림차순).

 

각 키워드별로 사례를 들어 보이겠다. 그전에 테이블에 HIT 라는 칼럼을 추가하였다.

ALTER table member add hit number;

DDL 을 오랜만에 써봐서 구글링해서 쿼리를 썼다. 

order by를 통한 정렬을 보여주기 위해 HIT이라는 칼럼을 추가하였다.

 

예를 들면, 최씨 성을 가진 레코드중 HIT 를 내림차순으로 정리하고 싶다면,

select * from member where name like '최%' order by hit desc;

이러면 내림차순으로 정렬 된다.

 

공부시간 30분.

순공부시간 20분.

 

오늘은 오전 오후 다 병원 외근 갔다 오느라 공부를 거의 못해서 집에와서 이 포스트를 마무리했다. 그래도 1일 1포스트 철칙은 나 스스로 지키고 있는거 같아서 기분이 너무 좋다..ㅎㅎ