본문으로 바로가기

MySQL 함수들(1)

category 데이터베이스/MySQL 2018. 12. 29. 15:57

MySQL 함수들

 

이번 포스팅에서는 내장 함수들에 대해 살펴보겠습니다.

 

우선 문자열 함수를 살펴보겠습니다.

 

문자열 함수는 아래와 같습니다.

 

Function Description
ASCII Returns the ASCII value for the specific character
CHAR_LENGTH Returns the length of a string (in characters)
CHARACTER_LENGTH Returns the length of a string (in characters)
CONCAT Adds two or more expressions together
CONCAT_WS Adds two or more expressions together with a separator
FIELD Returns the index position of a value in a list of values
FIND_IN_SET Returns the position of a string within a list of strings
FORMAT Formats a number to a format like "#,###,###.##", rounded to a specified number of decimal places
INSERT Inserts a string within a string at the specified position and for a certain number of characters
INSTR Returns the position of the first occurrence of a string in another string
LCASE Converts a string to lower-case
LEFT Extracts a number of characters from a string (starting from left)
LENGTH Returns the length of a string (in bytes)
LOCATE Returns the position of the first occurrence of a substring in a string
LOWER Converts a string to lower-case
LPAD Left-pads a string with another string, to a certain length
LTRIM Removes leading spaces from a string
MID Extracts a substring from a string (starting at any position)
POSITION Returns the position of the first occurrence of a substring in a string
REPEAT Repeats a string as many times as specified
REPLACE Replaces all occurrences of a substring within a string, with a new substring
REVERSE Reverses a string and returns the result
RIGHT Extracts a number of characters from a string (starting from right)
RPAD Right-pads a string with another string, to a certain length
RTRIM Removes trailing spaces from a string
SPACE Returns a string of the specified number of space characters
STRCMP Compares two strings
SUBSTR Extracts a substring from a string (starting at any position)
SUBSTRING Extracts a substring from a string (starting at any position)
SUBSTRING_INDEX Returns a substring of a string before a specified number of delimiter occurs
TRIM Removes leading and trailing spaces from a string
UCASE Converts a string to upper-case
UPPER Converts a string to upper-case

<출처: w3schools>

 

ASCII() 함수는 문자의 아스키값을 반환합니다.

 

SELECT ASCII(StudentName) FROM StudentINFO;

 

이 구문은 StudentName 첫번째 문자의 아스키값을 반환합니다.

 

CHAR_LENGTH() = CHARACTER_LENGTH()함수는 문자열의 길이를 반환합니다.

 

SELECT CHAR_LENGTH("HI HELLO");

 

이 구문은 HI HELLO 문자열의 길이를 반환 합니다. 즉 공백포함 8을 반환합니다.

 

CONCAT() 함수는 여러 문자열들을 하나로 합쳐주고 이어줍니다.

 

SELECT CONCAT("My ", "Name is ", "Lee Jeong Chan");

 

이 구문은 My Name is Lee Jeong Chan 이라는 문자열을 하나로 합쳐서 출력하게 됩니다.

 

 

CONCAT_WS() 함수는 CONCAT()과 비슷하지만 구분자를 추가합니다.

 

SELECT CONCAT_WS("-","My ", "Name is ", "Lee Jeong Chan");

 

이 구문은 My-Name is-Lee Jeong Chan 을 출력합니다.

 

 

FIELD() 함수는 인자들 중 맨 앞 문자의 인덱스를 인자들과 함께 계산하여 보여줍니다.

 

말이 어려우므로 예시를 보자면

 

SELECT FIELD("a","b","a","c");

 

이 구문은 a라는 문자의 인덱스 위치는"b" "a" "c" 에서 1 2 3 이므로 2입니다.

 

만약에 첫 문자가 다음 인자들 중에 없으면 0을 출력하겠죠.

 

FIND_IN_SET() 함수는 문자열 목록에서 해당 문자를 찾습니다.

 

SELECT FIND_IN_SET("a","a,p,p,l,e");

 

이 구문은 a가 문자열 목록에서 a가 있습니다. 즉 첫 위치이므로 1을 반환합니다.

 

FORMAT() 함수는 "#,###,###.##" 형식(FORMAT)으로 문자열로 반환합니다.

 

SELECT FORMAT(250500.5634,2);

 

이 구문은 소숫점 두 자리 올림입니다. 즉 250500.56이 출력됩니다.

 


INSERT() 함수는 지정된 위치에 문자열을 삽입합니다.

 

INSERT(문자열,위치,교체 숫자, 교체 문자열)

 

문자열을 위치에서 숫자만큼 교체 문자열로 바꾼다라고 해석하시면 됩니다.

 

SELECT INSERT("leejeongchan",1,9,"Example");

 

이 구문은 그렇다면 leejeongchan을 1에서 9개 leejeongc까지 Example로 바꾸겠다. 라고 해석됩니다.

 

Examplehan 결과는 이렇게 나오겠죠.

 

INSTR() 함수는 해당 문자가 문자열에 포함되어있으면 그 위치를 반환 해줍니다.

 

INSTR("문자열","문자");

 

SELECT INSTR("leejeongchan","j");

 

이 구문은 j라는 문자가 leejeongchan에서 4에 위치하므로 4를 출력합니다.

 

LCASE()=LOWER() 함수는 문자열을 소문자로 바꿔줍니다.

 

SELECT LCASE("LEEJEONGCHAN");

 

이 구문은 leejeongchan으로 바뀌겠죠.

 

너무 많다보니 다음 포스팅에 이어서 하겠습니다. 감사합니다.

 

 

LEFT()=RIGHT() 함수는 왼쪽(오른쪽)에서 개수만큼 문자열을 추출합니다.

 

SELCECT LEFT("Lee Jeong Chan",3)

 

이 구문은 왼쪽에서 3개 문자를 추출합니다. 즉 Lee를 추출합니다.

 

 

LENGTH() 함수는 문자 길이를 바이트 단위로 추출합니다.

 

SELECT LENGTH("Lee Jeong Chan")

 

이 구문은 Lee Jeong Chan 문자의 길이를 바이트단위로 14를 추출하겠죠.

 

 

LOCATE()=POSITION() 함수는 문자열에서 하위 문자열이 처음 나타나는 위치를 반환합니다.

 

SELECT LOCATE("J", "Lee Jeong Chan");

SELECT POSITION("J" IN "Lee Jeong Chan");

이 구문은 J가 5번째때 나오므로 5를 반환합니다.

 

 

LPAD()=RPAD() 함수는 문자열을 특정 길이만큼 왼쪽(오른쪽)에 붙여서 출력합니다.

 

SELECT LPAD("Lee Jeong Chan", 20, "ABC");

 

이 구문은 ABCABCABCLee Jeong Chan을 출력합니다. 이문자열은 총 20이 되겠죠.

 

LTRIM()=RTRIM() 함수는 왼쪽(오른쪽) 선행 공백을 제거합니다.

 

SELECT LTRIM("    Lee Jeong Chan");

 

이 구문은 왼쪽 공백을 제거하고 Lee Jeong Chan을 출력합니다.

 

 

MID()=SUBSTR()=SUBSTRING() 함수는 문자열에서 임의의 위치(숫자)에서 시작하고 임의 개수 만큼 추출합니다.

이 함수는 SUBSTR() SUBSTRING()과 같습니다.

 

SELECT MID("Lee Jeong Chan", 5, 3);

 

이 구문은 Lee Jeong Chan에서 5번째 위치인 J에서부터 3글자를 추출한 Jeo를 추출합니다.

 

 

REPEAT() 함수는 말그대로 반복해줍니다. 정해준 개수만큼 반복합니다.

 

SELECT REPEAT("Lee Jeong Chan", 3);

 

이 구문은 Lee Jeong CHan을 3번 반복하여 Lee Jeong ChanLee Jeong ChanLee Jeong Chan 을 출력합니다.

 

 

REPLACE() 함수는 말그대로 바꿔줍니다. REPLACE(A,B,C) 이면 A문자열에서 B해당 문자를 C로 바꿔줍니다.

 

SELECT REPLACE("Lee Jeong Chan", "Lee","HTML");

 

이 구문은 Lee를 HTML로 바꿔서 HTML Jeong Chan으로 출력됩니다.

 

 

REVERSE() 함수는 말그대로 문자열을 역으로 출력합니다.

 

SELECT REVERSE("Lee Jeong Chan");

 

이 구문은 문자열을 거꾸로 출력한 nahC gnoeJ eeL을 출력합니다.

 

 

SPACE() 함수는 지정된 수만큼 공백을 출력합니다.

 

SELECT SPACE(5);

 

이 구문은 5만큼 공백을 출력합니다.

 

 

STRCMP() 함수는 C언어에서와 동일합니다. 많이 보셨겠지만 문자열을 비교합니다.

 

SELECT STRCMP("Lee Jeong Chan", "Lee Jeong Chan");

 

이 구문은 동일하므로 0을 반환합니다.

 

반환 값

  • 만약 문자열 1은 = 문자열 2 ,이 함수는 0을 반환
  • 경우 문자열 1 < 문자열 2 ,이 함수는 -1을 반환
  • 만약 문자열 1이 > 문자열 2,이 함수는 1을 반환

 

SUBSTRING_INDEX() 함수는 지정된 숫자만큼 지정된 기호가 나오기전 문자를 반환합니다.

 

SELECT SUBSTRING_INDEX("Lee.Jeong.Chan",".","1");

 

이 구문은 1개의 .이 나오기 전 문자열 Lee를 출력합니다.

 

 

TRIM() 함수는 LTRIM() 과 RTRIM()을 합친 선행 후행 공백을 모두 제거합니다.

 

SELECT TRIM("     Lee      ");

 

이 구문은 선행 후행 공백 제거하여 Lee를 출력합니다.

 

 

UCASE()=UPPER() 함수는 문자열을 대문자로 반환해 줍니다.

 

SELECT UCASE("Lee Jeong Chan");

SELECT UPPER("Lee Jeong Chan");

이 구문은 Lee Jeong Chan을 LEE JEONG CHAN을 반환합니다.

 

다음 포스팅은 수치 함수에 대해서 포스팅할게요.

 

감사합니다.!!

 

 

'데이터베이스 > MySQL' 카테고리의 다른 글

MySQL 함수들(3)  (0) 2019.01.02
MySQL 함수들(2)  (0) 2019.01.01
MySQL 데이터베이스  (0) 2018.12.28
MySQL 저장 프로시저  (0) 2018.12.27
MySQL CASE  (0) 2018.12.27