[학습 DAY - 3]
- SELECT * FROM sample33 LIMIT 3;
TOP
을 사용하여, TOP 뒤에 최대 행수를 지정 SELECT TOP 3 * FROM sample33;
- SELECT * FROM sample33 LIMIT 3 OFFSET 0;
연산자의 우선순위
-. 1순위 : * / %
-. 2순위 : + -
SELECT 구로 연산하기
- SELECT *, price * quantity FROM sample34; (price * quantity)
- SELECT *, price * quantity AS amount FROM sample34;
-- amount라는 별명 붙이기, AS 생략 가능 (숫자로 이름을 지정할 수 없음)
WHERE 구에서 연산하기
- WHERE 구에서 금액을 계산하고 2000원 이상인 행 검색하기
- SELECT *, price * quantity AS amount FROM sample34 WHERE price * quantity >= 2000;
NULL 값의 연산
-. NULL이 0으로 처리되지 않음
--- NULL + 1 = NULL, 1+ 2*NULL = NULL, 1/NULL = NULL
ORDER BY 구에서 연산하기
-. ORDER BY 구에서는 SELECT 구에서 지정한 별명을 사용할 수 있음
- 서버 내부 처리 순서 : WHERE 구 → SELECT 구(별명 지정) → ORDER BY 구
- SELECT *, price * quantity AS amount FROM sample34;
- SELECT *, price * quantity AS amount FROM sample34 ORDER BY amount DESC;
함수
- 연산자 외에 함수를 사용해 연산 가능
-. 10 % 3 → 1
-. MOD(10, 3) → 1
ROUND 함수 (반올림)
SELECT * FROM sample314;
SELECT amount, ROUND(amount) FROM sample341; (반올림)
SELECT amount, ROUND(amount, 1) FROM sample341; (소수점 둘째 자리에서 반올림)
SELECT amount, ROUND(amount, -2) FROM sample341; (10단위 반올림)
문자열 결합
-. 문자열 결합하는 연산자에는 데이터베이스 제품마다 방언이 있음
연산자/함수 연산 데이터베이스 + 문자열 결합 SQL Server || 문자열 결합 Oracle, DB2, PostgreSQL CONCAT 문자열 결합 MySQL -. SELECT * FROM sample35;
-. SELECT CONCAT(quantity, unit) FROM sample35;
SUBSTRING 함수
-. 문자열의 일부분을 계산해서 반환해주는 함수
SUBSTRING('20211023', 1, 4) → '2021'
SUBSTRING('20211023', 5, 2) → '10'
TRIM 함수
-. 문자열 앞뒤로 여분의 스페이스가 있을 경우 이를 제거해주는 함수
-. 문자열 도중에 존재하는 스페이는 제거되지 않음
TRIM('ABC ') → 'ABC'
CHARACTER_LENGTH 함수 (CHAR_LENGTH)
-. 문자열의 길이를 계산해 돌려주는 함수
-. OCTET_LENGTH: 문자열의 길이를 바이트 단위로 계산해 반환
-. 문자열 데이터의 길이는 문자세트에 따라 다름
문자세트 | 문자 수 | 바이트 수 |
---|---|---|
EUC-KR | 12 | 19 |
UTF-8 | 12 | 26 |