[SQL] 문자열

이상해씨·2023년 8월 8일
0

SQL

목록 보기
3/22

문자열

문자열 함수

1.대소문자 변환

1-1) UPPER

  • 칼럼 및 값을 대문자로 변경

문법

SELECT UPPER(<데이터 >) FROM <테이블>

예시

SELECT UPPER(fruit) FROM TABLE

1-2) LOWER

  • 칼럼 혹은 값을 소문자로 변경

문법

SELECT LOWER(<데이터 >) FROM <테이블>

예시

SELECT LOWER(fruit) FROM TABLE

변환전

APPLE
BANANA
ORANGE

변환후

apple
banana
orange

1-3) INITCAP

  • 칼럼 혹은 값의 첫번째 문자만 대문자로 변경 (카멜표시법)
  • Oracle에서 지원

문법

SELECT INITCAP(<데이터 >) FROM <테이블>

예시

SELECT INITCAP(fruit) FROM TABLE

변환전

apple
banana
orange

변환후

Apple
Banana
Orange

2. 문자열 길이(문자수)

2-1) length

  • 칼럼 혹은 값의 글자 길이를 반환해주는 함수
  • 글자수에는 공백 포함
  • SUBSTR와 함께 쓰일 수 있음
SELECT LENGTH(data)
, SUBSTR(data, LENGTH(data)-1, LENGTH(data))

문법

SELECT LENGTH(<데이터값>)

예시

str = " Children's Day"
SELECT LENGTH(str)

결과

14

2-2) CHAR_LENGTH()

  • 공백 제외 하는 함수 (MYSQL)

예시

str = " Children's Day"
CHAR_LENGTH(str)

결과

13

3. 문자열 추출

3-1) SUBSTR/SUBSTRING

  • 원하는 위치의 문자열을 잘라 추출하는 함수
  • SUBSTRING 은 MYSQL에서 지원

문법

SELECT SUBSTR('<문자열>', <시작위치>, <길이>)

예시

SUBSTR('20230808 10:08:35', 1,4) # 2023
, SUBSTR('20230808 10:08:35', 10,16) # 10:08:35
, SUBSTR('20230808 10:08:35', -8,-1) # 10:08:35

3-2) LEFT

  • 왼쪽에서 지정 길이 만큼 문자열 추출

문법

LEFT(<데이터>, <왼쪽에서 추출할 길이>)

예시

SELECT LEFT(address, 20) FROM customers;

3-3) RIGHT

  • 오른쪽에서 지정 길이 만큼 문자열 추출

문법

RIGHT(<데이터>, <오른쪽에서 추출할 길이>)

예시

SELECT RIGHT(phone_number, 4) FROM contacts;

4. 문자 위치 반환

4-1) INSTR

  • 문자열에서 특정 문자열이 처음 등장하는 위치 반환
    문법
INSTR(<데이터>, <위치를 찾고자 하는 데이터>)

예시

SELECT INSTR(address, 'Street') FROM customers;

결과

3

5. 문자열 길이 맞추기

5-1) LPAD

  • 왼쪽에 문자열을 채워 지정한 길이로 문자열을 만듦

문법

SELECT LPAD(<문자열 데이터>, <길이>, <채울 데이터>);

예시

SELECT LPAD('123', 5, '0') AS padded_string;
-- 출력: '00123'

5-2) RPAD

  • 오른쪽에 문자열을 채워 지정한 길이로 문자열을 만듦

문법

SELECT RPAD(<문자열 데이터>, <길이>, <채울 데이터>);

예시

SELECT RPAD('123', 5, '0') AS padded_string;
-- 출력: '12300'

6. 문자열 공백 제거

6-1) TRIM

  • 문자열 앞뒤의 공백 제거

문법

TRIM(<문자열 데이터>);

예시

SELECT TRIM(' ' FROM customer_name) FROM orders;

7.문자열 치환

  • 특정 문자열을 다른 문자열로 치환하는 함수

7-1) REPLACE

  • 문자열 단위 치환, 여러개의 문자 치환시 여러번 사용
    문법
REPLACE(<문자열 데이터>, <치환하고자 하는 문자열 부분>, <치환할 문자열>)

예시

SELECT REPLACE(description, 'old_text', 'new_text') FROM products;

7-2) TRANSLATE

  • 문자 단위 치환, 여러개의 문자 한번에 치환
    문법
translate(<문자열>, <대상문자>, <변환문자>)

예시

SELECT TRANSLATE('871201', '0123456789', '0123456789')
  FROM dual

결과

871201

8. 문자열 합치기

  • concat는 두 문자열을 합치는 함수이다.

8-1) concat 또는 ||

문법

concat(<문자열1>, <문자열2>)

예시

SELECT CONCAT(first_name, last_name) AS full_name FROM employees;
  • 여러개의 문자열을 합치기
    어떤 DBMS인지에 따라 여러개의 인자를 허용할 수도 있다. (MYSQL 가능, Oracle 불가)
SELECT CONCAT(first_name, ' ',last_name) AS full_name FROM employees;

8-2) ||연산자

  • Oracle과 MySQL에서의 기능이 다름

Oracle

  • 문자열을 연결시켜 줌
  • Oracle 실무에서 concat보다 자주 사용됨
  • 짧고 간편
SELECT first_name || ' ' ||last_name AS full_name FROM employees;

MySQL

  • Oracle과는 달리, ||는 논리연산자를 의미

참고

concat

translate

profile
공부에는 끝이 없다

0개의 댓글