본문 바로가기

SQL23

oracle SQL - 날짜 함수 오라클 SQL은 데이터 유형이 date(날짜)인 데이터를 이용한 함수들이 존재한다. 1. MONTHS_BETWEEN(date1, date2) 두 날짜 사이의 달 수를 반환한다. MONTHS_BETWEEN()함수는 날짜 데이터 두 개를 받으면 숫자(숫자 타입)를 반환한다. 입사 날짜부터 현재 날짜까지 몇개월이 걸렸는지 나타낸다. 2. ADD_MONTHS(date, n) 2번째 인수 n달 만큼 더한 날짜를 반환한다. 3. NEXT_DAY(date, '요일') date 날짜로부터 오는 '요일'의 날짜를 반환한다. '요일' 자리에는 숫자 : 1은 일요일, 2는 월요일, ....7은 토요일이다. '금요일' '금' (약어) 가 올 수 있다. 2023년 3월 28일 기준 오는 일요일은 23년 4월 2일 4. LAST.. 2023. 3. 28.
백준 C++ - 스택, 괄호 (9012) https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 스택을 이용한 기본적인 알고리즘 문제이다. 접근 방법 1. '(' 열린 괄호가 들어오면 스택에 쌓는다. 2. ')' 닫힌 괄호가 들어오면 스택에 열린 괄호 하나를 빼낸다. 3. 마지막에 스택에 괄호가 남아 있거나 혹은 비어 있지만 빼내야 하는 경우 "NO" 출력 #include #pragma warning(disable:4996) char a[60], b[2][10].. 2023. 2. 9.
DB 엔진 - 도메인 char, varchar2 테이블을 만들면서 칼럼의 도메인을 char 또는 varchar2로 설정한 적이 있을 것이다. 개인이 sql을 공부한하던가, 저장공간 대비 DB 사용공간이 적다면 두 도메인을 사용하는 데 신경 쓰지 않아도 되지만, 물리적인 디스크 내부의 공간을 효율적으로 사용해야 한다면 두 도메인 선택에 신중해야 한다. CHAR create table test( test1 char(10) ) / insert into test values('t1') char도메인을 사용하는 칼럼은 insert시 사용자가 정한 크기만큼 고정적인 공간을 할당한다. 위 코드 test테이블의 test1 칼럼의 't1'은 2byte 밖에 공간을 사용하지 않지만 물리적인 디스크 공간에 10byte만큼 고정적으로 사용할 수 있기 때문에 할당된 크기 내.. 2022. 12. 28.
DB 엔진 - DB block header Segment의 첫 번째 Extent의 첫 번째 block은 Segment header block이다. header 구성 Block id block의 위치 주소 Transaction slot block 내부의 row에 마지막으로 실행됐던 트랜잭션에 대한 정보를 담는다. 디폴트로 5개를 유지한다. 1) Transaction id : Tr의 id 2) Commit scn : 마지막으로 commit 된 시간 도메인 3) UBA(Undo block Address) : undo data 주소 UBA는 undo segment의 header에 Transaction table에도 존재함. undo segment transaction table에 UBA의 주소로 가면 - update(DML), transaction id.. 2022. 12. 26.
DB 엔진 - 기동 순서, 복구, 백업 Oracle 기동 순서 1. shutdown - DB, Instance 모두 종료된 상태 2. nomount - system parameter file에 의해 메모리에 SGA, Background process 등 세팅한다. - DB 생성할 수 있는 단계 - Control file을 재생성할 수 있는 단계 3. mount - control file 정보에 의해 media recovery, DB 구조변경 DB 모드 변경할 수 있는 단계이다. - DB 모드는 Archive mode와 no Archive mode가 존재하는데 default로 no Archive mode로 되어있기 때문에 Archive file을 사용하려면 나중에 따로 모드를 변경해주어야 한다. ※Archive file은 복구에 필요한 중요한 .. 2022. 12. 23.
DB 엔진 - Execution server process가 파싱(Parshing)작업이 끝나면 본격적으로 쿼리문을 실행(execution)한다. 다음과 같은 Transaction 1 (Tr1)을 수행한다고 가정하고, row가 들어가있는 block id는 xxa로 가정 update y_emp set salary = salary * 1.1 where id = 10; 1. DML쿼리문(Tr1) 실행시 Table 단위로 RX Lock이 자동으로 걸림 Lock이란? 1) 트랜잭션의 순차적인 처리를 위해 사용되는 수단 (일관성을 위해 사용) 2) Lock에는 Table단위 lock과 Row 단위 lock이 존재 3) Table Lock은 아래로 내려갈수록 병행성은 낮아지고 일관성은 높아진다. ( Lock 강도가 표에서 내려갈수록 올라감) Tab.. 2022. 12. 22.