데이터 줄 세우기 (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)
'What I study > mysql' 카테고리의 다른 글
| [MYSQL] 규칙 만들기 (0) | 2023.01.05 |
|---|---|
| [MYSQL] 데이터 그룹화하기 (0) | 2023.01.03 |
| [MYSQL] 조건에 맞는 데이터 가져오기 (WHERE) (0) | 2023.01.02 |
| [MYSQL] 데이터 가져오기 (0) | 2022.12.28 |
| [MYSQL] 데이터베이스 다루기 (0) | 2022.12.27 |