목록Language (41)
eunzae's develog
FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY
NVL(표현식1, 표현식2) #ORACLE ISNULL(표현식1, 표현식2) #SQL SERVER 표현식1의 결과값이 NULL이면 표현식2의 값을 출력한다. 단, 표현식1과 표현식2의 데이터 타입이 같아야 한다. NULLIF(표현식1, 표현식2) 표현식1이 표현식2와 같으면 NULL을, 같지 않으면 표현식1을 리턴한다. COALESCE(표현식1, 표현식2, ...) 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다.

DML(Data Manuplation Language): 데이터 조작어 - SELECT: 조회 - INSERT, UPDATE, DELETE: 데이터에 변형(데이터 삭제, 수정, 삽입) * 절차적 데이터 조작어 vs 비절차적 데이터 조작어 - 절차적 데이터 조작어: 사용자가 어떤(what) 데이터를 원하고 해당 데이터를 얻기 위해서는 어떻게(how) 처리해야 하는지를 설명한다. - 비절자적 데이터 조작어: 사용자가 어떤(what) 데이터를 원하는지만 설명한다. 즉, 해당 데이터를 얻으려면 어떻게(how) 처리해야 하는지는 DBMS에 맡긴다. * 호스트 프로그램 속에 삽입되어 사용되는 DML 명령어들은 데이터 부속어(Data Sub Language)라고 한다. DDL(Data Definition Langua..
쿼리튜닝 - select: 인덱스* * 인덱스: 데이터에 빠르게 접근하기 위한 색인작업 - update, delete: 인덱스, 락* * 락: A → 100 (처리시간 10초), A -> 200 (처리시간 1초) 순서대로 진행하므로 기존에는 1초 걸리던 요청이 11초가 걸림 - insert: 인덱스, DB스팩(네트워크) select는 인덱스가 많으면 빨라지지만, insert는 인덱스가 많으면 더 느려짐 >> 상황에 따라 선택 ↓ 설계 변경: 집계테이블, M view ↓ 엔진튜닝: 파라미터 조정 ↓ 기획변경
-- 수정일: 2021.04.03. / 수정자: 신은재 , cast( case when 생일 is null or 기준일 is null or 생일 > 기준일 then null else case when date_part('day', 기준일 - add_months(생일, trunc(months_between(기준일, 생일)))) < 0 then (extract(year from 기준일) - extract(year from 생일)) - 1 else extract(year from 기준일) - extract(year from 생일) end end as NUMERIC(4,1) ) as 만나이컬럼명 -- 만나이 만나이계산 쿼리입니다. 문제 시 의견주세요. ㅎㅎ

TCL: 트랜잭션 제어어 - COMMIT: 올바르게 반영된 데이터를 데이터베이스에 반영시키는 것 - ROLLBACK: 트랜잭션 시작 이전의 상태로 되돌리는 것 - SAVEPOINT: 저장점 해당 테이블에 데이터의 변경을 발생시키는 입력(INSERT), 수정(UPDATE), 삭제(DELETE) 수행시 그 변경되는 데이터의 무결성을 보장하는 것이 커밋(COMMIT)과 롤백(ROLLBACK)의 목적이다. Oracle의 트랜잭션은 트랜잭션의 대상이 되는 SQL 문장을 실행하면 자동으로 시작되고, COMMIT 또는 ROLLBACK을 실행한 시점에서 종료된다. 단, 다음의 경우에는 COMMIT과 ROLLBACK을 실행하지 않아도 자동으로 트랜잭션이 종료된다. - CREATE, ALTER, DROP, RENAME, ..

트랜잭션의 격리성은, 일관성과 마찬가지로 Lock을 강하게 오래 유지할수록 강화되고, Lock을 최소화할수록 약화된다. 낮은 단계의 격리성 수준에서 발생하는 현상 serializable transection1 → insert transection2 → insert 두 트랜잭션 동시에 수행 시 !err: Deadlock Read uncommitted transection1 → insert (Commit 하지 않은 상태) transectrion2 → read(데이터 읽음) Commit 되지 않은 데이터를 읽음 → 만약 Rollback 시 존재하지 않은 데이터를 읽은 것 Dirty read Read committed(주로 사용) transection1 → update (Commit 하지 않은 상태) trans..

A(Atomicity): 원자성 - SQL문 전체를 실행하거나 그 문의 어떤 부분도 실행하지 않거나 C(Consistency): 일관성 - 트랜잭션 이전과 이후, 데이터베이스의 상태는 이전과 같이 유효 I(Isolation): 독립성 - 모든 트랜잭션은 다른 트랜잭션으로부터 독립 D(Durability): 지속성 - 영원히 반영된, 트랜잭션에 대한 로그가 남아야하는 성질 Reference https://dataonair.or.kr/db-tech-reference/d-guide/sql/?pageid=2&mod=document&keyword=%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98&uid=340
CASE WHEN REGEXP_REPLACE( 컬럼명, '(^[[:space:]]*|[[:space:]]*$)', '', '' ) = '' THEN NULL ELSE REGEXP_REPLACE( 컬럼명, '(^[[:space:]]*|[[:space:]]*$)', '', '' ) END as 컬럼명_NEW
case when 절 이용한 데이터 정제 CASE WHEN 컬럼명 IS NULL THEN NULL WHEN 컬럼명 LIKE '%0%' THEN 'None' WHEN 컬럼명 LIKE '%1%' THEN 'Grade1' WHEN 컬럼명 LIKE '%2%' THEN 'Grade2' WHEN 컬럼명 LIKE '%3%' THEN 'Grade3' WHEN 컬럼명 LIKE '%4%' THEN 'Grade4' ELSE 'None' END as 컬럼명_NEW