본문 바로가기
SQL

SQL정리 3일차

by 멈추지않아 2022. 6. 17.

order by

-asc는 오름차순  ex)select * from departments order by  no desc;

-desc는 내림 차순 ex)select * from departments order by no asc;

만약 order by 컬럼명 컬럼명 asc(desc) 라면

컬럼 순서대로 정렬하고 그것이 동일하면 다음 컬럼 기준으로 정렬하게 됩니다.

 

sysdate

systemdate 약자로 시스템에 설정된 시간을 표시한다 

 

add_months

addmonth(sysdate,추가할 달수) 첫번째 인자인 날짜에 달수를 더해주게 된다.

 

last_day

해당 날짜의  달중 말일(마지막 일)을 표시 해준다.

 

months_between

months_between('96-11-12','94-10-20')하면 소수점까지 계산해서 얼마나 차이나는지 1달을 1로 해서 보여준다.

 

to_char

to_char(to_date('97/9/30','YY-MM-DD'),'YYYY-MON-DD')문자가 아닌것을 문자형태로 바꺼주는 것입니다.

*심화*

select to_char(to_date('97/9/30','YY-MM-DD'),'YYYY-MON-DD') from dual;--2097
select to_char(to_date('97/9/30','RR-MM-DD'),'RRRR-MON-DD') from dual;--1997
select to_char(to_date('17/9/30','YY-MM-DD'),'YYYY-MON-DD') from dual;--2017
select to_char(to_date('17/9/30','RR-MM-DD'),'RRRR-MON-DD') from dual;--2017

각각 년도가 이렇게 나온다. 우리가 편하게 쓰기위해서는 RR 과 RRRR을 써주면 우리가 예상한대로 나오게 된다.

YY와YYYY를 쓰면 무조건 현제 세기가 나오게된다. 지금 글쓰는 시점이 2021년이기때문 YY와YY로는 1900년도를 찍을수 없다. RR 과 RRRR을 써주면 어떻게 나오는지 정리해 보겠다

  입력한 연도의 뒷 두자리
0~49 50~99
현재 연도의 뒷 두자리 0~49 현재연도랑 같은 세기 현재연도 -1세기
50~99 현재연도 다음세기 현연도랑 같은세기

내가 2021 년에 살면서 48년을 찍으면 2048년이 나오고 51을 찍을 1951년이 나온다.

내가 2050년에 살면서 48년을 찍으면 2148년이 나오게되고  51을 찍을 2051년이 나오게된다.

 

count,max,min,avg,sum

각각 영어뜻대로 count는 갯수를 세리고 max는 최대값 min은 최소값 avg는 평균 sum으 총합을 나타낼때 사용합니다. 

모두 count(컬럼명) 이런식으로 쓰면 해당 컬럼명에 해당하는 결과를 알려줍니다.

 

rank

정렬한 것의 기준으로 순위를 구해주는것으로 rank(숫자) order by no 이면 no에서 숫자를 찾아서 해당 순위를 출력해준다.

select rank()over(order by salary) from employees;를 하면 salary를 기준으로 정렬한 순위를 알려준다.

 

'SQL' 카테고리의 다른 글

SQL정리6일차  (0) 2022.06.25
SQL정리5일차  (0) 2022.06.21
SQL정리 4일차  (0) 2022.06.19
SQL정리 2일차  (0) 2022.06.15
SQL 정리  (0) 2022.06.14