oracle 5

[SQL튜닝] Ch01. SQL 처리 과정과 I/O

SQL 파싱과 최적화SQL 특징 ⭕ 암기 구조적 집합적 선언적 select * from s_emp cf. 람다 스트림 - 명령적 for( s_emp) print 선언과 명령의 차이 선언적 : 어떤 데이터를 가져올지만 명시 명령적: 어떤 데이터(what)를 어떻게(how) 가져올지 명시 SQL 최적화 ⭕ 암기SQL을 실행하기 전에 진행됨 SQL 파싱 SQL 파싱 트리 생성 SQL 최적화 통계 정보 바탕으로 가장 효율적인 방법 선택 로우소스 생성 실행 경로를 실행 가능한 코드 or 프로시저로 변환 최적화 종류 Rule Base 안씀 Cost Base 통계기반 실행 계획통계 정보로..

Database 2025.05.18

[Database] Ch09. Transaction Control

트랜잭션 TransactionSQL을 여러개 묶어 놓은 것함께 수행되어야 하는 논리적인 업무의 작업 단위ex. 계좌 이체 ( 출금 sql, 입금 sql 로 구성)특징all or nothing트랜잭션 내의 모든 sql문이 성공해야 commit이 되고 그렇지 않으면 트랜잭션의 맨처음 sql 문으로 이동트랜잭션에 많은 sql문이 있는 경우 (작업 단위가 큰 경우) saverpoint를 두고, savepoint 까지만 rollboack(취소)할 수 있음.라이프 사이클 과정트랜잭션 시작DDL, DCL 문이 실행되면 begin transaction 없이도 암묵적으로 트랜잭션 시작트랜잭션 종료 commit, rollbackcommit, rollback 호출해야 트랜잭션이 종료. 리소스 해제됨.DDL, DML 차이 :..

Database 2025.05.06

[Database] Ch2.테이블 생성 및 데이터 조작(DML) Ch3.데이터검색 Ch4. Stored Function

데이터 타입VARCHAR 가변 문자열 cf.VARCHAR2 는 안씀CHAR 고정 문자열. 1~ 2자리NUMBER 부동 소수점 38자리까지 NUMBER(p,s)전체 자리수 (점 미포함) p 자리실수부 개수 s정수부 최대 자릿수 = p – s전체 7자리, 정수는 7 - 2 = 5자리까지만 가능. 2는 소수자리 개수. 정수만 7자리 전체 쓸 수 없음.ex. NUMBER(7,2)음수 저장 가능DATE 날짜.시간 : 연속적, 정수DB 저장 시 정수형태로 저장됨. 사람이 읽을 떄만 쪼개서 사용함.LONG 큰 TextRAW LONGRAW 큰 Binary SQL 명령어 종류Data Retrieve 데이터 검색 조회SELECT ReadDML은 Write만 가능한 것Data Manipulation Language DDL ..

Database 2025.05.04

[Database] Ch06.JOIN - 문제 풀이

현재 SELF JOIN까지 풀었습니다. 틀린 답이 있을 수도 있습니다.tabase[Database] Ch05.SubGroup으로 데이터 분류 - 문제 풀이6.4 EQUIJOIN 예 - 예제 91. 직원(S_EMP) 테이블과 부서(S_DEPT)테이블을 JOIN하여, 사원의 이름과 부서, 부서명을 나타내시오.select e.name, e.dept_id, d.namefrom s_emp e, s_dept d where e.dept_id = d.id; 6.5 칼럼과 테이블의 ALIAS사용 - 예제 101. 서울 지역에 근무하는 사원에 대해 각 사원의 이름과 근무하는 부서명을 나타내시오. select distinct e.name, d.name from s_dept d, s_region r, s_emp ewhere..

Database 2025.04.30

[Database] Ch05.SubGroup으로 데이터 분류 - 문제 풀이

Intro직접 풀어봤으며, oracle sql developer 의 질의 결과와 직접 스프레드 시트에 값을 샘플링하여 비교했습니다. SQL 정석 문제입니다. 5.2 Group By절 - 예제 51. 각 부서(dept_id)별 평균 급여를 계산해서 보여주시오. select dept_id, avg(salary)from s_empgroup by dept_id;--order by dept_id;2. 각 부서(dept_id)별로 직책이 사원인 직원들의 평균 급여를 계산해서 보여주시오. select dept_id as "부서", avg(salary) as "평균 급여"from s_empwhere title = '사원'group by dept_id; 5.3 select 절에서의 group함수의 잘못된 사용1. 각 지..

Database 2025.04.30