데이터 줄 세우기 (ORDER BY)

SELECT [칼럼 이름] FROM [테이블 이름] WHERE 조건식 ORDER BY [칼럼 이름] ASC;

ORDER BY [칼럼 이름]

  • 입력한 칼럼 기준으로 모든 row가 정렬됨
  • 기본 정렬 규칙 = 오름차순(ASC)
  • 내림차순(DESC)
  • 여러 칼럼 정렬 가능
    • SELECT name, age, gender FROM mytable ORDER BY name DESC, age;
  • 칼럼 번호로도 정렬 가능
    • SELECT name, age, gender FROM mytable ORDER BY 1, 2;

 

데이터 순위 만들기 (RANK)

SELECT [칼럼 이름], …, RANK() OVER (ORDER BY [칼럼 이름]) FROM [테이블 이름] WHERE 조건식;

RANK() OVER (ORDER BY [칼럼 이름])

  • 항상 ORDER BY와 함께 사용
  • 정렬된 순서에 순위를 붙인 새로운 칼럼 보여줌, 실제 데이터에 영향 미치지 X

SELECT name, age, RANK() OVER (ORDER BY age DESC) AS age_rank FROM mytable;

 

RANK 공동 순위가 있으면 다음 순서로 건너 뜀
EX) 1 → 2 → 2 → 4
DENSE_RANK 공동 순위가 있으면 다음 순서로 건너 뜀
EX) 1 → 2 → 2 → 4
ROW_NUMBER 공동 순위를 무시함
*중복되는 순위 발생하지 않음

 

 

문자형 데이터 다루기

  • LOCATE(’A’, ‘ABC) : ABC에서 A의 위치 반환
    • 찾는 문자열이 없으면 0 반환
  • SUBSTRING(’ABC’, 2) : ABC에서 2번째 문자부터 반환
    • 입력한 숫자가 문자열 길이보다 크다면 아무것도 반환 X
  • RIGHT(’ABC’, 1) : ‘ABC’에서 오른쪽부터 1번째 문자까지 반환
  • LEFT(’ABC’, 1) : ‘ABC’에서 왼쪽부터 1번째 문자까지 반환
  • UPPER(’abc’) : 문자열 모두 대문자로 반환
  • LOWER(’ABC) : 문자열 모두 소문자로 반환
  • LENGTH(’ABC’) : 문자열의 글자 수 반환
  • CONCAT(’ABC’, ‘DEF’) : ‘ABC’문자열과 ‘DEF’ 문자열을 합쳐 반환
  • REPLACE(’ABC’, ‘A’, ‘Z’) : ‘ABC’의 ‘A’를 ‘Z’로 바꿔 반환

 

숫자형 데이터 다루기

  • ABS(숫자) : 절댓값 반환
  • CEILING(숫자) : 올림
  • FLOOR(숫자) : 내림
  • ROUND(숫자, 자릿수) : 자릿수까지 반올림해서 반환
  • TRUNCATE(숫자, 자릿수) : 자릿수까지 버림해서 반환
    *자릿수에 0 입력시 정수만 반환
  • POWER(숫자1, 숫자2) : 숫자1의 숫자2 제곱 반환
  • MOD(숫자1, 숫자2) : 숫자1를 숫자2로 나눈 나머지 반환
    *2로 나누면 홀수인지 짝수인지 분별 가능

 

날짜형 데이터 다루기

  • NOW() : 현재 날짜와 시간 반환
  • CURRENT_DATE() : 현재 날짜 반환
  • CURRENT_TIME() : 현재 시간 반환
    *위 3개는 입력값 필요 X

 

  • YEAR(날짜) : 날짜의 연도 반환
  • MONTH(날짜) : 날짜의 월 반환
  • MONTHNAME(날짜) : 날짜의 월을 영어로 반환

 

  • DAYNAME(날짜) : 날짜의 요일을 영어로 반환
  • DAYOFMONTH(날짜) : 날짜의 일 반환
  • DAYOFWEEK(날짜) : 날짜의 요일을 숫자로 반환
    *일요일 : 1 ~ 토요일 7
  • WEEK(날짜) : 날짜가 해당 연도에 몇 번째 주인지 반환

 

  • HOUR(시간) : 시간의 시 반환
  • MINUTE(시간) : 시간의 분 반환
  • SECOND(시간) : 시간의 초 반환

 

  • DATE_FORMAT(날짜/시간, 형식) : 날짜/시간의 형식을 형식으로 바꿔 반환
  • DATEDIFF(날짜1, 날짜2) : 날짜1과 날짜2의 차이 반환 (날짜1 - 날짜2)
  • TIMEDIFF(시간1, 시간2) : 시간1과 시간2의 차이 반환 (시간1 - 시간2)

 

+ Recent posts