SQL첫걸음 09강 추가

This commit is contained in:
DESKTOP-FSO9NHB\User
2020-12-10 15:41:02 +09:00
parent f681a6fb45
commit a8dbd90ad7
2 changed files with 83 additions and 1 deletions

View File

@@ -12,4 +12,7 @@
- [05강. 테이블 구조 참조하기](https://github.com/banjjoknim/TIL/blob/master/SQL%EC%B2%AB%EA%B1%B8%EC%9D%8C/Lecture05.md)
- [06강. 검색 조건 지정하기](https://github.com/banjjoknim/TIL/blob/master/SQL%EC%B2%AB%EA%B1%B8%EC%9D%8C/Lecture06.md)
- [07강. 조건 조합하기](https://github.com/banjjoknim/TIL/blob/master/SQL%EC%B2%AB%EA%B1%B8%EC%9D%8C/Lecture07.md)
- [08강. 패턴 매칭에 의한 검색](https://github.com/banjjoknim/TIL/blob/master/SQL%EC%B2%AB%EA%B1%B8%EC%9D%8C/Lecture08.md)
- [08강. 패턴 매칭에 의한 검색](https://github.com/banjjoknim/TIL/blob/master/SQL%EC%B2%AB%EA%B1%B8%EC%9D%8C/Lecture08.md)
## 3장. 정렬과 연산
- [09강. 정렬 - ORDER BY](https://github.com/banjjoknim/TIL/blob/master/SQL%EC%B2%AB%EA%B1%B8%EC%9D%8C/Lecture09.md)

79
SQL첫걸음/Lecture09.md Normal file
View File

@@ -0,0 +1,79 @@
# 09강. 정렬 - ORDER BY
**`ORDER BY 구`**
```
SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명
```
- `SELECT` 명령에 `ORDER BY` 구를 지정하면 검색 결과의 행 순서를 바꿀 수 있다.
- `ORDER BY` 구를 지정하지 않을 경우에는 데이터베이스 내부에 저장된 순서로 반환된다.
- 언제나 정해진 순서로 결괏값을 얻기 위해서는 `ORDER BY` 구를 지정해야 한다.
---
## 1. ORDER BY로 검색 결과 정렬하기
- `SELECT` 명령의 `ORDER BY` 구로 정렬하고 싶은 열을 지정하면 지정된 열의 값에 따라 행 순서가 변경된다.
- 이때 `ORDER BY` 구는 `WHERE` 구 뒤에 지정한다.
**`WHERE 구 뒤에 ORDER BY 구를 지정하는 경우`**
`SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명`
- 검색 조건이 필요없는 경우에는 `WHERE` 구를 생략하는데 이때 `ORDER BY` 구는 `FROM` 구의 뒤에 지정한다.
**`FROM 구 뒤에 ORDER BY 구를 지정하는 경우`**
```
SELECT 열명 FROM 테이블명 ORDER BY 열명
```
---
## 2. ORDER BY DESC로 내림차순으로 정렬하기
- `ORDER BY` 구에 지정한 열의 값에 따라 행의 순서가 바뀐다.
- 기본적으로는 오름차순으로 정렬된다.
- 내림차순으로 정렬할 때는 열명 뒤에 `DESC`를 붙여 지정한다.
**`내림차순으로 정렬`**
```
SELECT 열명 FROM 테이블명 ORDER BY 열명 DESC
```
- 오름차순으로 정렬할 때는 내림차순과 달리 생략 가능하며 `ASC`로도 지정할 수 있다.
**`오름차순으로 정렬`**
```
SELECT 열명 FROM 테이블명 ORDER BY 열명 ASC
```
- `DESC``descendant(하강)`, `ASC``ascendant(상승)`의 약자이다.
##### DESC로 내림차순 정렬한다!
##### ASC로 오름차순 정렬한다!
- `ASC``DESC`로 정렬방법을 지정하지 않은 경우에는 `ASC`로 간주되며, 즉 `ORDER BY`의 기본 정렬방법은 오름차순이다.
---
## 3. 대소관계
- `ORDER BY`로 정렬할 때는 값의 대소관계가 중요하다.
- 수치형 데이터라면 대소관계는 숫자의 크기로 판별하므로 이해하기 쉽다.
- 날짜시간형 데이터도 수치형 데이터와 마찬가지로 숫자 크기로 판별한다.
- 문자열형 데이터의 경우에는 알파벳이나 한글 자모음 배열순서를 사용하면 문자를 차례대로 나열할 수 있다.
- 알파벳, 한글 순이며 한글은 자음, 모음 순이다.
##### 문자열형 데이터의 대소관계는 사전식 순서에 의해 결정된다!
### 사전식 순서에서 주의할 점
- 수치형과 문자열은 대소관계 계산 방법이 서로 다르다.
- 수치형은 수치형의 대소관계로, 문자열형은 사전식 순서로 비교한다.
- 문자열형 열에 숫자 데이터를 넣을 수 있다(숫자도 문자의 일종이므로 저장하는 데 아무런 문제가 되지 않는다).
- 하지만 문자열형 열에 숫자를 저장하면 문자로 인식되어 대소관계의 계산 방법이 달라지므로 정렬이나 비교 연산을 할 때는 이 점에 주의해야 한다.
##### 수치형과 문자열형 데이터는 대소관계의 계산 방법이 다르다!
---
## 4. ORDER BY는 테이블에 영향을 주지 않는다.
- `ORDER BY`를 이용해 행 순서를 바꿀 수 있다.
- 하지만 이는 서버에서 클라이언트로 행 순서를 바꾸어 결과를 반환하는 것뿐, 저장장치에 저장된 데이터의 행 순서를 변경하는 것은 아닙니다.
- `SELECT` 명령은 데이터를 검색하는 명령이다. 이는 테이블의 데이터를 참조만 할 뿐이며 변경은 하지 않는다.
---