<트랜잭션>


-하나의 단위(목적)으로 수행되길 바라는 쿼리의 묶음(업무 수행단위, 논리적 수행단위)
-두개 이상의 쿼리 문장으로 이루어진 명령어

<트랜잭션 처리>


-ACID를 유지하는 것 (automaticity_원자성, consistency_일관성, isolation_독립성, durability_지속성)

DB작업 중 트랜잭션이 걸릴 경우 DB를 사용하는 다른 사용자에 의해 LOCK이 걸린 상태이다
함께 작업하는 작업자에게 COMMIT이나 ROLLBACK을 요청해야한다



<DB 연산자>

 

 

산술 연산자
+, -, *, /
|| 문자열 더하기

 


비교 연산자
=, !=, ^=, <>, >, <, >=, <=, IS NULL, IS NOT NULL
!=, ^=, <>  용도가 같음
IS NULL, IS NOT NULL    사용예) select * from 테이블명 where is null

 


관계 연산자
NOT, AND, OR, BETWEEN, IN


BETWEEN 
select * form 테이블명 where 속성명 between 0 and 2;  
0~2까지를 조회
IN 
select * form 테이블명 where 속성명 in (0,2,7);  
0,2,7인 hit을 조회
NOT
select * form 테이블명 where 속성명 not in (0,2,7); 
0,2,7을 제외한 hit을 조회

 


패턴 연산자
LIKE, %, _
select * from 테이블명 where 속성명 like '박%';  
-박으로 시작하는 문자열을 찾음
select * from 테이블명 where 속성명 not like '박%';
-박으로 시작하지 않는 모든 문자열
'%박%'
-박이란 문자가 포함된 문자열을 찾음
'박_';
-박이란 문자로 시작하는 두글자 문자열을 찾음
'_박__';
- 박을 포함해 앞으로 한글자 뒤로 두글자인 문자열 찾음



정규식을 이용한 패턴 검색


참고사이트
https://regexlib.com/CheatSheet.aspx


^\D\w*@\D\w*.(org|net|com)$ -이메일 검색 정규식
^01[016-9]-\d{3,4}-\d{4}$ -핸드폰 번호 검색 정규식

사용 법)
select * from 테이블명 where regexp_like(속성명, '01[016-9]-\d{3,4}-\d{4}');

정규식 시작을 뜻하는 ^과 끝 $을 제외하면 해당 패턴이 문자열 일부에 속해 있더라도 찾을 수 있다 



행을 제한하기 (페이징)_(ROWNUM)
select * from 테이블명 where rownum between 1 and 5;
rownum은 기존 테이블에 속해있는 속성이 아니고 결과집합을 만들어낼 때 임시로 생성되므로 between 2 ~ 이상으론 출력할 수 없다.
페이징을 위해서는 먼저 테이블에 rownum을 생성해준 것처럼 쿼리로 결과집합을 만들어준 상태에서
조건비교를 시켜야 한다.
사용 법)
select * from (select rownum 별칭, 테이블명.* from 테이블명) where 별칭 between 6 and 10; 


중복 값 제거(DISTINCT)
select distinct 속성명 from member;

'Development > DB' 카테고리의 다른 글

Oracle DB #5  (0) 2022.08.09
Oracle DB #4  (0) 2022.08.09
MongoDb Cloud / python  (0) 2022.08.07
Oracle DB #2  (0) 2022.08.07
Oracle DB #1  (0) 2022.08.05

+ Recent posts