개발자였던 것/데이터베이스

개발자였던 것/데이터베이스

[Oracle] NVL, NVL2, NULLIF

NVL과 NVL2 데이터 처리를 할 때 NULL 처리는 중요하며 오라클(oracle)에서는 이런 NULL 데이터 처리를 간편하게 하기 위해 NLV 함수를 제공한다. 오라클 외 다른 데이터베이스에서는 nvl 사용이 불가능하다. NVL 함수 NVL( 대상 , null인 경우 값 ) NULL 값을 다른 값으로 바꿀 때 사용하며, 모든 데이터 타입에 적용이 가능하다. 1 2 3 4 5 6 7 8 9 10 -- 매니저가 없는 값을 0으로 바꾸어서 출력하는 예제. SELECT empno, NVL(mgr, 0) mgr FROM emp WHERE deptno = 10; EMPNO MGR ------- ------- 7782 7839 7839 0 7934 7782 cs NVL2 함수 NVL2라는 함수는 NVL함수의 DE..

개발자였던 것/데이터베이스

[Oracle] REPLACE

오라클에서 특정 문자열을 치환하거나 제거하기 위해서는 replace() 함수를 사용한다. 단순 문자열 치환 외에도 엔터값 제거나 태그를 엔터값 치환에도 많이 사용된다. replace(컬럼명, '찾을문자', '변환문자') 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 -- 간단한 REPLACE 예이다. SELECT REPLACE('oracleclub','oracle','db') name FROM DUAL; NAME ------ dbclub -- 대소문자를 구분한다는 것을 알수 있다. SELECT REPLACE('OracleClub','oracle','DB') name FROM DUAL UNION ALL SELECT REPLACE('OracleClub','Oracle','DB')..

개발자였던 것/데이터베이스

[Oracle] LPAD와 RPAD

요구사항으로 자릿수를 일정하게 맞춰달라는 요구가 있다. 이럴 때오라클에서 유용하게 사용할 수 있는 함수는 LPAD, RPAD 함수이다. LPAD, RPAD함수는 n자리만큼 왼쪽, 오른쪽 부터 채워서 반환하는 문자열 함수이다. LPAD, RPAD 본래 용도는 문자열 삽입을 주 용도로 사용하지만, 자릿수를 일정하게 맞추는 용도로도 사용할 수 있다. LPAD, RPAD LPAD(char1, n [,char2]) RPAD(char1, n [,char2]) LPAD : 왼쪽에 문자열을 끼어 놓는 역할을 한다. RPAD : 오른쪽에 문자열을 끼어 놓는 역할을 한다. n은 반환되는 문자열의 전체 길이를 나타내며, char1의 문자열이 n보다 클 경우 char1을 n개 문자열만큼 반환한다. 1 2 3 4 5 6 7 8..

개발자였던 것/데이터베이스

[Oracle] subSTR와 subSTRB

오라클에서 SUBSTR 함수는 문자열을 자를 때 사용하는 기본 함수이다. 문자 단위로 자를때는자를 때는 SUBSTR 함수를 사용하고, 바이트 단위로 자를 때는 SUBSTRB 함수를 사용하면 된다. SUBSTR(char, m ,[n]), SUBSTRB(char, m ,[n]) SUBSTR 함수는 m 번째 자리부터 길이가 n개인 문자열을 반환 한다. m이 음수일 경우에는 뒤에서 m 번째 문자부터 n개의 문자를 반환한다. SUBSTRB 함수에서 B는 Byte단위로 처리하겠다는 의미이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 -- 세번째 이후 문자열 반환. SELECT SUBSTR('oracleclub', 3) name FROM D..

개발자였던 것/데이터베이스

[Oracle] CASE와 DECODE문

CASE문 자바의 조건문과도 같은 기능을 하는 SQL의 조건문이다. CASE문은 WHEN... THEN쌍을 검색한다. 조회해 올 때의 조건은 WHERE 문으로 조건을 걸어 가져올 수 있다. 하지만 가져온 값에 어떤 조건을 걸어 보여주거나 또는 값을 변환할 필요가 있을 경우는 CASE... WHEN... THEN문을 쓴다. CASE WHEN [조건문] THEN [조건이 맞으면 반환할 값] ELSE [조건이 맞지않으면 반환할 값] END 1 2 3 4 5 6 7 8 UPDATE 테이블명 SET 값이 대입될 칼럼명 = CASE WHEN 비교칼럼1 = 비교값1 THEN 대입될 값1 WHEN 비교칼럼2 = 비교값2 THEN 대입될 값2 ELSE 값3 END; cs ELSE 문 같은 경우 선택사항이지만 혹시 모든 ..

개발자였던 것/데이터베이스

신입 기술 면접 예상 질문 & 코딩 테스트

서브 쿼리 하나의 SQL문 안에 포함되어 있는 또 다른 SQL. 서브 쿼리는 알려지지 ㅇ낳은 기준을 이용한 검색을 위해 사용한다. 서브 쿼리는 메인쿼리가 서브쿼리를 포함하는 종속적인 관계이다. 서브쿼리 사용 시 주의사항 서브 쿼리를 괄호로 감싸서 사용한다. 서브 쿼리는 단일 행(Single Row) 또는 복수 행(Multiple Row) 비교 연산자와 함께 사용 가능하다. 단일 행 비교 연산자는 서브 쿼리의 결과가 반드시 1건 이하이어야 하고 복수 행 비교 연산자는 서브쿼리의 결과 건수와 상관없다. 서브 쿼리에서는 ORDER BY를 사용하지 못한다. ORDER BY절은 SELECT절에서 오직 한 개만 올 수 있기 때문에 ORDER BY절은 메인쿼리의 마지막 문장에 위치해야 한다. 1. 단일행 서브쿼리 서..

개발자였던 것/데이터베이스

SQL developer ORA-01045 오류

ORA-01045 유저명 CREATE SESSION privilege; logon denied 해당 에러는 user가 새로 생성되거나 권한이 없을때 발생하는 에러입니다. 다시 말해 새로 생성한 유저가 접근할 권한이 없을때 발생하는 에러인데요. 권한 부여 방법 1. 윈도+R 누른 후 cmd 입력 혹은 시작-> 보조 프로그램-> 명령 프롬프트 2. sqlplus 입력 후 엔터 3. /as sysdba 입력 후 엔터 4. grant connect, resource to 계정명; 입력 후 엔터

개발자였던 것/데이터베이스

SQL developer 계정 생성/권한부여/수정/삭제

오라클의 경우 무턱대고 새로 만든 계정으로 접속을 하게 되면 invalid username/password; logon denied라는 메시지가 뜨게 됩니다. 이러한 에러 메시지의 원인은 존재하는 계정이 없어서 생기는 오류이므로 cmd창을 통해 계정을 생성시켜야 합니다. 계정 생성 방법 1. 윈도+R 누른 후 cmd 입력 혹은 시작-> 보조 프로그램-> 명령 프롬프트 2. sqlplus 입력 후 엔터 3. /as sysdba 입력 후 엔터 4. create user 계정명 identified by 비밀번호; 입력 후 엔터 계정 권한 부여 방법 grant connect, dba, resource to 계정명; 계정 수정 방법 alter user 계정명 identified by 패스워드; 계정 삭제 방법 d..

서으이
'개발자였던 것/데이터베이스' 카테고리의 글 목록