Database
-
오라클에서 공백 제거를 위해 사용할 수 있는 함수는 TRIM()과 REPLACE()가 있습니다. TRIM(), RTRIM(), LTRIM() TRIM : 문자열의 양쪽 공백을 제거 LTRIM : 문자열이 시작되는 부분의 공백 제거 RTRIM : 문자열의 끝 부분의 공백 제거 WITH TESTDB AS( SELECT '20123153' HAKBUN, '김 우근' ENAME FROM DUAL UNION ALL SELECT '20132477' HAKBUN, '박 상후' ENAME FROM DUAL UNION ALL SELECT '20146348' HAKBUN, '배 철수' ENAME FROM DUAL ) SELECT HAKBUN, ENAME FROM TESTDB TESTDB 각 컬럼에는 그림과 같이 공백이 있..
[Oracle]공백 제거 2018. 9. 28. -
현재 시간을 입력할 때 오라클에서는 SYSDATE를 입력하면 되지만 MySQL에서는 안됩니다. MySQL에서 현재 시간을 입력하는 방법은 두 가지가 있습니다. 1) 날짜가 들어갈 컬럼(BOARD_YMD)의 데이터 타입을 TIMESTAMP DEFAULT NOW()를 주고 INSERT 시 DEFAULT값을 입력하는 방법 CREATE TABLE BOARD( BOARD_NO INT NOT NULL AUTO_INCREMENT, BOARD_TYPE VARCHAR(20) NOT NULL, BOARD_TITLE VARCHAR(30), BOARD_CONTENT TEXT, BOARD_CNT INT DEFAULT 0, BOARD_USER VARCHAR(20) NOT NULL, BOARD_YMD TIMESTAMP DEFAUL..
[MySQL]현재 시간 입력 2018. 9. 12. -
CASE WHEN ELSE END 프로그래밍 언어에서 switch case문이 있듯 오라클에서도 case문 사용이 가능합니다. 사용법은 간단합니다. CASE 대상 WHEN 조건1 THEN 결과1 WHEN 조건2 THEN 결과2 WHEN 조건3 THEN 결과3 (ELSE 결과) END 이러한 형태로 대상값이 조건을 만족하는 결과를 출력합니다. 조건에 해당하지 않는 경우는 ELSE로 처리할 수 있습니다. 간단한 사용 예제입니다. WITH TESTDB AS( SELECT '햇빛' STAT, '' CONTENT FROM DUAL UNION ALL SELECT '구름' STAT, '' CONTENT FROM DUAL UNION ALL SELECT '우산' STAT, '' CONTENT FROM DUAL UNION..
[Oracle]CASE문 2018. 9. 2. -
CUBE 지난 글에서 아래와 같은 테이블이 있다고 했을 때, ROLLUP을 사용해서 각 학부별 등록금 총액과 학생 수를 구할 수 있었습니다. [각 학부별 등록금 총액과 학생 수] 그럼 학부(HAKBU)말고 학과(DEP)에 대한 등록금 총액과 학생 수를 구하기 위해서는 어떻게 해야 할까요? 방법은 있다. 학과에 대해 ROLLUP을 사용하여 UNION ALL로 연결시켜주면 됩니다. 하지만 CUBE를 사용하면 더 편하게 결과를 구할 수 있습니다. SELECT HAKBU, DEP, SUM(PAY) PAY, COUNT(SNO) S_COUNT FROM TESTDB GROUP BY CUBE(HAKBU, DEP) ORDER BY HAKBU 빨간 표시된 부분을 보면 학과에 대한 등록금 총액과 학생 수를 확인할 수 있습니..
[Oracle]CUBE 2018. 8. 22. -
ROLLUP ROLLUP함수는 GROUP BY절과 함께 사용됩니다. ROLLUP을 이용하면 GROUP BY절로 집계된 결과에 더 자세한 정보를 확인할 수 있습니다. 테이블을 하나 만들어 테스트해보겠습니다. TESTDB라는 테이블을 생성했습니다. 각각의 컬럼은 다음과 같습니다. SNO : 학번 SNAME : 학생명 HAKBU : 학부 DEP : 전공학과 PAY : 등록금 이제 이 테이블을 이용해서 ROLLUP이 어떤 기능을 하는지 확인해보겠습니다. SELECT HAKBU, DEP, SUM(PAY) PAY, COUNT(SNO) S_COUNT FROM TESTDB GROUP BY HAKBU, DEP ORDER BY HAKBU 먼저 학부의 학과별 등록금의 총액과 학생 수를 조회해보겠습니다. 위와 같이 학부의 학..
[Oracle]ROLLUP 2018. 8. 22. -
예전에 꽤 헤맸던 오류였는데 따로 메모해둔 자료가 있어서 기록을 해두려고 합니다. ORA-01417: 하나의 테이블은 하나의 다른 테이블과 포괄 조인할 수 있습니다 이 에러는 대상 테이블을 두 개 이상의 테이블과 동시에 아우터 조인할 때 발생합니다. 아래 에러를 내기위해서 임의로 쿼리문을 만들었습니다. SELECT A.O_NM , B.O_NM , C.O_NM FROM ( SELECT 'C001' O_CD , 'A' O_NM FROM DUAL ) A ,( SELECT 'C002' O_CD , 'B' O_NM FROM DUAL ) B ,( SELECT 'C003' O_CD , 'C' O_NM FROM DUAL ) C WHERE A.O_CD=B.O_CD(+) AND C.O_CD=B.O_CD(+) B라는 테이블..
[Oracle]ORA-01417: 하나의 테이블은 하나의 다른 테이블과 포괄 조인할 수 있습니다 2018. 8. 20. -
TRUNC TRUNC함수는 절삭 함수입니다. 소수점 자리를 지정하여 자르거나 날짜형식을 지정하여 자를 수 있습니다. 정확히는 해당 날짜형식 이외에는 초기화를 시켜버린다고 볼 수 있습니다. 소수점의 경우 ☞ TRUNC(숫자, 소수점 자리) SELECT TRUNC(2018.0817, 2) FROM DUAL (참고) -1 : 일의 자리부터 절삭 -2 : 십의 자리부터 절삭 -3 : 백의 자리부터 절삭 SELECT TRUNC(2018.0817, -1) FROM DUAL 날짜의 경우 ☞ TRUNC(날짜, 날짜형식) ※ 반드시 날짜타입으로 들어가야 합니다.(TO_DATE, 혹은 SYSDATE) 날짜형식 YYYY(년) SELECT TRUNC(TO_DATE('201808171130','YYYYMMDDHH24MI'), ..
[Oracle]TRUNC 2018. 8. 17. -
꽤 긴 휴가가 끝나고 다시 일상으로 돌아왔습니다... ㅠㅠ 오늘은 데이터 딕셔너리 뷰 중 하나인 USER_SOURCE에 대해 간단히 포스팅해보려 합니다. USER_SOURCE 앞서 ALL_OBJECTS를 사용해 테이블, 트리거, 프로시저 등을 찾을 수 있었습니다. USER_SOURCE는 트리거, 프로시저, 패키지, 함수에 관한 정보를 담고 있습니다. USER_SOURCE의 컬럼은 아래와 같은데 주로 TEXT 컬럼을 사용해서 오브젝트를 찾습니다. 만약 TESTTB라는 테이블을 수정해주는 오브젝트를 찾는다면 아래와 같은 형식으로 쿼리를 입력하면 됩니다. SELECT * FROM USER_SOURCE WHERE 1=1 AND TEXT LIKE '% UPDATE TESTTB %' + 피드백은 언제나 환영입니다 :)
[Oracle]USER_SOURCE 사용 2018. 8. 1.