WORK/DB 44

오라클 function 생성하기

오라클 function 만들기 예제 아래 두개의 테이블을 이용해 function 을 만들어 보자. 1. 사용자 테이블SELECT USER_ID, USER_NAME, AREA_CODE -- 지역코드, DEL_FLAGFROM USER_INFO 2. 지역정보SELECT AREA_CODE, AREA_NAMEFROM AREA_INFO -- FUNCTION 선언문create or replace FUNCTION FN_RTN_AREA (P_USER_ID IN VARCHAR2 )RETURN VARCHAR2 -- 변수 선언문V_AREA_NAME VARCHAR2(10 CHAR);V_AREA_CODE VARCHAR2(10 CHAR); -- SELECT 된 값을 변수에 담는다.SELECT AREA_NAME , AREA_CODE..

WORK/DB 2018.11.30

MYSQL 조건문

mysql에 CASE 문장도 있지만 IF 문장도 있어 한번 알아보자. CASE 문장으로 쓸 경우 SELECT CASE WHEN CODE = '0001' THEN '학생' ELSE '선생' END AS TITLE, CODEFROM COM_CODE 이러한 문장 실행 시 아래와 같이 결과값이 나온다. 위의 CASE 문장을 IF문장으로 바꾸어 보자. SELECT IF(CODE = '0001' , '학생' , '선생')AS TITLE, CODEFROM COM_CODE 코드가 0001과 같을 경우 학생 출력 , 그렇지 않으면 선생 출력을 하게 된다. 너무나 간단하지만 혹~~시라도 처음 접하시는 분들이 있을까 작성해본다.

WORK/DB 2018.11.23

오라클 MERGE 문장

MERGE INTO 테이블A as A USING 테이블B as B -- table , view , subquery 가 들어가도 됨 ON (A.USER_ID = B.USER_ID) -- WHERE절에 조건 쓰듯이 WHEN MATCHED THEN -- ON 이하의 조건에 해당하는 데이터가 있는 경우 UPDATE 문장 -- UPDATE 실행 WHEN NOT MATCHED THEN -- ON 이하의 조건에 해당하는 데이터가 없는 경우 INSERT 문장 -- INSERT 실행 기존 데이터가 있을 경우 UPDATE 처리 , 기존 데이터가 없을 경우 INSERT 처리 한다.

WORK/DB 2018.10.16

오라클 sequence 생성 및 조회

오라클에서 table insert 시 max+1 을 사용해도 되지만 , sequence를 생성해 놓으면 조금 더 편리하게 사용 가능하다. 오라클 sequence 생성하기. CREATE SEQUENCE SEQ명 INCREMENT BY N START WITH N 여기서 SEQ명은 중복이 안된다.START WITH 값은 sequence 의 시작값을 의미한다. start with 1 로 주면 1부터 시작 , 10을 주면 10부터 시작이다.INCREMENT BY 값은 증가값을 의미한다. increment by 1 이면 1씩 증가 , 2이면 이씩 증가하게 된다. 생성된 sequence 조회 SELECT * FROM USER_SEQUENCES 생성된 sequence 삭제 DROP SEQUENCE SEQ명

WORK/DB 2018.10.11

oracle 계정생성 및 테이블 스페이스 생성

사용자 계정 생성 CREATE USER 유저명 IDENTIFIED BY 유저비밀번호 => CREATE USER testuser IDENTIFIED BY testuser1234; 사용자 권한주기 GRANT RESOURCE, CONNECT TO testuser; 테이블스페이스 생성 CREATE TABLESPACE testuser DATAFILE 'D:\APP\ADMINISTRATOR\ORCL\testuser.DBF' // dbf파일 경로SIZE 200M // sizeAUTOEXTEND ON; // 사이즈 자동증가 테이블 스페이스 조회 SELECT FILE_NAME, BYTES, STATUS FROM DBA_DATA_FILES; 위 명령어는 sqlplus에 접속하여 입력해도되고 , system 계정으로 로그인..

WORK/DB 2018.08.30

테이블 join 해서 update 하기

MSSQL의 경우에는 UPDATE 문장먼저 입력 후 JOIN문 입력하는 형태이다. UPDATE TB1 SET TB1.COLUMN1 = TB2.COLUMN1, TB1.COLUMN2 = TB2.COLUMN2FROM TABLE1 TB1 JOIN TABLE2 TB2 ON TB1.CODE = TB2.CODE 이런 형태이다. MYSQL 의 경우는 약간 반대이다. UPDATE TABLE1 TB1 JOIN TABLE2 TB2ON TB1.CODE = TB2.CODESET TB1.COLUMN1 = TB2.COLUMN1 , TB1.COLUMN2 = TB2.COLUMN2WHERE TB1.NAME = '' MYSQL 의 경우에는 JOIN문 입력 후 UPDATE 문장 그리고 조건문이 들어간다.

WORK/DB 2018.04.09

oracle insert 후 자동증가값 가져오기

먼저 테이블 생성을 한다. CREATE TABLE DEPT_INFO( DEPT_NO NUMBER NOT NULL, DEPT_NAME, CONSTRAINT PK_DEPT_INFO PRIMARY KEY(DEPT_NO ) ) 이렇게 생성된 테이블에서 DEPT_NO 를 자동증가하여 INSERT 하고자 할때 ,MSSQL 은 IDENTITY 를 사용하고 , MYSQL 은 AUTO_INCREMENT 를 사용한다. ORACLE 의 경우에는 NEXTVAL 함수를 사용하는데 , 먼저 NEXTVAL 을 생성한다. CREATE SEQUENCE DEPT_INFO_SEQ INCREMENT BY 1 START WITH 1; 위의 문장을 실행하면 되는데 , DEPT_INFO_SEQ = 주고자 하는 값 INCREMENT BY 1 = ..

WORK/DB 2018.04.04