1. 데이터 줄세우기 가져오기
1) 가져온 데이터를 정렬 : ORDER BY
- ORDER BY [컬럼 이름] 형식으로 사용, 입력한 [컬럼 이름]의 값을 기준으로 row를 정렬
- 오름차순 : ORDER BY [컬럼 이름] = ORDER BY [컬럼 이름] ASC
- 내림차순 : ORDER BY [컬럼 이름] = ORDER BY [컬럼 이름] DESC
--오름차순 정렬
SELECT [컬럼 이름] FROM [테이블 이름]
WHERE 조건식 ORDER BY [컬럼 이름] ASC;
--내림차순 정렬
SELECT [컬럼 이름] FROM [테이블 이름]
WHERE 조건식 ORDER BY [컬럼 이름] DESC;
예제 1) number 데이터를 내림차순 정렬해서 가져오기
SELECT number, name
FROM mypokemon
ORDER BY number DESC;
예제 2) attack, defense 데이터를 내림차순으로 정렬해서 가져오기
SELECT number, name, attack, defense
FROM mypokemon
ORDER BY attack DESC, defense;
2. 데이터 순위 만들기
1) 데이터를 정렬해 순위를 만들기 : RANK
- RANK() OVER (ORDER BY [컬럼 이름]) 형식으로 사용
SELECT [컬럼 이름], ..., RANK() OVER(ORDER BY [컬럼이름] DESC)
FROM [테이블 이름]
WHERE 조건식;
예제 1) attack 데이터를 내림차순으로 가져오고 attack_rank라고 별칭으로 rank 가져오기
SELECT name, attack, RANK() OVER(ORDER BY attack DESC) AS attack_rank
FROM mypokemon;
2) 공동 순위가 있어도 다음 순위를 뛰어넘지 않음 : DENSE_RANK
예제 1) DENSE_RANK를 사용하여 데이터 가져오기
SELECT name, attack, DENSE_RANK() OVER(ORDER BY attack DESC) AS attack_dense_rank
FROM mypokemon;
3) 공동 순위를 무시 : ROW_NUMBER
예제 1) ROW_NUMBER를 사용하여 데이터 가져오기
SELECT name, attack, ROW_NUMBER() OVER(ORDER BY attack DESC) AS attack_row_number
FROM mypokemon;
비교1) RANK, SENSE_RANK, ROW_NUMBER 비교
SELECT name, attack,
RANK() OVER(ORDER BY attack DESC) AS rank_rank,
DENSE_RANK() OVER(ORDER BY attack DESC) AS rank_dense_rank,
ROW_NUMBER() OVER(ORDER BY attack DESC) AS rank_row_number
FROM mypokemon;
3. 문자형 데이터 정복하기
1) LOCATE : 몇번째 위치해 있는지 검색해 위치 반환
예제 1) i 위치 검색
SELECT part, LOCATE("i", lyric)
FROM bts_music.butter;
2) SUBSTRING : N번째 문자부터 반환.
예제 1) 2번째 문자부터 반환하기
SELECT part, SUBSTRING(lyric, 2)
FROM bts_music.butter;
3) RIGHT(오른쪽), LEFT(왼쪽) : 문자열, 숫자열을 N번째 문자까지 반환
예제 1) 오른쪽 3번째, 왼쪽 3번째 문자까지 반환하기
SELECT part, RIGHT(lyric,3), LEFT(lyric,3)
FROM bts_music.butter;
4) UPPER(대문자), LOWER(소문자) : 대문자, 소문자로 바꿔서 반환
예제 1) 대문자, 소문자로 바꿔서 반환하기
SELECT part, UPPER(lyric), LOWER(lyric)
FROM bts_music.butter;
5) LENGTH : 글자 수를 반환
예제 1) 글자수 반환하기
SELECT part, LENGTH(lyric)
FROM bts_music.butter;
6) CONCAT : 문자열과 문자열을 합쳐서 반환
예제 1) 문자열 합쳐서 반환하기
SELECT part, CONCAT(LEFT(lyric,1), RIGHT(lyric,1)) AS first_last
FROM bts_music.butter;
7) REPLACE : 문자열을 바꿔서 변환
예제 1) 공백을 _로 바꿔서 변환
SELECT part, REPLACE(lyric," ","_")
FROM bts_music.butter;
'SQL' 카테고리의 다른 글
에러 : Error Code: 1175 (1) | 2024.06.12 |
---|---|
MySQL 단축키 정리 (0) | 2024.06.07 |
SQL 4일차 - 조건에 맞는 데이터 가져오기 (2) | 2024.03.29 |
SQL 3일차 - 데이터 가져오기 (0) | 2024.03.27 |
SQL 강의 2일차 - 데이터베이스 다루기 (1) | 2024.03.26 |