본문 바로가기

정보관리(데이터베이스, DB)106

PostgreSQL 기초 날짜및 시간관련 출처: https://blog.naver.com/dev4unet/220602540023 SQL 문은 돌아서면 잊어버리다 보니 가끔씩 사용하는 내용 중 나중에 참고할 만한 내용들을 따로 정리해 놓습니다.나중에 시간이 되면 수정하거나 가끔씩 정리할 예정지만 제 분야가 아니라 문의는 사절이 예용~~*^^*  1. 들어가며..postgreSQL의 경우 몰라서 못 쓸 정도로 날짜 및 시간 관련한 기능들이 상당히 많습니다.^^;;;전부 다루는 건 무의미하며 저도 잘 모르기 때문에 제가 최근에 사용한 함수들을 먼저 정리하고나중에 다른 기능을 사용하게 되면 그때그때 별도로 올리거나 이 글을 수정하거나 하겠습니다.최근에는 제가 통계 등 SQL 작업을 할 일이 거의 없어서 날짜 등의 기능을 거의 사용하지 않습니다^^;; .. 2024. 9. 18.
[Oracle] TRUNCATE, DELETE, DROP 차이, 테이블 데이터 삭제 1. 테이블 구조는 남기고 데이터 전체 삭제  - DDL  - 트랜잭션 로그에 한번만 기록되므로 성능이 DELETE보다 좋음  - ROLLBACK 불가능  - 테이블 용량이 초기화됨TRUNCATE  TABLE  [테이블명]; 2. 테이블 존재 자체를 삭제  - DDL  - 테이블 정의, 테이블에 대한 데이터, 인덱스, 트리거, 제약조건 및 권한 모두 제거DROP  TABLE  [테이블명]; 3. 조건절 이용해서 특정 행만 삭제  - DML  - 테이블 용량 감소 X  - 행 잠금(LOCK)을 사용하여 실행됨  - 삭제된 각 행에 대해 트랜잭션 로그를 기록하므로 TRUNCATE 보다 느림  - 인덱싱 된 VIEW 와 함께 사용가능  - ROLLBACK 가능DELETE  TABLE  [테이블명]WHERE  .. 2024. 9. 4.
서브쿼리 Push에 대해 알아보자 서브쿼리 Push에 대해 알아보자먼저 여기서 나오는 Push는 인라인 뷰 안에 조건절을 밀어넣는 조건절 Pushing이 아니므로 헷갈리지 말자.앞서 정리한것 처럼 서브쿼리 Unnesting 되지않은 서브쿼리는 항상 필터방식으로 진행되며 대개 실행계획상 맨 마지막에 처리된다.하지만 서브쿼리의 필터 단계에서 많은 데이터를 거를수 있다면 서브쿼리를 먼저 실행하는것이 이득일 것이다.이를 보완하는 힌트가 Push_Subq이며 No_Unnesting된 서브쿼리를 먼저 실행시킨다.원리가 그렇듯 Push_Subq는 항상 Unnesting 되지않은 서브쿼리에만 실행되므로 주의하자.예제먼저 Push_Subq를 하지않은 쿼리이다.힌트로는 no_push_subq를 사용한다. 실행 계획을보니 메인쿼리부터 순서대로 진행되며 마지.. 2024. 9. 3.
보고서 sql 문 직원 이름은 a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z 이다. 부서 이름은 T-A, T-B,T-C 이다. 부서 팀은 가, 나, 다로 나뉜다. 직책 분류는 LV1, LV2, L3, L4, L5로 나뉜다. T-A 부서의 직원은 a,b,c,d,e,f,g 이다. T-A 부서의 YK팀은 a WK팀은 b,c,d SK팀은 e,f,g이다. T-B 부서의 직원은 h,i,j,k,l,m,n,o,p,q,r 이다. T-B 부서의 YK팀은은 h,i,j WK팀은 k,l,m,n SK팀은 o,p,q,r이다. T-C 부서의 직원은 s,t,u,v,w,x,y,z 이다. T-C 부서의 YK팀은 s,t WK팀은 u,v,w SK팀은x,y,z이다. LV1은 a,b,c,d,e,f를 포함한다. LV2.. 2024. 8. 18.
간단하게 컬럼 순서 변경하기(VISIBLE 사용X) 출처: https://zluoy.tistory.com/entry/ORACLE-%EA%B0%84%EB%8B%A8%ED%95%98%EA%B2%8C-%EC%BB%AC%EB%9F%BC-%EC%88%9C%EC%84%9C-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0VISIBLE-%EC%82%AC%EC%9A%A9X컬럼을 나중에 추가하다보니, 컬럼 순서가 마음에 들지 않게 되는 현상이 발생했다. 그럴 때를 위해 준비했다. 컬럼 순서 마음대로 변경하기.( VISIBLE을 사용하려하니 되지 않았다. )  아래의 순서대로 DDL을 실행하게 되면, 금방 처리가 된다.  1. 테이블을 만든다.2. 기존 테이블을 지운다.3. 테이블 명을 바꾼다. CREATE TABLE TABLE_NAME AS ( SELEC.. 2024. 8. 18.