REPLACE 함수 오라클에서 문자열의 일부 문자열을 다른 문자열로 치환하거나 제거할 때 REPLACE 함수를 사용할 수 있다. 사용법은 기본적으로 아래와 같다. REPLACE([대상 문자열], [변환 대상], [변환 문자열]) ※ 변환 문자열 생략시 변환 대상 제거 예시를 보는 게 가장 이해가 빠르다. 예시 SELECT REPLACE('apple is good, apple is cheap', 'apple', 'banana') AS "RESULT" FROM DUAL; 결과 : [그림 1]과 같이 'apple' 문자열이 'banana'로 치환된 것을 확인할 수 있다. SELECT REPLACE('apple is good, apple is cheap', 'apple') AS "RESULT" FROM DUAL..
오라클 문자열 자르기 (SUBSTR) 오라클은 문자여을 자를 때 SUBSTR 함수를 사용한다. 기본 사용법은 아래와 같다. SUBSTR([문자열], [시작위치], [길이-생략가능]) 예시를 보는 게 가장 이해가 빠르다. 예시 SELECT SUBSTR('HELLO', 1, 2) FROM DUAL; 결과 : 오라클은 첫 시작 위치가 1로 시작한다. 자바나 C언어 등은 배열의 첫 시작이 0이라서 헷갈릴 수도 있다. 따라서 SUBSTR('HELLO' , 1, 2)는 첫 번째 글자부터 두 글자를 자르겠다는 뜻이다. SELECT SUBSTR('HELLO', 3) FROM DUAL; 위와 같이 길이를 지정하지 않으면 어떻게 될까? 길이를 지정하지 않으면 시작위치에서 끝까지 문자열을 자른다. 위와 같은 경우 3번째 글..
오라클 문자열 길이 구하기 오라클에서 문자열 길이를 구할 때는 LENGTH 함수를 이용하면 된다. 다만, 문자열의 바이트 수를 구하고 싶을 때는 LENGTHB 함수를 이용하면 된다. 예를 들어 LENGTH('안녕하세요')는 문자열의 길이인 5를 반환하지만, LENGTHB('안녕하세요')는 문자열의 바이트인 15를 반환한다. LENGTH 함수 LENGTH 함수는 문자열의 길이를 반환한다. 따라서 영어든 한글이든 똑같은 길이는 똑같은 값을 반환한다. LENGTHB 함수 LENGTHB 함수는 문자열의 바이트 수를 반환한다. 이때 영어/숫자/특수문자 등은 보통 한 글자당 1byte를 차지하지만, 한글은 2byte 혹은 3byte를 차지한다(시스템 설정에 따라 다름) [그림 3]을 보면 '안녕하세요' 와 'HEL..
연산자 종류 오라클에는 산술, 연결, 논리, 비교연산자 등이 존재하여 다양한 연산을 할 수 있다. 각각에 대해 알아보자. 산술연산자 유형 설명 () 연산자 우선순위 변경 + 더하기 - 빼기 * 곱하기 / 나누기 산술 연산자는 말 그대로 사칙연산을 포함한 산술을 할 수 있는 연산자이다. 주로 NUMBER / DATE 자료형에 적용한다. VARCHAR2 자료형에 숫자가 입력되어 있는 경우도 적용 가능하다. 예시 -- 결과 : 500 SELECT 100*10/2 FROM DUAL -- 직원 평균연령 구하기 SELECT AGE/COUNT(*) FROM EMPLOYEE; 연결 연산자 유형 설명 || 문자와 문자를 연결 CONCAT 문자와 문자를 연결 연결 연산자는 문자와 문자를 연결할 때 사용한다. '||'와 C..
테이블 수정 하는 법 오라클 데이터베이스에서 테이블을 수정하려면 ALTER TABLE 명령어를 사용하면 된다. ALTER TABLE 뒤에 다양한 명령어를 통해 테이블에 컬럼을 추가/변경/삭제할 수 있다. 하나씩 알아보자. 테이블 컬럼 추가(ADD) ALTER TABLE [테이블명] ADD [컬럼명] [데이터 타입]; 위와 같이 ADD 명령어를 통해 테이블에 컬럼을 추가할 수 있다. ex) ALTER TABLE emp ADD empno VARCHAR2(5); 예를 들어 emp 테이블에 empno 라는 컬럼을 추가할 수 있다. 테이블 컬럼 수정(MODIFY) ALTER TABLE [테이블명] MODIFY [컬럼명] [데이터타입]; 위와 같이 MODIFY 명령어를 통해 테이블 컬럼을 수정할 수 있다. ALTE..
DROP TABLE 사용법 오라클 데이터베이스에서 테이블을 삭제하려면 아래와 같이 DROP TABLE 명령을 사용하면 된다. DROP TABLE [테이블명]; DROP TABLE 명령어는 행 레코드나 빈 테이블을 남겨두지 않고 테이블 자체를 지워버린다. 즉, 정말 말 그대로 테이블 자체를 삭제해 버리는 명령어이다. 예를 들어 EMPLOYEE라는 테이블을 삭제한다고 하자. DROP TABLE EMPLOYEE; 위와 같이 명령을 실행하여 EMPLOYEE 테이블을 삭제할 수 있다. 제약조건 걸린 테이블 삭제 제약조건이 걸려 있는 테이블은 CASCADE CONTRAINTS 옵션을 넣어줘야만 삭제된다. 즉 아래와 같이 사용해야 한다. DROP TABLE [테이블명] CASCADE CONSTRAINTS; 다른 테이..
오라클 테이블 생성하는 방법 오라클에서 테이블을 생성하기 위해서는 CREATE TABLE 명령어를 사용하면 된다. CREATE TABLE [1.테이블명] ( [2.컬럼명] [3.데이터 타입] [4.기본 값(생략가능)] [5.NULL(생략가능)] ); CREATE TABLE의 기본 사용법은 위와 같다. 테이블명 : 사용할 테이블 명을 입력 테이블명은 문자(영문, 한글), 숫자, 특수문자(_, #, $)만 가능하다. 반드시 문자로 시작해야 한다. 컬럼명 : 사용할 컬럼명을 입력 컬럼명은 문자(영문, 한글), 숫자, 특수문자(_, #, $)만 가능하다. 반드시 문자로 시작해야 한다. 데이터 타입 : 컬럼의 데이터 타입을 입력 오라클에서 지원하는 데이터 타입은 다음 글을 참고 [Oracle] 오라클 데이터 타입..
데이터 타입(Data Type)이란? 데이터베이스는 다양한 종류의 데이터를 저장하고 관리한다. 따라서 이 데이터를 어떤 형식 혹은 형태로 저장할지 결정해야 한다. 이처럼 데이터베이스에서 데이터 타입이란 데이터가 저장되는 형식 혹은 형태를 뜻한다. 오라클에서의 데이터 타입도 마찬가지로 데이터가 저장되는 형식 혹은 형태를 의미한다. 오라클에서는 문자형, 날짜, 숫자 등 다양한 기본 데이터 타입을 지원한다. 사용자는 이러한 기본 데이터 타입을 혼합하여 사용자 정의 데이터 타입을 만들 수도 있다. 오라클에서 지원하는 기본 데이터 타입(Oracle Built-in Data Types)은 다음과 같다. 문자 데이터 타입(Character Data Types) 문자 데이터 타입은 문자(character) 혹은 자유 ..
DataSource에 대한 이해 DataSource는 커넥션을 획득하는 방법을 추상화하는 인터페이스이다. 이 인터페이스의 핵심 기능은 커넥션 조회이다. 특히 자바에서는 javax.sql.DataSource라는 인터페이스를 제공해준다. 만약 사용자가 DriverManager를 통해 커넥션을 획득하다가 나중에 HikariCP 커넥션 풀을 이용하려고 하면 커넥션을 획득하는 애플리케이션 코드를 모두 변경해야 한다. 하지만 이 커넥션을 획득하는 방법을 추상화해놓은 DataSource 인터페이스를 이용한다면 해당 인터페이스의 구현체만 갈아 끼우면 된다. 따라서 애플리케이션 로직은 DataSource 인터페이스에만 의존하도록 하면, 사용자는 커넥션을 획득하는 방법을 바꾸더라도 애플리케이션 로직을 변경하지 않아도 된다..
Persistence Framework란? SQL Mapper와 ORM 기술에 대해 알아보기 전에 Persistence Framework에 대해 알아보자. 영속성(Persistence)은 프로그램이 종료되어도 데이터가 사라지지 않는 특성을 뜻한다. [그림 1]에서 보이는 Persistence 계층이 Domain Model 계층에 영속성을 부여하는 역할을 한다. 자바에서는 JDBC를 통해 영속성을 부여할 수 있다. 하지만 JDBC는 중복된 코드를 반복적으로 사용하거나 Connection과 같은 공유 자원 관리가 까다로운 등 여러 가지 단점이 있다. 이러한 JDBC 프로그래밍의 복잡함이나 번거로운 작업 없이 간단한 작업만으로 Persistence 계층을 구현할 수 있는 Persistence Framework..