임시테이블 생성하기 - CREATE TEMPORARY TABLE 데이터를 임시로 보관하는 임시 테이블을 생성할 때 CREATE TEMPORARY TABLE문을 사용한다. CREATE GLOBAL TEMPORARY TABLE 테이블명 (COL1 DATATYPE, COL2 DATATYPE, ...) ON COMMIT DELETE ROWS / ON COMMIT PRESERVE ROWS; 임시 테이블 생성임을 나타내기 위해 CREATE와 TABLE 사이에 GLOBAL TEMPORARY를 기술한다. 임시 테이블은 데이터를 영구 저장하지 않는다. 데이터를 보관하는 주기를 결정하는 옵션을 기술한다. ON COMMIT DELETE ROWS : 임시 테이블에 데이터를 입력하고 COMMIT할 때까지 데이터를 보관 ON C..
1. 계층 순서로 출력하기 계층형 질의문(Hierachical Query)를 사용해 데이터를 선택하여 계층 순서로 결과를 출력한다. 계층형 질의문에서 쓰이는 용어 용어 설명 노드(node) 표시된 항목 레벨(level) 트리(tree) 구조에서 각각의 계층 루트(root) 트리(tree) 구조에서 최상위에 있는 노드 부모(parent) 트리(tree) 구조에서 상위에 있는 노드 자식(child) 트리(tree) 구조에서 하위에 있는 노드 계층형 질의문 형식 예시 SELECT LEVEL, COL1, COL2, ... FROM TABLE_NAME START WITH ROOT_NODE CONNECT BY PRIOR PARENT_NODE = CHILD_NODE 계층형 질의문의 키워드인 CONNECT BY와 ST..
1. 데이터 입력하기 INSERT () VALUES () 에서 VALUES절을 제외하고 서브쿼리를 사용하면 여러 개의 행을 한 번에 테이블에 입력할 수 있다. EX ) EMP 테이블의 구조를 그대로 복제한 EMP2테이블에 부서 번호가 10번인 사원들의 사원 번호, 이름, 월급, 부서 번호를 한번에 입력하라 -- EMP2 테이블 생성 (EMP 테이블 구조 복사) CREATE TABLE EMP2 AS SELECT * FROM EMP WHERE 1 = 2; INSERT INTO EMP2(EMPNO, ENAME, SAL, DEPTNO) SELECT EMPNO, ENAME, SAL, DEPTNO FROM EMP WHERE DEPTNO = 10; VALUES절에 VALUES 대신 입력하고자 하는 서브쿼리문을 기술한..
1. 데이터 입력하기 - INSERT 테이블에 새로운 데이터를 입력할 때 INSERT문을 사용한다. INSERT INTO 테이블명 (col1, col2, col3, ...) VALUES (value1, value2, value3, ...) INSERT INTO 테이블명 (value1, value2, value3, ...) INSERT문을 사용할때 INSERT INTO 다음 테이블명을 입력하고, 괄호안에 데이터를 컬럼명 순서대로 기술한다. 만약 괄호를 쓰지 않으면 전체 컬럼에 모두 데이터를 입력해야 한다. 이때 숫자는 그대로 기술해도 되지만 문자와 날짜는 작은 따옴표로 감싸줘야한다. EX ) 사원 번호 2812, 사원 이름 JACK, 월급 3500, 입사일 2019년 6월 5일, 직업 ANALYST인 사원..
5. HAVING절의 서브 쿼리 HAVING절은 그룹 함수로 검색된 데이터 간 비교할 때 사용한다. EX ) 직업과 직업별 토탈 월급을 출력하는데, 직업이 SALESMAN인 사원들의 토탈 월급보다 더 큰 값들만 출력하시오 직업이 SALESMAN인 사원이라는 조건이 있기 때문에 WHERE절을 사용해 작성할 수도 있다. SELECT JOB, SUM(SAL) FROM EMP WHERE SUM(SAL) > (SELECT SUM(SAL) FROM EMP WHERE JOB = 'SALESMAN') GROUP BY JOB; 하지만 그룹 함수로 검색조건을 작성했기 때문에 에러가 발생한다. 이 처럼 그룹 함수로 검색조건을 작성할 때는 HAVING절을 사용해야한다. SELECT JOB SUM(SAL) FROM EMP GR..
3. NOT IN 특정 쿼리에서 검색한 데이터 중 다른 쿼리에 없는 데이터를 검색하려면 NOT IN 연산자를 사용한다. EX ) 관리자가 아닌 사원들의 이름과 월급, 직업을 출력하라. 관리자가 아닌 사원은 직속 부하 직원이 한 명도 없는 사원을 의미한다. 즉 사원번호(EMPNO)가 관리자 번호(MGR)와 같지 않은 사원을 찾으면 된다. 이 경우 또한 단일행 서브 쿼리의 연산자를 사용하면 에러가 발생한다. SELECT ENAME, SAL, JOB FROM EMP WHERE EMPNO != (SELECT MGR FROM EMP); ORA-01427: single-row subquery returns more than one row 따라서 이 경우에는 다중 행 서브 쿼리 중 NOT IN을 사용하여 문제를 해결..
geopandas 라이브러리 python에서 지역 경계 데이터(shp 파일)을 읽을 때 주로 사용되는 라이브러리 pandas 라이브러리의 dataframe과 유사 GeoDataFrame 및 GeoJSON자료형을 다룰 수 있음 Geometery 자료형을 지원하므로, 여러 좌표를 하나로 묶은 다각형 처리가 쉬움 설치환경 Window 10 64bit Anaconda - Python 3.8.3 python환경은 아래 코드로 확인할 수 있다. import sys sys.version >>> '3.8.3 (default, Jul 2 2020, 17:30:36) [MSC v.1916 64 bit (AMD64)]' 패키지 다운로드 Windows에서 geopandas 라이브러리를 설치하려면 4개의 의존성 라이브러리를 먼..
1.10 그래프 레이어 문법 ggplot(data = )+ ( mapping = aes(), stat = , position = ) + + 데이터 작동 과정 1. 데이터 셋 부터 시작해서 표시하고 싶은 정보로 변환하기 a. diamonds 데이터 셋에서 부터 시작한다 b. stat_count 로 cut 값 각각에 대한 count를 계산한다 2. 변형된 데이터 의 각 관찰값을 나타낸 기하객체를 선택한다. 데이터의 변수들을 나타내기 위해 지옴의 심미성 속성을 이용한다. 또한 각 변수의 값들을 심미성 수준에 매핑한다. a. 각 관측값을 막대로 표현한다 b. 각 막대의 fill을 ..count.. 변수로 매핑한다 3. 지옴을 위치시킬 좌표계를 선택한다 a. 지옴들을 데카르크 좌표계에 둔다 b. y 값을 ..co..
1.9 좌표계 기본 좌표계는 각 점의 위치를 결정할 때 x와 y 위치가 독립적으로 움직이는 데카르트 좌표계이다. 1. coord_filp() coord_flip()은 x와 y축을 바꾼다. 예를 들어 수평 박스플롯이 필요한 경우나 라벨이 길어서 x축과 겹치지 않고 들어 맞게 하기 힘든 경우에 유용하다. # plot 1 ggplot(data = mpg, mapping = aes(x = class, y = hwy)) + geom_boxplot() # plot 2 ggplot(data = mpg, mapping = aes(x = class, y = hwy))+ geom_bar()+ coord_filp() 2. coord_quickmap() coord_quickmap() 을 하면 지도에 맞게 가로 세로 비율이 설..
1.8 위치 조정 colour 또는 fill 옵션을 통해 막대 차트에 색상을 지정할 수 있다. ggplot(data = diamonds)+ geom_bar(mapping = aes(x = cut, colour = cut)) ggplot(data = diamonds)+ geom_bar(mapping = aes(x = cut, fill = color)) 채우기(fill) 옵션을 clarity 와 같은 다른 변수에 매핑하면 막대가 자동을 누적된다. 각 색상이 지정된 직사각형은 cut 과 clarity 의 조합으로 나타낸다. ggplot(data = diamonds)+ geom_bar(mapping = aes(x = cut, fill = clarity)) 스택은 position 옵션으로 지정된 위치 조정에 의해..