[TIL] #8. 프로그래머스 String, Date
[ String, Date ]
숫자는 어떻게 쓰는 건지 알겠는데, 글자와 날짜는 어떻게 다루지?
✅ 문자열 관련 함수
1. LENGTH() 함수
전달받은 문자열의 길이를 반환한다.
- 예제
SELECT LENGTH('12345678');
- 실행 결과
8
2. CONCAT()
전달받은 문자열을 모두 결합하여 하나의 문자열로 반환한다.
만약 전달받은 문자열 중 하나라도 NULL이 존재하면, NULL을 반환한다.
- 예제
SELECT CONCAT('ABCD', 'EFG'),
CONCAT('RED', NULL, 'BLACK');
- 실행 결과
ABCDEFG
NULL
3. LOCATE()
인수로 전달받은 문자열이 특정 문자열에서 처음 나타나는 위치를 찾아서, 해당 위치를 반환한다.
만약 전달받은 문자열이 특정 문자열 내에 존재하지 않으면 0을 반환한다.
MYSQL에서는 문자열의 첫 번쨰 문자의 인덱스는 언제나 1부터 시작한다.
- 예제
SELECT LOCATE('DEF', 'ABCDEDEF')
- 실행 결과
6
- 세 번째 인수로 검색 시작 위치 인덱스를 전달할 수도 있다.
LOCATE('ABC', 'ABCDEFABC', 4);
- 실행 결과
7
4. REPLACE()
전달받은 문자열에서 특정 문자열을 찾은 후에, 찾은 문자열을 대체 문자열로 교체한다.
- 예제
SELECT REPLACE('MySQL', 'My', 'MS ')
- 실행 결과
MS SQL
✅ 날짜와 시간 관련 함수
1. 현재 날짜와 시간 정보
NOW()
함수는 현재 날짜와 시간을 반환한다.
'YYYY-MM-DD HH:MM:SS'
또는YYYYMMDDHHMMSS
형태로 반환된다.CURDATE()
함수는 현재 날짜를 반환한다.
'YYYY-MM-DD'
또는YYYYMMDD
형태로 반환된다.CURTIME()
함수는 현재 시각을 반환한다.
'HH:MM:SS'
또는HHMMSS
형태로 반환된다.
- 예제
SELECT NOW(),
CURDATE(),
CURTIME()
- 실행 결과
2022-04-02 23:21:36
2022-04-02
23:21:36
2. 특정 날짜와 시간 정보
DATE()
함수는 전달받은 값에 해당하는날짜
정보를 반환한다.MONTH()
함수는 전달받은 값에서월
에 해당하는 값만을 반환하며, 0부터 12 사이의 값을 가진다.DAY()
함수는 전달받은 값에서일자
에 해당하는 값만을 반환하며, 0부터 31 사이의 값을 가진다.HOUR()
함수는 전달받은 값에서시간
에 해당하는 값만을 반환하며, 0부터 23 사이의 값을 가진다.MINUTE()
함수는 전달받은 값에서분
에 해당하는 값만을 반환하며, 0부터 59 사이의 값을 가진다.SECOND()
함수는 전달받은 값에서초
에 해당하는 값만을 반환하며, 0부터 59 사이의 값을 가진다.
- 예제
SELECT DATE('2022-04-02 23:21:36'),
MONTH('2022-04-02 23:21:36'),
DAY('2022-04-02 23:21:36'),
HOUR('2022-04-02 23:21:36'),
MINUTE('2022-04-02 23:21:36'),
SECOND('2022-04-02 23:21:36')
- 실행 결과
2022-04-02
4
2
23
21
36
3. 요일과 월 이름
MONTHNAME()
함수는 전달받은 값의월
에 해당하는 이름을 반환한다.DAYNAME()
함수는 전달받은 값의요일
에 해당하는 이름을 반환한다.
- 예제
SELECT MONTHNAME('2022-04-02 23:21:36'),
DAYNAME('2022-04-02 23:21:36')
- 실행 결과
April
Saturday
💡 문제마다 추가적으로 필요한 개념들은 따로 정리해보도록 하겠다!
[ 루시와 엘라 찾기 ]
🔗 문제 바로가기
📌 문제
동물 보호소에 들어온 동물 중 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와 이름, 성별 및 중성화 여부를 조회하는 SQL 문을 작성하라.
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
[ 이름에 el이 들어가는 동물 찾기 ]
🔗 문제 바로가기
📌 문제
보호소에 돌아가신 할머니가 기르던 개를 찾는 사람이 찾아왔다. 이 사람이 말하길 할머니가 기르던 개는 이름에 'el'이 들어간다고 한다. 동물 보호소에 들어온 동물 이름 중, 이름에 "EL"이 들어가는 개의 아이디와 이름을 조회하는 SQL문을 작성하라. 이때 결과는 이름 순으로 조회하라. 단, 이름의 대소문자는 구분하지 않는다.
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE '%EL%'
AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME
LIKE '%EL%'
을 이용하여,EL
이 들어가는 이름이며,ANIMAL_TYPE
은'Dog'
인 경우를 찾는다.
✅ LIKE
- WHERE절에서 컬럼에서 지정된 패턴을 검색하는데 사용된다.
- LIKE 연산자와 함께 자주 사용되는 와일드카드는 아래 두 가지이다.
%
기호는 0, 1 또는 여러 문자를 나타낸다._
기호는 1개의 단일 문자를 나타낸다.
[ DATETIME에서 DATE로 형 변환 ]
🔗 문제 바로가기
📌 문제
ANIMAL_INS 테이블에 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜를 조회하는 SQL문을 작성하라. 이때 결과는 아이디 순으로 조회해야 한다.
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS '날짜'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
DATE_FORMAT
을 이용하여 원하는 형식인년도-월-일
으로 출력하도록 만든다.
✅ DATE_FORMAT
- 지정된 날짜 형식을 지정한다.
- 형식 지정할 때 사용하는 값들(
%Y
,%M
등)은 여기 참고하기!
[ 참고자료 ]
http://tcpschool.com/mysql/mysql_builtInFunction_string
http://tcpschool.com/mysql/mysql_builtInFunction_dateTime
https://www.w3schools.com/mysql/mysql_like.asp
https://www.w3schools.com/sql/func_mysql_date_format.asp
Author And Source
이 문제에 관하여([TIL] #8. 프로그래머스 String, Date), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@mmy789/TIL-8.-프로그래머스-String-Date저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)