본문 바로가기

Programmers/SQL

[Programmers/SQL] DATETIME에서 DATE로 형 변환 1. 테이블 구조 2. 문제 ANIMAL_INS 테이블에 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜를 조회하는 SQL문을 작성해주세요. 이때 결과는 아이디 순으로 조회해야 합니다. 3. 풀이 DATE_FORMAT(DATETIME, 형식) 으로 변환할 수 있다. 년: %Y(4자리 연도), %y(2자리 연도) 월: %M(영어, March, May 등), %m(숫자) 일: %D(영어, 1st, 2nd, 3rd, 25th 등), %d(숫자) 시: %H(24시간), %h(12시간) 분: %i 초: %s SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, "%Y-%m-%d") AS 날짜 FROM ANIMAL_INS ORDER BY ANIMAL_ID; [참조] .. 더보기
[Programmers/SQL] 오랜 기간 보호한 동물(2) 1. 테이블 구조 2. 문제 입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다. 3. 풀이 ANIMAL_OUT 테이블과 ANIMAL_INS 테이블을 조인해서 ANIMAL_OUT테이블의 DATETIME와 ANIMAL_INS테이블의 DATETIME을 뺀 값이 가장 큰 순서로 정렬하여 2개만 반환한다. SELECT OUTS.ANIMAL_ID, OUTS.NAME FROM ANIMAL_OUTS AS OUTS JOIN ANIMAL_INS AS INS ON OUTS.ANIMAL_ID = INS.ANIMAL_ID ORDER BY (OUTS.DATETIME - INS.DATETIME) DESC LIMIT 2.. 더보기
[Programmers/SQL] 중성화 여부 파악하기 1. 테이블 구조 2. 문제 보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시해주세요. 3. 풀이 IF(조건, 참일 때, 거짓일 때)를 사용하여 해결할 수 있다. SELECT ANIMAL_ID, NAME, IF(SEX_UPON_INTAKE LIKE "Neutered%" OR SEX_UPON_INTAKE LIKE "Spayed%", 'O', 'X') AS 중성화 FROM ANIMAL_INS ORDER BY ANIMAL_ID; [참조] prog.. 더보기
[Programmers/SQL] 이름에 el이 들어가는 동물 찾기 1. 테이블 구조 2. 문제 보호소에 돌아가신 할머니가 기르던 개를 찾는 사람이 찾아왔습니다. 이 사람이 말하길 할머니가 기르던 개는 이름에 'el'이 들어간다고 합니다. 동물 보호소에 들어온 동물 이름 중, 이름에 "EL"이 들어가는 개의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 이름 순으로 조회해주세요. 단, 이름의 대소문자는 구분하지 않습니다. 3. 풀이 LIKE "%포함되는문자%" 형식을 통해 값을 찾을 수 있다. SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE ANIMAL_TYPE = "Dog" AND NAME LIKE "%EL%" ORDER BY NAME; [참조] programmers.co.kr/learn/courses/30/lessons.. 더보기
[Programmers/SQL] 루시와 엘라 찾기 1. 테이블 구조 2. 문제 동물 보호소에 들어온 동물 중 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와 이름, 성별 및 중성화 여부를 조회하는 SQL 문을 작성해주세요. 3. 풀이 IN 을 사용해서 처리한다. SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ("Lucy", "Ella", "Pickle", "Rogan", "Sabrina", "Mitty"); [참조] programmers.co.kr/learn/courses/30/lessons/59046 코딩테스트 연습 - 루시와 엘라 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. A.. 더보기
[Programmers/SQL] 보호소에서 중성화한 동물 1. 테이블 구조 2. 문제 보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화1되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성해주세요. 3. 풀이 ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 JOIN하고 들어왔을 때와 나갈 때의 중성화 여부가 달라지면 반환한다. SELECT OUTS.ANIMAL_ID, OUTS.ANIMAL_TYPE, OUTS.NAME FROM ANIMAL_OUTS AS OUTS JOIN ANIMAL_INS AS INS ON OUTS.ANIMAL_ID = INS.ANIMAL_ID WHERE INS.SEX_UPON_INTAKE != OUTS.SEX_U.. 더보기
[Programmers/SQL] 오랜 기간 보호한 동물(1) 1. 테이블 구조 2. 문제 아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다. 3. 풀이 ANIMAL_INS 테이블을 기준으로 ANIMAL_OUTS 테이블과 LEFT OUTER JOIN을 사용해서 ANIMAL_OUTS 테이블에서 존재하지 않는 ANIMAL_ID들을 LIMIT 3를 사용하여 3개만 출력한다. SELECT INS.NAME, INS.DATETIME FROM ANIMAL_INS AS INS LEFT OUTER JOIN ANIMAL_OUTS AS OUTS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID WHERE OUTS.ANIMAL_ID IS NULL ORD.. 더보기
[Programmers/SQL] 있었는데요 없었습니다 1. 테이블 구조 2. 문제 관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다. 3. 풀이 ANIMAL_OUT 테이블과 ANIMAL_INS 테이블을 조인해서 ANIMAL_OUT테이블의 DATETIME이 더 큰 경우만반환한다. SELECT INS.ANIMAL_ID, INS.NAME FROM ANIMAL_OUTS AS OUTS JOIN ANIMAL_INS AS INS ON OUTS.ANIMAL_ID = INS.ANIMAL_ID WHERE OUTS.DATETIME < INS.DATETIME ORDER BY INS.DATETIME; [참조] programmer.. 더보기