본문 바로가기

데이터베이스/ORACLE

(54)
[ORACLE] TO_CHAR, TO_DATE 함수로 초까지 나타내기 SELECT TO_CHAR(TO_DATE('20200324', 'YYYYMMDDHH24MISS'), 'YYYY-MM-DD HH24:MI:SS') AS TO_DATE_형식1 , TO_CHAR(TO_DATE('20200324', 'YYYYMMDDHH24MISS'), 'YYYY/MM/DD HH24:MI:SS') AS TO_DATE_형식2 , TO_CHAR(TO_DATE('20200324', 'YYYYMMDDHH24MISS'), 'DD/MM/YYYY HH24:MI:SS') AS TO_DATE_형식3 FROM DUAL; SELECT TO_DATE('20180101010101', 'YYYYMMDDHHMISS') AS GO FROM DUAL; SELECT TO_DATE('20180101000035', 'YYYYMMD..
[Oracle] SQL Developer 엑셀 import 하기 실제 거래 데이터가 아닙니다. 주의점 1. 16자리 이상의 숫자는 끝자리가 0으로 바뀐다. 이를 텍스트 타입으로 바꾸면 끝자리가 보존된다. 그런데, CSV 파일로 저장하고 다시 열어보면 엉뚱하게 다시 바뀌어있음. 반드시 xlsx 으로 저장하자. 그래야 끝자리가 그대로 유지된다. 2. 날짜 타입을 쓸 때는 형식에 주의해야 한다. 엑셀에는 yyyy-mm-dd hh24:mi 였는데 sql developer에서 import 할때는 데이터가 dd/mm/yyyy hh24:mi 였다. 앗..그러고보니 실제 포맷과는 달라서 삽입이 안이루어졌다. 엑셀에서 데이트 타입의 컬럼은 텍스트 타입으로 변경해야한다. 그리고, 끝에 초가 자동으로 사라진걸 볼 수 있는데, 새로운 컬럼을 하나 만들고 2018-01:01 17:30:55..
[Oracle] 한글 Alias에는 반드시 더블쿼테이션("")을 붙여야 함
[Oracle] 20-05-06 수업 마크다운 형태는 왤케 글씨가 작게보이지 [수업 정리] 4. 실습 SELECT 1. SQL 분류 와 SELECT(시험 문제) ★★★SQL 분류와 SELECT 문제(3 또는 4번 문제) ![image](https://user-images.githubusercontent.com/63223355/81156253-b74d2300-8fc0-11ea-9ad5-e04d2ad5fbbe.png) 질문) QUERY에 SELECT만 따로 빼놓은 이유는? 학자에 따라 5개의 카테고리, 4개의 카테고리로 분류하기도 한다. QUERY는 조작이 아니라 단순히 보기만 하기 때문에, DML보다 QUERY라는 별도의 카테고리에 넣는 것이 맞다는 의견도 있다. 2. SELECT 실습 2-1. 실습 환경 2-2 SELECT LIST 조인 관..
[Oacle] 최종 프로젝트 쿼리 정리 사용자의 하나카드 거래 이력 테이블을 조회하는 쿼리다. WHERE절 서브쿼리를 활용해서 주민등록번호로 보유한 카드번호를 가져온 뒤 거래이력을 조회하게 된다. SELECT절 서브쿼리(스칼라 서브쿼리)를 활용해서 결제방식, 결제수단을 코드테이블과 매핑하여 코드값으로 변환했다. SELECT T.CARD_TRANSACTION_TIME, T.CARD_TRANSACTION_CONTENT, T.CARD_TRANSACTION_AMOUNT, (SELECT VALUE FROM CODE WHERE CODE = T.PAYMENT) AS PAYMENT, (SELECT L.CARD_PRODUCT_NAME FROM CARD_PRODUCT_LIST_TEST01 L WHERE L.CARD_PRODUCT_CODE = (SELECT C...
[Oracle] 연산이 필요한 게 아니라면 NUMBER 타입을 쓰지 말자 CVC를 NUMBER로 지정하고, 값을 000으로 줬더니 SELECT 하니까 0으로 나온다. 000인데 0으로 나오는 줄 알았더니 그게 아니었다. 심지어 SELECT * FROM CARD_CONTRACT_TEST01 WHERE CVC = 0; 해도 조회가 된다. 이제서야 이렇게 되는걸 알았네. 숫자연산이 필요한게 아니라면 절대 NUMBER 타입으로 만들지 말자!! CREATE TABLE CARD_CONTRACT_TEST01( CARD_NUM CHAR(16) PRIMARY KEY, CARD_PRODUCT_CODE VARCHAR2(3) NOT NULL, RESI_NUM CHAR(13) NOT NULL, CVC NUMBER(3) NOT NULL, PASSWORD NUMBER(4) NOT NULL -- 제약조건..
[Oracle] 비교절에 현재시간 + 문자열 넣기 HAVING TO_CHAR(CARD_TRANSACTION_TIME, 'YYYY-MM') = (SELECT TO_CHAR(SYSDATE, 'YYYY')||'-12' FROM DUAL) SELECT SUBQUERY1.NUM AS "1월", SUBQUERY2.NUM AS "2월", SUBQUERY3.NUM AS "3월", SUBQUERY4.NUM AS "4월", SUBQUERY5.NUM AS "5월", SUBQUERY6.NUM AS "6월", SUBQUERY7.NUM AS "7월", SUBQUERY8.NUM AS "8월", SUBQUERY9.NUM AS "9월", SUBQUERY10.NUM AS "10월", SUBQUERY11.NUM AS "11월", SUBQUERY12.NUM AS "12월" FROM (SE..
[Oracle] 조회된 ROW가 없을 때, RETURN 하는 방법 SELECT SUBQUERY1.NUM AS "1월", SUBQUERY2.NUM AS "2월", SUBQUERY3.NUM AS "3월", SUBQUERY4.NUM AS "4월", SUBQUERY5.NUM AS "5월", SUBQUERY6.NUM AS "6월", SUBQUERY7.NUM AS "7월", SUBQUERY8.NUM AS "8월" FROM (SELECT SUM(CARD_TRANSACTION_AMOUNT) AS NUM FROM CARD_TRANSACTION_TEST01 GROUP BY TO_CHAR(CARD_TRANSACTION_TIME, 'YYYY-MM') HAVING TO_CHAR(CARD_TRANSACTION_TIME, 'YYYY-MM') = '2020-01') SUBQUERY1, (SELEC..