목차
접기
728x90
반응형
mysql 연습 데이터로 쿼리 작성해보는 사이트로 이동
위 링크로 이동해서 아래 쿼리를 입력해보자.
SUBSTR, SUBSTRING | 주어진 값에 따라 문자열 자름 |
LEFT | 왼쪽부터 N글자를 추출 |
RIGHT | 오른쪽부터 N글자를 추출 |
LENGTH | 문자열의 바이트 길이(영문, 한글 글자당 바이트 다름) |
CHAR_LENGTH, CHARACTER_LENGTH | 문자열의 문자 길이 |
SELECT
SUBSTR('ABCDEFG', 3),
SUBSTR('ABCDEFG', 3, 2),
SUBSTR('ABCDEFG', -4),
SUBSTR('ABCDEFG', -4, 2);
출력 : CDEFG, CD, DEFG, DE
의미 : sql은 0이 아닌 index가 1부터 시작한다.
양수의 경우 1부터 3번째자리의 문자열부터 잘라내겠다는 의미.
양수, 양수는 몇번째부터 몇개의 문자를 잘라낼지 결정하는 것.
음수의 경우 뒤에서부터 4번째에 위치한 문자열부터 잘라내겠다는 의미.
음수, 양수는 뒤에서부터 4번째에 위치한 문자열부터 2개를 잘라내겠다는 의미.
SELECT
LEFT('ABCDEFG', 3),
RIGHT('ABCDEFG', 3);
출력 : ABC, EFG
의미 : LEFT는 왼쪽에서부터 몇개를, RIGHT는 오른쪽에서부터 몇개를 출력하겠다.
SELECT
OrderDate,
LEFT(OrderDate, 4) AS `Year`,
SUBSTR(OrderDate, 6, 2) AS Month,
RIGHT(OrderDate, 2) AS Day
FROM Orders;
출력 : 1996-07-04, 07, 04
LENGTH ~
SELECT
LENGTH('ABCDEF'),
CHAR_LENGTH('ABC'),
CHARACTER_LENGTH('A');
영어는 문자 1개당 1바이트
SELECT
LENGTH('안녕하세요'),
CHAR_LENGTH('안녕하세요'),
CHARACTER_LENGTH('안녕하세요');
출력 : 원하지 않는 값이 출력된다.
w3school 사이트에서는 한글이 제대로 작동하지 않는다.
SELECT
LENGTH('안녕하세요'),
CHAR_LENGTH('안녕'),
CHARACTER_LENGTH('요');
출력 : 15, 2, 1
한글은 문자 1개당 3바이트를 차지하나보다.
728x90
반응형
LIST
'SQL' 카테고리의 다른 글
[ mysql ] 시간/날짜 관련 및 기타 함수들 (0) | 2021.09.05 |
---|---|
[ mysql ] 숫자와 문자열을 다루는 함수(TRIM, LTRIM, RTRIM, LPAD, RPAD, INSTR) (0) | 2021.09.02 |
[ mysql ] 숫자와 문자열을 다루는 함수(UPPER, LOWER, CONCAT(...), CONCAT-WS(S, ...)) (0) | 2021.09.02 |
[ mysql ] 숫자와 문자열을 다루는 함수(POW(A, B)/POWER(A,B)/SQRT, TRUNCATE(N, n)) (0) | 2021.09.01 |
[ mysql ] 숫자와 문자열을 다루는 함수(MAX, MIN, COUNT, SUM, AVG 그룹 함수) (0) | 2021.09.01 |