일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- for문
- 정규표현식
- 자바스크립트
- 코딩공부
- 코플릿
- JavaScript
- MySQL
- 알고리즘
- 역행자
- 개발자_조이킴
- array
- Developer_JoyKim
- Hackerrank
- 최강의 인생
- array.push()
- 배열
- 개발자의 책장
- select
- array.slice()
- 코딩테스트
- 코드스테이츠
- node.js
- 재귀함수
- 프로그래머스
- Where
- SQL
- join
- 블록체인
- Programmers
- Algorithms
- Today
- Total
CodingSpace
[프로그래머스/SQL] 이름에 el이 들어가는 동물 찾기 (feat. LIKE) 본문
Problem. 이름에 el이 들어가는 동물 찾기
Link.
https://programmers.co.kr/learn/courses/30/lessons/59047
코딩테스트 연습 - 이름에 el이 들어가는 동물 찾기
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디
programmers.co.kr
Description.
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다.
ANIMAL_INS 테이블 구조는 다음과 같습니다.
- ANIMAL_ID: 동물의 아이디
- ANIMAL_TYPE: 생물 종
- DATETIME: 보호 시작일
- INTAKE_CONDITION: 보호 시작 시 상태
- NAME: 이름
- SEX_UPON_INTAKE: 성별 및 중성화 여부
ANIMAL_INS 테이블에서 ANIMAL_TYPE이 개(Dog)이고 이름에 'el'이 들어가는 동물을 조회하는 SQL문을 작성해주세요.
※ 결과는 이름(NAME)순으로 정렬합니다.
※ 이름의 대소문자는 구분하지 않는다.
Key Point.
특정 문자를 포함된 데이터를 추출하고 싶을때 LIKE 명렁어를 사용한다.
이때 문자열의 대소문자를 구별하지 않는다 (예. el, EL, eL, El 모두 같은 문자열로 추출된다).
또한 퍼센트(%)를 사용하여 다양한 조건과 일치하는 문자열들을 추출할 수 있다:
- 'el%' el로 시작하는 문자열
- '%el': el로 끝나는 문자열
- '%el%': 문자열안에 el이 존재하는 문자열
본 문제는 간단하게 LIKE을 사용하여 ANIMAL_INS 테이블에서 동물의 이름에 'el'이 포함되어 있는 동물들을 조회했다.
<MySQL 쿼리문>
CREATE TABLE ANIMAL_INS
(
ANIMAL_ID VARCHAR(32) PRIMARY KEY,
ANIMAL_TYPE VARCHAR(32) NOT NULL,
DATETIME DATETIME NOT NULL,
INTAKE_CONDITION VARCHAR(32) NOT NULL,
NAME VARCHAR(32),
SEX_UPON_INTAKE VARCHAR(32) NOT NULL
);
INSERT INTO ANIMAL_INS (ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE)
VALUES ('A355753', 'Dog', '2015-09-10 13:14:00', 'Normal', 'Elijah', 'Neutered Male');
INSERT INTO ANIMAL_INS (ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE)
VALUES ('A352872', 'Dog', '2015-07-09 17:51:00', 'Aged', 'Peanutbutter', 'Neutered Male');
INSERT INTO ANIMAL_INS (ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE)
VALUES ('A353259', 'Dog', '2016-05-08 12:57:00', 'Injured', 'Bj', 'Neutered Male');
INSERT INTO ANIMAL_INS (ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE)
VALUES ('A373219', 'Cat', '2014-07-29 11:43:00', 'Normal', 'AElla', 'Spayed Female');
INSERT INTO ANIMAL_INS (ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE)
VALUES ('A382192', 'Dog', '2015-03-13 13:14:00', 'Normal', 'Maxwell 2', 'Intact Male');
INSERT INTO ANIMAL_INS (ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE)
VALUES ('A382112', 'Dog', '2015-01-11 13:14:00', 'Normal', 'abcEL', 'Intact Male');
1) 'el%': el로 시작하는 문자열
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE 'el%'
2) '%el': el로 끝나는 문자열
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE '%el'
3) '%el%': 문자열내 el이 존재하는 문자열
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE '%el%'
My Answer.
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE '%el%'
AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME
References.
MySQL 테스트 사이트: http://sqlfiddle.com/#!9/01a971/4
SQL Fiddle | A tool for easy online testing and sharing of database problems and their solutions.
Query Panel Use this panel to try to solve the problem with other SQL statements (SELECTs, etc...). Results will be displayed below. Share your queries by copying and pasting the URL that is generated after each run.
sqlfiddle.com
'프로그래머스 > SQL 고득점 Kit' 카테고리의 다른 글
[프로그래머스/SQL] 이름이 없는 동물의 아이디 (feat. LEFT JOIN, LIMIT) (0) | 2022.03.12 |
---|---|
[프로그래머스/SQL] 오랜 기간 보호한 동물(1) (feat. LEFT JOIN, LIMIT) (0) | 2022.03.11 |
[프로그래머스/SQL] 있었는데요 없었습니다 (feat. JOIN, LEFT JOIN, RIGHT JOIN) (0) | 2022.03.10 |
[프로그래머스/SQL] 입양 시각 구하기(1) (feat. GROUP BY, DATETIME변환) (0) | 2022.03.09 |
[프로그래머스/SQL] 동명 동물 수 찾기 (feat. GROUP BY, HAVING) (0) | 2022.03.08 |