반응형

Database 5

[ORACLE/오라클] 계층형 쿼리를 이용한 트리구조 데이터 정렬하기

어떤 테이블에서 아래와 같이 컬럼으로 부모 자식 간의 관계가 정의되어 있지 않고, 한 컬럼에 부모 데이터, 자식 데이터가 다모두 존재하면서 이 컬럼에서 부모 데이터와 자식 데이터를 구분할 수 있는 패턴이 존재하는 경우, 계층형 쿼리를 이용해서 해당 데이터의 계층 구조를 컬럼으로 분산할 수 있다. 예를 들어 아래와 같은 데이터가 있다고 가정할 때, 코드 코드명 A 자동차 A0 세단 A01 K8 A1 SUV A11 쏘렌토 자동차라는 ROOT 데이터 아래 LEAF노드로 A0, A01, A1, A11로 나뉘는 걸 파악할 수 있다. 부모/자식 코드로 혼재되어 있는 데이터를 컬럼별로 나누는 작업을 진행한다. SELECT 코드 AS 코드 , 코드명 AS 코드명 , SUBSTR(코드,1,LENGTH(코드)-1) AS ..

[ORACLE/오라클] 딕셔너리 뷰를 이용해 테이블 명세서 작성

딕셔너리 뷰를 이용해서 특정 스키마에 있는 테이블들의 명세를 추출할 수 있다. ※ 테이블 정보 추출은 ALL_TABLES, ALL_TAB_COLS, ALL_TAB_COMMENTS, ALL_COL_COMMENTS 제약조건 추출은 ALL_CONSTRAINTS, ALL_CONS_COLUMNS을 이용한다. (제약조건은 PRIMARY KEY만 추출) /* SCOTT 스키마의 테이블 정보 조회 */ SELECT A.OWNER , A.TABLE_NAME , C.COMMENTS , B.COLUMN_NAME , D.COMMENTS , B.DATA_TYPE , B.DATA_LENGTH , B.DATA_PRECISION , B.DATA_SCALE , B.NULLABLE FROM ALL_TABLES A , ALL_TAB_CO..

[ORACLE/오라클] 딕셔너리 뷰를 이용해 SELECT문 만들기

기본제공되는 SCOTT 스키마로 SELECT 구문을 만들기 위해서 (SELECT ~ FROM ~) ALL_TAB_COLS, ALL_TAB_COMMENTS, ALL_COL_COMMENTS 를 이용한다. ※ DBA_* 로 시작하는 딕셔너리 뷰는 데이터베이스 내에 생성된 모든 스키마의 오브젝트를 조회할 수 있고, ALL_*로 시작되는 뷰는 현재 사용자의 조회 권한 범위 내의 스키마를 조회할 수 있으며, USER_*로 시작되는 뷰는 현재 접속한 사용자의 스키마 정보를 확인할 수 있다. /* SCOTT 스키마의 테이블 정보 조회 */ SELECT * FROM ALL_TAB_COLS WHERE 1=1 AND OWNER = 'SCOTT'; /* SCOTT 스키마의 테이블 정보 조회 */ SELECT * FROM AL..

[ORACLE/오라클] 날짜 테이블, 달력 테이블 만들기

CONNECT BY 구문을 이용해서 날짜 테이블을 만들 수 있다. 계층형 질의에서 쓰이는 구문이지만 조금 응용을 하면 원하는 범위의 날짜를 구할 수 있다. 아래의 예시를 보자. SELECT LEVEL FROM DUAL CONNECT BY LEVEL < 5; LEVEL ---------- 1 2 3 4 CONNECT BY를 조건절 처럼 걸었더니 4개의 행만이 나왔다. LEVEL 값이 차례대로 4까지 나온 것을 응용하여 금일 기준 +3 일까지 구할 수 있다. SELECT LEVEL , SYSDATE + (LEVEL -1) FROM DUAL CONNECT BY LEVEL < 5; LEVEL SYSDATE+(LEV ---------- ------------ 1 05-MAY-23 2 06-MAY-23 3 07-M..

[PYTHON/파이썬] 텍스트 파일 DB(Maria)저장

파이썬을 공부하다 텍스트(text)파일로 디비에 데이터를 입력해보기로 했다. 데이터는 행안부 도로명주소 사이트에서 가져왔다. 먼저, 다운받은 파일을 확인하고 컬럼 수를 계산하여 아래와 같이 테이블을 구성했다. (가장 아래 적재일자는 데이터 입력 시간을 확인하기 위해 추가함) 소스코드는 아래와 같다. for문으로 insert구문을 생성하여, 데이터를 삽입한다. import pymysql # pymysql 모듈 임포트 f = open("파일경로", "r") # 파일오픈 data = f.readlines() # 내용 읽어 오기 (리스트로 읽어온다 - reaplce및 개행문자 처리를 위함) lines_cnt = len(data) # 파일 라인수 계산(text) new_list = [] # 리스트 초기화 conn..

코딩/PYTHON 2021.07.05
반응형