
SELECT 명령에 ORDER BY 구를 지정하면 검색 결과의 행 순서를 바꿀 수 있다.ORDER BY 구를 지정하지 않을 경우에는 데이터베이스 내부에 저장된 순서로 반환된다. 언제나 정해진 순서로 결괏값을 얻기 위해서는 ORDER BY 구를 지정해야 한다.
WHERE 구 뒤에 ORDER BY 구를 지정하는 경우
SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명
FROM 구 뒤에 ORDER BY 구를 지정하는 경우
SELECT 열명 FROM 테이블명 ORDER BY 열명
DESC, ASC 뒤에 붙이면 내림차순/오름차순 정렬 가능
정렬 시 '수치형 데이터', '날짜시간형 데이터'는 숫자 크기로 비교한다. '문자열'은 사전식 순서로 정렬한다.
ORDER BY는 어디까지나 서버에서 클라이언트로 행 순서를 바꾸어 결과를 반환하는 것뿐. 저장장치에 저장된 데이터의 행 순서를 변경혜는 것은 아니다.
SELECT * FROM sanple32 ORDER BY a, b;
먼저 b열에서 값의 크기 순서대로 정렬되고, 값이 같은 부분은 a 열로 정렬된 것을 알 수 있다.
복수의 열 지정한 경우에도 각 열에 대해 개별적으로 정렬 방법을 지정할 수 있다. (ASC, DESC)
SELECT 열명 FROM 테이블명 ORDER BY 열명1 [ASC|DESC], 열명2 [ASC|DESC],,,
+)NULL 정렬 방법
MySQL의 경우 NULL 값을 가장 작은 값으로 취급해 ASC(오름치순)에서는 가장 먼저, DESC(내림치순)에서는 가장 나중에 표시한다.

ex) 쇼핑몰 사이트 항목 개수 제한
sample33을 정렬 후 LIMIT 3으로 상위 3건만 취득하기
SELECT * FROM sample33 ORDER BY no DESC LIMIT 3;
그러나, LIMIT는 표준 SQL이 아니기 때문에 MySQL과 PostgreSQL 이외의 데이터베이스에서는 사용할 수 없다. SQL Server에서는 LIMIT와 비슷한 기능을 하는 'TOP'을 사용할 수 있다.
오프셋 지정
LIMIT 3 OFFSET 0으로 첫 번째 페이지 표시
SELECT * FROM sample33 LIMIT 3 OFFSET 0;
+-*/% MOD




가격수량으로 금액 계산하기
SELECT , price * quantity FROM sample34;
식에 별명 붙이기
SELECT , pricequantity AS amount FROM sample34;
+) 이름에 ASCII 문자 이외의 것을 포함할 경우는 더블쿼트로 둘러싸서 지정한다.

+) 예약어와 같은 이름은 지정할 수 없다 -> 더블쿼트로 둘러싸서 지정하면 사용할 수 있다.
SELECT , price quantity AS amount FROM sample34;
WHERE 구에서 금액을 계산하고 2000원 이상인 행 검색하기
SELECT , price quantity AS amount FROM sample34
WHERE price * quantity >= 2000;
SQL에서는 NULL 값이 0으로 처리되지 않는다. 'NULL + 1' 의 결괏값은 1이 아닌 NULL이다.
SELECT 구에서 지정한 별명을 사용할 수 있다
SELECT , price quantity AS amount FROM sample34;
SELECT , price quantity AS amount FROM sample34 ORDER BY amount DESC;
연산자 외에 함수를 사용해 연산할 수도 있다.
반올림
SELECT amount, ROUND(amount) FROM sample341;
ROUND는 기본적으로 소수점 첫째 자리를 기준으로 반올림한 값을 반환한다
ROUND 함수의 두 번째 인수를 저장해, 소수점 둘째 자리를 반올림
SELECT amount, ROUND(amount, 1) FROM sample341;


SELECT CONCAT(quantity, unit) FROM sample35:
SUBSTRING 함수는 문자열의 일부분을 계산해서 반환하는 함수
문자열의 앞뒤로 여분의 스페이스가 있을 경우 이를 제거해주는 함수로 문자열 도중에 존재하는 스페이스는 제거되지 않는다
문자열의 길이를 계산해 돌려주는 함수
VARCHAR 형의 문자열은 가변 길이이므로 길이가 서로 다르다. CHARACTER_LENGTH 함수를 사용하면 문자열의 길이를 계산할 수 있다.
날짜나 시간 데이터는 수치 데이터와 같이 사직 연산을 할 수 있다
날짜시간형 데이터는 기간형 수치데이터와 덧셈 및 뺄셈을 할 수 있다. 날짜시간형 데이터에 기간형 수치데이터를 더하거나 빼면 날짜시간형 데이터가 반환된다.
간단한 처리의 경우에는 사용자 정의 함수를 작성하지 않고도 CASE 문으로 처리할 수 있다
CASE로 NULL 값을 0으로 변환하기
SELECT a, CASE WHEN a IS NULL THEN 0 ELSE a END "a(null=0)" FROM sample37;
NULL 값을 반환하는 경우라면 COALESCE 함수를 사용하는 편이 더 쉽다
**SELECT a, COALESCE(a, 0) FROM sample37;