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 |