본문 바로가기

Database

[ SQL ] TO_CHAR 함수 1. 문자열 만들기 SELECT TO_CHAR(89087) FROM DUAL; 숫자를 문자로 바꾸는 함수 SELECT TO_CHAR(89087) || '원' FROM DUAL; 문자열 + 문자열 2. 날짜 표시 - TO_CHAR(데이트타입, 원하는 모양) SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') FROM DUAL; SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD') FROM DUAL; SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL; SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH:MI:SS') FROM DUAL; 12시간 단위로 표시 SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24.. 더보기
[ SQL ] 문자열 함수들 1. 문자열을 합치는 함수 - CONCAT() SELECT CONCAT('KAKAO', 'FRIENDS') FROM DUAL; 2. 첫 글자는 대문자, 나머지 문자는 소문자로 바꾸는 함수 - INITCAP() SELECT INITCAP('tHIS IS A bOoK') FROM DUAL; 3. 전체 영문을 대문자로 바꾸는 함수 - UPPER() SELECT UPPER('tHIS IS A bOoK') FROM DUAL; 4. 전체 영문을 소문자로 바꾸는 함수 - LOWER() SELECT LOWER('tHIS IS A bOoK') FROM DUAL; 5. 문자열 왼쪽에 특정문자를 추가하는 함수 - LPAD() SELECT LPAD('ABCDEF', 8, '@') FROM DUAL; 문자열을 8자로 바꾸고 남.. 더보기
[ SQL ] PROCEDURE(프로시져), PACKAGE(패키지) PROCEDURE(프러시져)는 마치 함수와 다르지 않다. 함수와 같이 매개변수를 받는데 다른 점은 첫 번째RETURN 값이 없고, 두번째 TRANSTION이라는 개념을 가지고 있다. 마지막으로 프로시져는 업무 처리의 최소단위이다. PROCEDURE 문법 CREATE OR REPLACE PROC_PROCEDUE ( 매개변수명 IN OR OUT VARCHAR2 ) AS V_변수명VARCHAR(30); BEGIN NULL; END PROC_PROCEDURE ; 프러시져명은 보통 PROC_ 로 시작하여 누가 보더라도 PROCEDURE라는 걸 알 수 있게 하는 게 좋다. 매개변수명도 CLIENT에게 받을 값은 IN, 보내줄 값을 OUT이라고 명시해주고 IN_ 또는 O_으로 시작해 매개변수의 속성을 이름만 봐도 알.. 더보기
[ SQL ] FUNCTION(함수) 업무 수행을 위해 패키지나 프로시저를 만들 때, 많이 사용하는 쿼리를 함수로 만들어 가져다 쓸 수 있다. FUNCTION(함수) 만들기 create or replace NONEDITIONABLE FUNCTION FN_ADD ( IN_NUM1 IN NUMBER , IN_NUM2 IN NUMBER ) RETURN NUMBER AS V_RESULT NUMBER(5); BEGIN V_RESULT := IN_NUM1 + IN_NUM2; RETURN V_RESULT; END FN_ADD; 덧셈을 위한 함수를 만들었다. sqldeveloper에서 함수에 우클릭하여 새 함수를 만들 수 있고 쿼리로 만들 수도 있다. 패키지나 프로시저를 만드는 것과 같이 매개변수를 설정해주고 함수이기 때문에 RETURN + 리턴받을 데이.. 더보기
[ SQL ] WHERE EXISTS, NOT EXIST 두 테이블에서 SELECT 문을 사용하여 한 테이블에 데이터와 다른 한 테이블에 데이터를 비교하여 있거나 없는 데이터를 보고 싶을 때 두 테이블의 관계가 일대다 일경우, SELECT 문을 사용할 때 LEFT JOIN 혹은 RIGHT JOIN 으로 해결할 수 있다. 그러나 두 테이블의 관계가 다대다일 경우, JOIN 하여 SELECT 하기 쉽지 않을 것이다. WHERE EXISTS CREATE TABLE A_TABLE ( A_ID CHAR(4) PRIMARY KEY, A_NAME VARCHAR(30) NOT NULL ); INSERT INTO A_TABLE VALUES ('A001', '홍길동'); INSERT INTO A_TABLE VALUES ('A002', '전우치'); -- COMMIT; SELEC.. 더보기
[ SQL ] EXCEPTION - 예외 처리 프로시져(PROCEDURE) 실행 시 에러가 발생되면 클라이언트에게 직접적으로 에러 메시지가 표출되지 않도록 하기 위해서 예외 처리를 한다. EXCEPTION 문법 EXCEPTION WHEN NO_DATA_FOUND THEN O_ERRMSG := '해당테이블에서 데이터를 찾을 수 없습니다.'; O_ERRMSG := '0으로 나눌 수 없습니다.'; ROLLBACK; WHEN TOO_MANY_ROWS THEN O_ERRCODE := 002; O_ERRMSG := '행이 너무 많습니다.'; ROLLBACK; WHEN OTHERS THEN O_ERRCODE := 100; O_ERRMSG := '담당자에게 연락주세요.'; ROLLBACK; 구현하고자 하는 업무의 프로시져를 완성한 후 패키지나 프로시져가 끝나기 전.. 더보기
[ SQL ] VIEW - 메모리 상에 존재하는 테이블 데이터 베이스에서 뷰(VIEW)란 메모리 상에 존재하는 테이블이기 때문에 뷰(VIEW)를 많이 쓰게 되면 메모리를 많이 사용하게 되어 처리 속도가 느려진다. 뷰(VIEW)를 만들 때 사용된 테이블에 INSERT, UPDATE, DELETE를 하게 되면 뷰(VIEW)에도 당연히 적용이 되는데 뷰(VIEW) 테이블에 INSERT, UPDATE, DELETE 는 되는 경우도 있고 되지 않는 경우도 있다. 더보기
[ SQL ] 시퀀스 (SEQUENCE) - 자동 증가 값 시퀀스(Sequence) : 시퀀스란 자동으로 순차적으로 증가하는 순번을 반환하는 데이터베이스 객체 시퀀스는 우클릭 후 새 시퀀스에서 만들어 줄 수도 있고, → 쿼리로 만들어 줄 수도 있다. ↓ CREATE SEQUENCE SEQ_TEST INCREMENT BY 1 START WITH 1 MAXVALUE 10000 MINVALUE 1; 쿼리와 이미지 똑같은 시퀀스를 생성함 1. 시퀀스 예제 1 SELECT SEQ_TST.NEXTVAL FROM DUAL; 시퀀스 명.NEXTVAL 실행 시 시퀀스 생성/편집 시 주는 증가값만큼 계속 증가됨 2. 시퀀스 예제 2 SELECT SEQ_TST.CURRVAL FROM DUAL; 시퀀스 명.CURRVAL 실행 시 현재 시퀀스 값을 확인할 수 있다. 3. 시퀀스 예제 .. 더보기