[프로그래머스 | Programmers] 코딩테스트 연습 문제 SQL 고득점 Kit Level2 조건에 맞는 도서와 저자 리스트 출력하기 오라클 해답
·
Algorithm/Programmers
문제 '경제' 카테고리에 속하는 도서들의 도서 ID(BOOK_ID), 저자명(AUTHOR_NAME), 출판일(PUBLISHED_DATE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 출판일을 기준으로 오름차순 정렬해주세요. 풀이 오랜만에 SQL 고득점 Kit을 풀어보았다. JOIN을 할 수 있다면 이번 문제는 비교적 간단하다. 1. 테이블 조인 및 조회해야하는 컬럼 명시 SELECT A.BOOK_ID, B.AUTHOR_NAME, TO_CHAR(A.PUBLISHED_DATE, 'YYYY-MM-DD') AS PUBLISHED_DATE FROM BOOK A, AUTHOR B WHERE A.AUTHOR_ID = B.AUTHOR_ID 2. 조회조건 및 정렬조건 명시 (아래는 정답) SELECT A.BOOK_..
[프로그래머스 | Programmers] 코딩 기초 트레이닝 Level. 0 특정한 문자를 대문자로 바꾸기 자바 정답 풀이
·
Algorithm/Programmers
이번 문제는 내가 전에 올렸던 아래의 글과 상당히 유사해보이지만! ↓ ↓ ↓ https://heonil.tistory.com/246 [프로그래머스 | Programmers] 코딩 기초 트레이닝 Level. 0 대문자로 바꾸기 자바 정답 풀이 이번 문제는 소문자, 대문자 구분없이 입력된 알파벳을 모두 대문자로 변환해서 return만 해주면 되는! 아주 간단한 문제이다. 풀이..할 것도 없이 toUpperCase, toLowerCase를 알고 있으면 이번 문제는 heonil.tistory.com 쉽게 봤다가는 큰코다치기 쉬운 그런 문제이다.. 나도 문제를 보고 뇌정지가 제대로 와서 처음엔 어 뭐지? 이거 반복문 써서 하는건가? ㅋㅋ 하다가 같혀버렸다..;; 오랜만에 알고리즘 문제를 풀어서 그런가 진짜 머리도..
[프로그래머스 | Programmers] 코딩 기초 트레이닝 Level. 0 대문자로 바꾸기 자바 정답 풀이
·
Algorithm/Programmers
이번 문제는 소문자, 대문자 구분없이 입력된 알파벳을 모두 대문자로 변환해서 return만 해주면 되는! 아주 간단한 문제이다. 풀이..할 것도 없이 toUpperCase, toLowerCase를 알고 있으면 이번 문제는 아주 쉽게 풀 수 있다! package list; public class Programmers_toUpperCase { public static String solution(String myString) { return myString.toUpperCase(); } public static void main(String[] args) { // 파라미터 String result = solution("aBcDeFg"); // 솔루션 값 출력 System.out.print(result); }..
[리뷰 아닌 리뷰] 애플스토어 잠실 방문기 및 터치바 달린 빈티지 맥북 프로 하판 교체 후기(살짝 불친절한 거 같기도 하고 친절한 거 같기도 하고)
·
Blog
이번에 직장 근처 잠실에 애플스토어가 생겼다. 퇴근하면서 주변을 둘러보니 잠실역 근처에 있는 거의 모든 버스정류장에 애플스토어 잠실 오픈을 알리는 광고가 걸려있어 단번에 알 수 있었다. 정확한 위치는 잠실 롯데월드몰 1층, ZARA, 유니클로 매장 근처이다. 1층으로 들어가면 찾기 쉽고, 지하에서는 도토리숲(토토로 버스 있는 그곳), 크리스피 크림 도넛 앞에 있는 에스컬레이터를 타고 올라가서 그대로 앞으로 조금만 걸어가면 애플스토어가 나온다. 매장 운영시간은 유동적으로 조정될 수도 있으니 방문 전에 아래 링크를 눌러 운영 시간을 확인하고 가도록 하자! 예약을 하지 못했다면 운영 시간 중 방문하여 지니어스나 다른 직원들을 통해 현장 예약하고 기다리면 되지만, 온라인으로 예약하고 가는 게 제일 좋다. htt..
[Oracle | 오라클] ORA-00904 : 부적합한 식별자 오류
·
Database/Oracle
ORA-01756: "X": 부적합한 식별자 "%s: invalid identifier" ※ 이 오류는 문자가 들어가는 모든 쿼리문에서 확인할 수 있다. 쿼리를 작성해서 데이터를 조회할 때 보통 WHERE 절을 필수로 사용하는데, 이때 발생하는 오류이다. 아래의 예시를 보면 단번에 이해할 수 있다! SELECT USER_ID, USER_NM FROM TB_USER WHERE USER_NM = 김헌일 위의 쿼리를 보면 '김헌일'이라는 이름을 가진 유저를 모두 조회하도록 작성하였는데 WHERE 절에 ' 문자가 빠져서 발생하는 오류이다. 해결방법은 아래와 같이, 데이터베이스가 조건을 정확하게 인식할 수 있게 ' 문자를 넣어주고, 쿼리를 실행하면 된다. SELECT USER_ID, USER_NM FROM TB_..
[Oracle | 오라클] ORA-01756 : 단일 인용부를 지정해 주십시오 오류
·
Database/Oracle
ORA-01756: 단일 인용부를 지정해 주십시오 "quoted string not properly terminated" ※ 이 오류는 데이터 조회 시 확인할 수 있다. 쿼리를 작성해서 데이터를 조회할 때 보통 WHERE 절을 필수로 사용하는데, 이때 발생하는 오류이다. 아래의 예시를 보면 단번에 이해할 수 있다! SELECT * FROM TB_USER WHERE USER_NM IN ('김헌일); 따로 설명할 것도 없는데... 해당 쿼리의 USER_NM 조건에 문자열을 닫아주는 ' 가 빠져있어 ORA-01756 오류가 발생한다. 해결 방법은 SELECT * FROM TB_USER WHERE USER_NM IN ('김헌일'); 당연하게도 ' 를 입력해서 열린 문자열을 닫아주면 된다. 끗!
[프로그래머스 | Programmers] 코딩테스트 연습 문제 SQL 고득점 Kit Level3 없어진 기록 찾기 오라클 해답
·
Algorithm/Programmers
문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N)..
[프로그래머스 | Programmers] 코딩테스트 연습 문제 SQL 고득점 Kit Level3 있었는데요 없었습니다 오라클 해답
·
Algorithm/Programmers
문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N)..
[Oracle | 오라클] ORA-00979 : GROUP BY 표현식이 아닙니다.
·
Database/Oracle
ORA-00979: GROUP BY 표현식이 아닙니다. "not a GROUP BY expression" ※ 이 오류는 데이터 조회 시 자주 확인할 수 있다. 지금 내가 일하고 있는 이곳은 통계 값 요청이 상당히 많다. ~~자격증을 소지하고 있는 자는 몇 명인지, ~~상태값이 Y인 아이디는 몇 개인지, N인 아이디는 몇 개인지 등 위와 같이 통계 값을 요청했을 때 자주 사용하는 것이 GROUP BY 이다. 쉽게 예를 들자면, 1번, 2번 자격증이 있다고 가정하고, 요청자가 1번 자격증을 소지하고 있는 사람의 수, 2번 자격증을 가지고 있는 사람의 수를 뽑아주세요!라고 할 때 이 GROUP BY 를 사용하면 쉽게 구할 수 있다는 것이다! 그럼 GROUP BY 표현식이 아닙니다. 라는 오류는 언제 발생하는지..
[Oracle | 오라클] ORA-01858 : 숫자가 있어야 하는 위치에서 숫자가 아닌 문자가 발견되었습니다. 오류
·
Database/Oracle
ORA-01858: 숫자가 있어야 하는 위치에서 숫자가 아닌 문자가 발견되었습니다. "a non-numeric character was found where a numeric was expected" ※ 데이터 조회 시 날짜 관련 함수(TO_CHAR, TO_DATE 등)를 사용할 때 자주 발생하는 오류이다. 아래의 예시에 있는 질의문을 실행시켜보면, SELECT TO_DATE(SYSDATE, 'yyyymmdd') FROM DUAL; 'ORA-01858 : 숫자가 있어야 하는 위치에서 숫자가 아닌 문자가 발견되었습니다.' 오류가 출력된다. 어떻게 보면 다른 애매모호한 오류 메시지보다 훨씬 직관적이라서 헤맬 필요 없이 쿼리를 수정이 가능하다. 오류가 발생하는 원인은 TO_DATE 함수는 숫자를 문자로 변환해..
[Oracle | 오라클] ORA-01722 : 수치가 부적합합니다 오류
·
Database/Oracle
ORA-01722: 수치가 부적합합니다 해당 오류는 데이터를 삽입, 수정 시 확인할 수 있다. 간단하게 설명하자면 컬럼의 DATATYPE이 NUMBER인데, 해당 컬럼에 문자를 입력하게 되면 ORA-01722 오류가 발생한다. 위의 오류는 당연하게도 NUMBER 타입의 컬럼에만 국한되지 않고 다른 데이터 타입의 경우도 마찬가지이다. 아래는 예시이다. -- ORA-01722 오류 발생 -- USER_TEL 컬럼의 DATATYPE은 NUMBER라고 가정한다. INSERT INTO TB_USER ( USER_NO, USER_ID, USER_TEL ) VALUES ( '0001', 'kimheon1' '아메리카노' ); USER_TEL 컬럼의 데이터 타입이 NUMBER인데 해당 컬럼에 '아메리카노' 라는 문구를..
[Oracle | 오라클] ORA-12899 : 열에 대한 값이 너무 큼 오류
·
Database/Oracle
ORA-12899 : 열에 대한 값이 너무 큼 "value too large for column" 데이터 삽입, 업데이트 시 많이 마주치는 오류이다. 위 오류는 컬럼에 설정되어 있는 데이터 허용치보다 더 큰 값을 삽입, 업데이트 하는 경우 발생한다. 쉽게 예시를 들어보면, DEL_YN 이라는 컬럼에 데이터 타입이 VARCHAR2(1 BYTE)라고 가정했을 때 입력할 수 있는 값은 알파벳 하나일 것이다. 그런데 이 컬럼에 한글을 넣는다던지, 더 많은 알파벳, 숫자 등 설정한 BYTE보다 더 큰 값을 입력하는 경우 ORA-12899 오류가 출력될 것이다. -- INSERT 과정에서 ORA-12899 오류 발생 -- DEL_YN 컬럼의 DATETYPE이 VARCHAR2(1 BYTE) 라고 가정함 INSERT ..
[Oracle | 오라클] ORA-01400 : NULL을 (~) 안에 삽입할 수 없습니다. 오류
·
Database/Oracle
ORA-01400 : NULL을 (~) 안에 삽입할 수 없습니다 해당 오류는 INSERT 구문을 작성하다 보면 확인할 수 있다. 오류 메시지에 친절하게 NULL을 '테이블.컬럼명' 에 삽입할 수 없다고 하는데, 풀어서 얘기하면 ORA-01400 오류는 테이블에 NULLABLE이 'No'인 컬럼이 있는데 해당 컬럼에 데이터를 넣지 않고 INSERT를 시도하는 경우 발생한다. -- INSERT 과정에서 ORA-01400 오류 발생 -- 해당 테이블의 USER_NO 컬럼은 NULLABLE 값이 'No' 라고 가정한다. INSERT INTO TB_USER ( USER_NM ) VALUES ( '김헌일' ) 위의 쿼리문은 겉으로 봐서는 문제가 없어 보이지만, USER_NO 컬럼의 NULLABLE 값이 No일 경우..
[Oracle | 오라클] ORA-00913 : 값의 수가 너무 많습니다 오류
·
Database/Oracle
ORA-00913 : 값의 수가 너무 많습니다 "too many values" 데이터 확인을 위해 SQL 질의문을 작성하다 보면 가끔씩 마주치는 오류이다. + 해당 오류는 INSERT 과정에서도 발생한다. -- SELECT 과정에서 ORA-00913 오류 발생 SELECT * FROM TB_USER WHERE USER_NO = ( SELECT USER_NO, USER_NM FROM TB_USER WHERE USER_NO = ? ) -------------------------- -- INSERT 과정에서 ORA-00913 오류 발생 INSERT INTO TB_USER ( USER_NO, USER_NM ) VALUES ( 'ID000001', '김헌일', 'kimheonil' ) 해당 오류가 나는 이유는 ..
[Oracle | 오라클] ORA-01427 : 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다. 오류
·
Database/Oracle
ORA-01427: 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다. "single-row subquery returns more than one row" 데이터 확인을 위해 SQL 질의문을 작성하다 보면 가끔씩 마주치는 오류이다. -- ORA-01427 오류 발생 SELECT * FROM TB_USER WHERE USER_NO = ( SELECT USER_NO FROM TB_USER ) 조건문에 들어간 서브쿼리가 하나 이상의 결과값을 뱉어내면 위와 같은 오류 메시지가 출력되는데 해결 방법은 간단하다. 1. equlas(=) 로 검색하려는 조건을 'IN'으로 수정하기 2. 하나의 결과만 정확하게 출력할 수 있도록 서브쿼리 수정하기 아래는 예시이다! -- 1번 SELECT * FROM TB_USER ..
헌일
오늘 할 일은 내일로 미루고 내일 할 일은 생각하지 말자