본문 바로가기
반응형

DBMS/ORACLE70

[ORACLE] 오라클_INSERT시 자동증분 MAX+1 적용하기(ft. NVL) NVL을 사용하여 INSERT 시 MAX+1하기 NVL함수를 사용하여 MAX+1을 하는 이유는 MAX해서 가져와야할 컬럼에 0이 처음에 들어있는 경우 에러가 발생하기 때문이다. NVL(MAX( [컬럼] ) , [치환할 값]) + 1 실제로 사용하게되면 아래와 같은 방식으로 사용된다 (*testSeq는 변수다.) INSERT INTO oracleStudy VALUES ( NVL( MAX(testSeq) , 0) + 1 , '학생1' , '오라클고등학교' ); INSERT INTO oracleStudy VALUES ( ( SELECT NVL( MAX(testSeq) , 0) + 1 FROM oracleStudy ) , '학생1' , '오라클고등학교' ); 물론 NVL 말고도 MAX+1을 처리하는 방법이야 많.. 2019. 2. 18.
[ORACLE] 오라클_NULL 값 일때 치환,처리 (ft. NVL , NVL2) ORACLE 에서는 값이 NULL일때 특정 값으로 치환할 수 있도록 도와주는 함수가 존재하는데 NVL 과 NVL2이다. 이는 오직 ORACLE에서만 제공해주는 함수이기 때문에 다른곳에서는 사용하지 않는다. NVL 과 NVL2에 대해 알아보자. NVL - NVL([컬럼], [치환할 값]) - 해당 컬럼이 NULL일 경우 치환할 값으로 변환시켜 준다. - 타입으로는 숫자, 문자, 날짜 모두 가능하다. -- comm 컬럼이 null일 경우 0으로 치환한다. SELECT salary, NVL(comm, 0) FROM emp; NVL2 - NVL2([컬럼], [NULL이 아닐경우], [NULL일 경우]) - NVL과 달리 매개변수가 하나 더 있는데 이는 컬럼이 NULL이 아닐때 역시 값을 정해둬 사용할 수 있다... 2019. 2. 18.
[ORACLE] 오라클_시퀀스(NEXTVAL , CURRVAL) 사용법 일단 NEXTVAL 와 CURRVAL을 사용하기에 앞서 시퀀스를 생성하고 오도록 하자. (https://mine-it-record.tistory.com/61) [ORACLE]오라클_시퀀스(Sequence) 생성 / 수정 / 삭제 시퀀스(Sequence) - 유일한 값을 생성해주는 오라클 객체입니다. - 일련번호, 자동증가 값을 생성합니다. - 시퀀스는 테이블과 별개로 동작합니다. (독립적) - 모든 DBMS 에서 사용 하는 것은 아닙니다 mine-it-record.tistory.com 둘의 사용방법은 매우 간단하며 "testSeq"를 생성했다는 가정하에 사용해본다면 -- 해당 시퀀스의 값을 증가시키고 싶다면 testSeq.NEXTVAL -- 현재 시퀀스를 알고 싶다면 testSeq.CURRVAL 위와같이.. 2019. 2. 17.
[ORACLE] 오라클_시퀀스(Sequence) 생성 / 수정 / 삭제 시퀀스(Sequence) 유일한 값을 생성해주는 오라클 객체이다. 일련번호, 자동증가 값을 생성한다. 시퀀스는 독립적으로 테이블과 별개로 동작한다. 모든 DBMS에서 사용하는 것은 아니다. 시퀀스는 메모리에 Cache하여 성능을 향상 시킬 수 있다. 보통 시퀀스를 사용하는 부분은 테이블에서 기본키(Primary key)를 생성하여 사용하기 위해 사용하고는 한다. 기본키다 보니 시퀀스의 숫자를 자동으로 증가시켜 중복이 안되는 고유키로 사용하는 것이다. 이제 시퀀스 생성 / 수정 / 삭제 에 대해 하나하나 알아가 보도록 하자. 1. 시퀀스 생성 (CREATE SEQUENCE) - 시퀀스 역시 마찬가지로 CREATE 구문을 사용하여 간단하게 생성이 가능하다. ▷ 구문 CREATE SEQUENCE [시퀀스 이름.. 2019. 2. 17.
[ORACLE] 오라클_문자함수( TRIM, LTRIM, RTRIM : 문자 및 공백제거 ) TRIM TRIM([제거할 문자] FROM 문자열) 함수는 특정한 문자를 제거하지만, 제거할 문자를 입력하지 않으면 공백을 제거한다. TRIM은 char을 작성하기에 앞서 옵션을 줄 수 있는데, 옵션은 LEADING(왼족에서 제거) , TRAILING(오른쪽에서 제거) , BOTH(양쪽에서제거) 이렇게 있으며, 아무 옵션도 설정하지 않으면 기본적으로 BOTH로 자동 설정된다. TRIM은 char부분에 오직 한 개만 작성할 수 있다. SELECT TRIM(' oracleStudy ') AS result FROM DUAL; -- 'oracleStudy' SELECT TRIM('o' FROM 'oracleStudy') AS result FROM DUAL; -- racleStudy SELECT TRIM('디' .. 2019. 2. 15.
[ORACLE] 오라클_문자함수( UPPER, LOWER : 모든 문자를 대/소문자로 변환 ) UPPER, LOWER UPPER(char) 함수는 모든 문자열을 대문자로 변환시켜주는 함수이다. LOWER(char) 함수는 모든 문자열을 소문자로 변환시켜주는 함수이다. -- UPPER SELECT UPPER('oracleStudy') name FROM DUAL; -- ORACLESTUDY SELECT UPPER('Oracle Study') name FROM DUAL; -- ORACLE STUDY -- LOWER SELECT LOWER('oracleStudy') name FROM DUAL; -- oraclestudy SELECT LOWER('ORACLE study') name FROM DUAL; -- oracle study 2019. 2. 15.
[ORACLE]오라클_문자함수( INITCAP : 첫문자만 대문자로 변환 ) INITCAP INITCAP(char) 함수는 문자열중에서 첫문자만 대문자로 바꾸고 나머지는 소문자로 처리하는 함수이다. SELECT INITCAP('oracleStudy') name FROM DUAL -- Oraclestudy SELECT INITCAP('ORACLEstudy') name FROM DUAL -- Oraclestudy SELECT INITCAP('oracle study') name FROM DUAL -- Oracle Study 예제에서 설명한 것 처럼 문자열 중간중간에 대문자가 있다 하여도 첫문자 빼고는 전부 소문자로 바꿔준다. 그치만 여기서 신기한 점이 하나 보이는데, oracle study의 경우 Oracle Study라는 결과값을 반환하였다. 이는 각각의 기준 문자열을 공백을 기준으.. 2019. 2. 15.
[ORACLE] 오라클_문자함수( LENGTH,LENGTHB : 문자열 길이 구하기 ) LENGTH LENGTH(char) 함수는 문자열의 길이를 구하는 함수이다. SELECT LENGTH('오라클스터디') AS length FROM DUAL -- 6 SELECT LENGTH('오라클') AS length FROM DUAL -- 3 SELECT LENGTH('oracle') AS length FROM DUAL -- 6 괄호 안에 들어온 문자열의 길이를 반환해주기 때문에 '오라클스터디'나 'oracle' 둘다 6을 반환한다. LENGTHB LENGTHB(char) 함수는 문자열의 길이를 byte단위로 구하는 함수이다. SELECT LENGTHB('오라클스터디') AS length FROM DUAL -- 12 SELECT LENGTHB('오라클') AS length FROM DUAL -- 6 .. 2019. 2. 15.
[ORACLE] 오라클_문자함수( LPAD, RPAD : 문자열 채우기) LPAD - LPAD(char, n, [char2]) 함수는 char 문자열의 길이와 n을 비교해 남은 수만큼 왼쪽에 char2를 채워주는 함수이다. - n은 채워넣을 문자를 포함한 총 문자열의 길이이다. SELECT LPAD('oracleClub', 12, '*') result FROM DUAL UNION --**oracleClub SELECT LPAD('oracleClub', 17, '#') result FROM DUAL UNION --#######oracleClub RPAD - LPAD(char, n, [char2]) 함수는 char 문자열의 길이와 n을 비교해 남은 수만큼 오른쪽에 char2를 채워주는 함수이다. - n은 채워넣을 문자를 포함한 총 문자열의 길이이다. SELECT RPAD('ora.. 2019. 2. 15.
반응형
TOP