<트랜잭션>
-하나의 단위(목적)으로 수행되길 바라는 쿼리의 묶음(업무 수행단위, 논리적 수행단위)
-두개 이상의 쿼리 문장으로 이루어진 명령어
<트랜잭션 처리>
-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 |