SQL 함수 (문자열)
in Legacy on ECMAScript
다음의 데이터로 MySQL에서 진행하였습니다.
data generate site 에서 데이터를 랜덤으로 생성하였습니다.
DROP TABLE `person`;
CREATE TABLE `person` (
`id` mediumint(8) unsigned NOT NULL auto_increment,
`name` varchar(255) default NULL,
`age` mediumint default NULL,
`country` varchar(100) default NULL,
PRIMARY KEY (`id`)
) AUTO_INCREMENT=1;
INSERT INTO `person` (`name`,`age`,`country`) VALUES ("Harriet",14,"Madagascar");
INSERT INTO `person` (`name`,`age`,`country`) VALUES ("Shad",27,"Canada");
INSERT INTO `person` (`name`,`age`,`country`) VALUES ("Georgia",45,"Nigeria");
INSERT INTO `person` (`name`,`age`,`country`) VALUES ("Anastasia",60,"Guernsey");
INSERT INTO `person` (`name`,`age`,`country`) VALUES ("George",53,"Myanmar");
INSERT INTO `person` (`name`,`age`,`country`) VALUES ("Brynn",45,"Niger");
INSERT INTO `person` (`name`,`age`,`country`) VALUES ("Emery",21,"Saint Vincent and The Grenadines");
INSERT INTO `person` (`name`,`age`,`country`) VALUES ("Devin",10,"New Caledonia");
INSERT INTO `person` (`name`,`age`,`country`) VALUES ("Marcia",37,"Palau");
INSERT INTO `person` (`name`,`age`,`country`) VALUES ("Pandora",70,"Trinidad and Tobago");
INSERT INTO `person` (`name`,`age`,`country`) VALUES ("Kalia",45,"Estonia");
INSERT INTO `person` (`name`,`age`,`country`) VALUES ("Lacey",82,"Micronesia");
위의 쿼리문의 결과 테이블 person은 다음과 같이 생겼습니다.
LOWER
모든 문자를 소문자로 만들어 출력합니다.
SELECT name, LOWER(name) FROM person;
UPPER
모든 문자를 대문자로 만들어 출력합니다.
SELECT UPPER(name) FROM person;
LENGTH
문자의 길이를 출력합니다.
SELECT name, LENGTH(name) FROM person;
SUBSTR
문자열의 일부를 출력합니다. SUBSTR(열이름, 시작위치, 자릿수) 시작위치로부터 몇자리수까지 출력을 할 것인지에 대한 함수입니다.
SELECT name, SUBSTR(name,1,2) FROM person;
RTRIM
오른쪽 공백문자열을 제거해서 출력합니다. 이미지에 보이는게 공백이 안없어져있는것처럼 보이지만 실제로는 test라는 문자 오른쪽의 공백이 모두 없어져있는 상태이다. RTRIM(‘test ‘)라는 컬럼명을 표현하기위해 저렇게 그냥 공백이 있어보이는 것일 뿐입니다.
SELECT RTRIM(‘test ‘);
LTRIM
왼쪽 공백문자열을 제거해서 출력합니다.
SELECT LTRIM(‘ test’);
TRIM
문자열의 오른쪽, 왼쪽 공백을 제거하여 출력합니다.
SELECT TRIM(‘ test ‘);
REPLACE
특정 문자를 원하는 문자로 바꾸어 출력합니다. 지금의 예에서는 ‘a’를 ‘b’로 바꾸어 출력하고 있습니다.
- REPLACE(열이름, 바꾸길 원하는 문자, 바꾸고 싶은 문자)
- 조금 더 쉽게 말해보면 REPLACE(열이름, A, B) A라는 문자를 B로 바꿔서 출력합니다.
SELECT name, REPLACE(name, ‘a’, ‘b’) FROM person;
COALESCE
조건에 따라 여러 가지 값으로 치환한다.
첫번째로 NULL
이 아닌 값을 반환을 합니다. 만약 모든 값이 NULL
이면 최종적으로도 NULL을 반환합니다. 아래의 다양한 예를 통해 감을 익혀보세요.
Example 1
SELECT COALESCE(NULL, ‘A’, ‘B’, NULL);
결과
A
Example 2
SELECT COALESCE(‘A’, NULL, ‘B’, NULL);
결과
A
Example 3
SELECT COALESCE(NULL, 1, 2, 3, NULL, ‘B’, NULL);
결과
1
Example 4
SELECT COALESCE(NULL, NULL, ‘test’, NULL);
결과
test