[Udemy] string functions

Creating the dots·2021년 12월 29일
0

SQL

목록 보기
9/21
post-thumbnail

UDEMY의 The ultimate MySQL Bootcamp 7강을 공부하며 정리한 내용입니다.

CONCAT

SELECT CONCAT(필드명, 필드명, ... )
두개 이상의 필드를 합쳐서 하나의 문자열로 표현할 수 있다.

//author_fname과 author_lname 필드를 합쳐서 표현하는 경우
SELECT CONCAT(author_fname, ' ', author_lname)
AS full_name
FROM books;

CONCAT_WS

SELECT CONCAT_WS(구분자, 필드명, ... )
여러개의 필드를 합쳐서 표현할때, 각각을 구분할 수 있는 기호를 추가할 수 있다. 첫번째 인자로 구분자를 작성한다.

// CONCAT을 사용한 경우
SELECT 
CONCAT (title, '-', author_fname, '-', author_lname) 
AS bookData
FROM books;

// CONCAT_WS를 사용한 경우
SELECT 
CONCAT_WS (' - ', title, author_fname, author_lname) 
AS bookData
FROM books;

SUBSTRING || SUBSTR

SELECT SUBSTRING (필드명 또는 문자열, num1, num2
문자열의 num1번째 글자와 num2번째 글자를 추출한다. 숫자를 하나만 작성한 경우, 그 글자수부터 마지막까지를 추출한다. 음수를 하나만 작성한 경우, 문자열의 뒤에서부터 추출한다. 여기서 숫자는 인덱스를 가리키지 않는다.

SELECT SUBSTRING ('Hello World', 1, 4); //HELL
SELECT SUBSTRING ('Hello World', 7); //World
SELECT SUBSTRING ('Hello World', -3); //rld

SELECT SUBSTRING("Where I'm Calling From: Selected Stories", 1, 10); //Where I'm
SELECT SUBSTRING(title, 1, 10) as 'short title' from books;

//CONCAT과 SUBSTRING을 함께 쓴 경우
SELECT 
CONCAT(
  SUBSTRING(title, 1, 10), '...'
)
AS 'short title'
FROM books;

REPLACE

SELECT REPLACE (필드명 또는 문자열, 기존 문자열, 바꿀 문자열)
문자열의 일부분을 다른 문자열로 바꾼다.

SELECT REPLACE('Hello World', 'l', '7'); //He77o Wor7d
SELECT REPLACE('cheese bread cheese milk', ' ', ' and '); //cheese and bread and cheese and milk
SELECT REPLACE(title, 'e', '3') FROM books;

//SUBSTRING과 REPLACE를 함께 쓴 경우
SELECT 
SUBSTRING(
  REPLACE(title, 'e', '3'), 1, 10 
)
FROM books;

REVERSE

SELECT REVERSE(필드명 또는 문자열)
문자열을 반대 순서로 바꾼다.

CHAR_LENGTH

SELECT CHAR_LENGTH(필드명 또는 문자열)
문자열의 길이를 구한다.

SELECT author_lname, CHAR_LENGTH(author_lname) AS length 
FROM books;

SELECT 
  CONCAT(
    author_lname, ' is ', CHAR_LENGTH(author_lname), ' characters long'
  ) 
AS sentence
FROM books;

UPPER, LOWER

SELECT UPPER(필드명 또는 문자열)
SELECT LOWER(필드명 또는 문자열)
문자열을 대문자 혹은 소문자로 바꾼다.

SELECT 
  CONCAT(
    'My favorite book is ', UPPER(title)
  ) 
AS Title 
FROM books;

참고링크

profile
어제보다 나은 오늘을 만드는 중

0개의 댓글