본문 바로가기

DataBase/Oracle58

DML) UPDATE 구문 안녕하세요, 코린이의 코딩 학습기 채니 입니다. 개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다. UPDATE - 특정 행을 찾아 해당 컬럼 값을 변경하는 명령 - where 절에서 특정 행에 대한 조건을 제시 (where절 생략 시 모든 행에 대해 처리) UPDATE문 사용법 update[변경할 테이블명] set[변경할 열1]=[데이터], [변경할 열2]=[데이터], .... [where 조건]; 기존 '함지민' 데이터 '함지민' 데이터의 dept_code, job_code 변경 update employee_ex2 set dept_code = 'D3', job_code = 'J3' where emp_id = '301'; -- 특정 행을 한정할 때 식별자 컬럼을 자주 사용 하지만 sql.. 2022. 4. 26.
DML) INSERT 구문 (subquery 이용, insert all 이용) 안녕하세요, 코린이의 코딩 학습기 채니 입니다. 개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다. DML (Data Manipulation Language 데이터 조작어) - 테이블 객체의 데이터에 대해서 생성/조회/수정/삭제 (CRUD) 하는 명령어 insert (Create) select (Read) update (Update) delete (Delete) - DML 명령어 수행 시 메모리에서 우선 작업하므로 TCL (Transaction Control Language)를 통해 실제 DB에 반영(commit), 작업 취소(rollback)하는 과정이 필요 INSERT - 테이블에 새로운 레코드를 추가하는 명령어 - 명령 성공 시마다 테이블에 행이 하나 씩 추가 - 추가할 레코드에 컬.. 2022. 4. 25.
WINDOW FUNCTION) 순위관련처리(rank, dense_rank, row_number), 집계관련처리(sum, avg, listagg...) 안녕하세요, 코린이의 코딩 학습기 채니 입니다. 개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다. WINDOW FUNCTION - 행과 행 간의 관계를 쉽게 정의하기 위한 함수 - select절에서만 사용 가능 window_function(args) over ([partition by절] [order by절][windowing절]) - args : 윈도우 함수에 전달하는 인자 (0 ~ n) - over절 : 행 그룹 지정, 그룹 당 결과 출력 - partition by : 윈도우 함수의 group by - order by : 행 순서 지정 - windowing : 대상 행 지정 순위관련처리 ☞ rank, dense_rank, row_number - rank → order by 중복된 값.. 2022. 4. 22.
고급쿼리) TOP-N 분석 (rownum) 안녕하세요, 코린이의 코딩 학습기 채니 입니다. 개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다. 고급쿼리 TOP-N 분석 - 실제 컬럼/가상 컬럼에 대해서 정렬 후 top 또는 bottom에서 n개의 레코드를 추려낸 쿼리 ☞ rownum - 테이블 레코드에 대해서 부여하는 식별번호 - 오라클에서 insert 시에 자동으로 부여 ① where 절을 통해 결과집합이 변경된 경우, rownum 새로 부여 ② inline-view를 통해 조회된 경우, rownum 새로 부여 select rownum, e.* from employee e; rownum에서 부여해준 순서와 행 번호가 동일한 것을 확인할 수 있습니다. 그렇다면 조회된 순서에 따라서 값이 부여되는 건지 생각 들 수도 있지만, 그렇지.. 2022. 4. 22.
SUB-QUERY) 스칼라 서브쿼리, inline-view 안녕하세요, 코린이의 코딩 학습기 채니 입니다. 개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다. 스칼라 서브쿼리 - scala 값 (단일 값) - select절에 사용된 1행 1열 상관서브쿼리 사원명, 부서명, 관리자명 조회 select emp_name, (select dept_title from department where dept_id = e.dept_code) dept_title, (select emp_name from employee where emp_id = e.manager_id) manager_name from employee e; INLINE-VIEW - from절에 사용된 서브쿼리 - inline view에 정의되지 않은 컬럼은 메인 쿼리에서 사용할 수 없음 - in.. 2022. 4. 22.
SUB-QUERY) 상호연관 서브쿼리 (exists, not exists) 안녕하세요, 코린이의 코딩 학습기 채니 입니다. 개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다. 상호연관 서브쿼리 - 상관 서브쿼리 - 메인쿼리의 값을 전달 받아 서브쿼리를 수행 후 결과 값을 메인쿼리에 반환하는 쿼리 - 일반 서브쿼리는 블럭 잡아서 단독으로 실행 가능한 반면, 상관 서브쿼리는 그렇지 않음 - 메인 쿼리의 매 행마다 다른 값을 서브쿼리에 전달 직급별 평균급여보다 많은 급여를 받는 사원 조회 [조인 버전] select e.emp_name, e.job_code, e.salary, s.avg_sal from employee e left join ( select job_code, trunc(avg(salary)) avg_sal from employee group by job_.. 2022. 4. 21.