Developer J

kh 정보교육원 28~30일 차 후기 본문

국비학원 일상

kh 정보교육원 28~30일 차 후기

Developer J 2020. 3. 2. 22:16
반응형

학원에서 배우는 개념들은 정보처리 기사의 기본 개념과 동일하기 때문에 병행을 한다면 정보처리 기사 공부에도

도움이 될 것이다.

 

28일 차

<join 하는 방법>

1.ORACLE 전용 문법과 ANSI 표준 문법을 학습.

ORACLE 전용의 경우 FROM 절에 합치고자 하는 테이블을 나열하고, WHERE절에 합칠 테이블의 공통 사항을 작성하면 된다.

ANSI 표준 문법의 경우 조인하고자 하는 테이블을 FROM 구문 다음에 JOIN 테이블명 ON( ) || USING() 구문을 사용해 두 개 이상의 테이블을 하나로 합치면 된다.

 

<OUTER JOIN>

LEFT JOIN: 두 테이블 중 원본(왼쪽) 테이블의 정보를 모두 포함하여 조회할 때 선언
RIGHT JOIN: 두 테이블 중 JOIN에 명시한(오른쪽) 테이블의 정보를 모두 포함하여 조회할 때 선언
FULL JOIN : 두 테이블이 가진 데이터 중 서로가 가지지 않은 값일 지라도 모두 포함하여 조회하고자 할 때 선언(양쪽)

 

JOIN의 종류와 개념을 배우고 실습 문제를 통해 학습.

 

<SUB QUERY>

주가 되는 메인 쿼리 안에 조건이나 하나의 검색을 위한 또 하나의 쿼리를 추가하는 기법이다.

--단일행 서브쿼리: 결과값이 1개 나오는 서브쿼리

--다중 행 서브쿼리: 결과값이 여러 개 나오는 서브쿼리

--다중 열 다중 행 서브쿼리: 여러 컬럼과 여러 줄을 가진 서브쿼리를 사용하여 결과를 조회하는 방법

 

<서브쿼리의 사용 위치>
-- SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, JOIN
-- DML : INSERT, UPDATE,DELETE
-- DDL : CREATE TABLE, CREATE VIEW
-- Inline View(인라인 뷰) : FROM 위치에 사용되는 서브쿼리는 테이블을 테이블명으로 직접 조회하는 대신
-- 서브쿼리의 리절트셋(ResultSet)을 활용하여 데이터를 조회할 때 사용할 수 있다.

<TOP-N 분석 조회>

--조건에 부합하는 내용을 순위화 하여 특정 순번까지 조회하는 방식

--ROWNUM : 데이터를 조회할 때 각 행의 번호를 매겨주는 함수
--                 SELECT 절에 사용해 각 행의 번호를 삽입 가능.

--                 반드시 1부터 값을 증가시키기 때문에 1 초과한 순서를 먼저 계산할 수 없다.

--                 즉, 5위~10위를 구하라는 식은 불가, 1위부터 원하는 순위까지 가능.

 

<RANK()함수> DENSE_RANK() 함수
--RANK(): 동일한 순번이 있을 경우 이후의 순번은 이전 동일한 순번의 개수만큼 건너뛰고 순번을 매기는 함수
              ex)  1,( 2 , 2 ), 4 , 5

 

29일 차

--DENSE_RANK(): 동일한 순번이 있을 경우 이후 순번에 영향을 미치지 않는 함수
              ex)  1, ( 2 ,2 ) , 3 , 4 , 5

 

<WITH AS 구문 >
--동일한 서브쿼리를 중복해서 사용할 때 이를 별칭화 하여 별칭을 통해 반복 사용하도록 구현하는 문법
--사용형식: WITH 별칭 AS (서브쿼리)
--** 단, 인라인 뷰에서만 가능
--같은 내용을 실행하는 서브쿼리라도 매번 호출할 때마다 서브쿼리의 내용을 다시 읽어와서 메인쿼리에 반영
--WITH AS 사용하면 동일한 내용은 한번 미리 수행되어 임시 저장함으로써 서브쿼리를 재호출 할 때 계산하는 사항들을 --반복 처리하지 않아 수행 속도가 향상

 

<데이터 사전> 
--데이터 베이스에서 사용자 정보나 테이블 정보 등의 설정을 관리하는 테이블

--스키마
--데이터 베이스의 구조와 제약조건에 관한 전반적인 명세를 기술할 데이터 집합
--DB에서 자료의 구조, 표현방법, 관계 등을 정의한 구조
--사용자가 DBMS를 통해 데이터베이스를 사용하려 할 때 DBMS는 자신이 생성한 데이터 베이스 스키마를 참조하여 명    령을 수행한다.

--스키마: 개념, 논리(내부), 물리(외부)
--개념 : 테이블을 설계하기 위해 개요를 작성하는 과정( DBA(데이터베이스 관리자), 설계자)
--논리(내부) : 테이블을 논리적인 형태로 어떤 구성을 하고 있는지 작성하는 단계(개발자)
--물리(외부) : 사용자가 사용할 수 있는 형태의 실제 물리적인 저장 공간을 표현하는 형태( 실제 DB사용자, 프로그래머)

 

CREATE : DB의 객체를 생성하는 DDL
    [사용 형식]
    CREATE 객체 형태 객체명(관련 내용)
    CREATE USER TEST INDENTIFIED BY TEST;
    GRANT CONNECT, RESOURCE TO TEST;
    CREATE USER 아이디 INDENTIFIED BY 비번;
    GRANT CONNECT, RESOURCE TO 아이디;
    
    테이블 생성
    CREATE TABLE TB_TEST(
        칼럼명 자료형(길이) 제약조건,
        칼럼명 자료형(길이) 제약조건
    );
    
    제약조건 : 테이블에 데이터를 저장하고자 할 때 지켜야 하는 규칙
        NOT NULL- NULL값을 허용하지 않는다.(필수 입력사항)    --회원가입 시 비번 없이 넘길 수 없다.
        UNIQUE - 중복 값을 허용하지 않는다.
        CHECK - 지정한 입력 사항 외에는 받지 못하게 막는 조건 --EX)'Y','N' 만 입력하게 만들 때
        PRIMARY KEY - (NOT NULL + UNIQUE)
                테이블 내에서 해당 행을 인식할 수 있는 고유의 값
                테이블 내에서 단 1개만 존재
        FOREIGN KEY - 다른 테이블에서 저장된 값을 연결 지어서
                        참조로 가져오는 데이터에 지정하는 제약조건

 

30일 차

위에 언급한 PRIMARY KEY, FOREIGN KEY를 실습을 통해 확인.

<삭제 옵션>

--참조하고 있는 원본 테이블의 칼럼 값이 삭제될 때
--참조한 값을 어떻게 처리할 것인지를 설정하는 옵션을 삭제 옵션
--일반적으로는 참조하는 원본 컬럼 내용을 삭제하고자 할 때 외래키로 사용 중인 자식 컬럼이 존재하면 함부로 삭제할     수 없다. 이를 변경하는 옵션
--1. 부모 컬럼을 삭제할 때 자식을 NULL로 변경하기
-- ON DELETE SET NULL 
--2. 부모 컬럼을 삭제할 때 관련된 자식도 함께 삭제하기
-- ON DELETE CASCADE

 

--SUBQUERY를 활용한 테이블 만들기
--SUBQUERY를 사용하여 테이블을 생성할 경우
--컬럼명, 데이터 타입, 값, NOT NULL은 복사 가능
--하지만 다른 제약조건은 복사 되지 않는다.

 

--테이블의 형식만 복사하기
-- 값을 제외한 형식 복사
CREATE TABLE EMPLOYEE_COPY
AS SELECT * FROM EMPLOYEE WHERE 1=2; 
--1과 2는 같을 수 없다.즉, 불가능한 조건을 걸어서 데이터 이외의 형식만 가져오는 것.

<제약조건을 테이블 생성 후에 추가하는 DDL >
--ALTER 사용하기

--[사용 형식]
--ALTER TABLE 테이블명 ADD PRIMARY KEY(컬럼명)
--ALTER TABLE 테이블명 ADD FOREIGN KEY(컬럼명)
--                       REFERENCES 테이블명(컬럼명)
--ALTER TABLE 테이블명 ADD UNIQUE (컬럼명)
--ALTER TABLE 테이블명 ADD CHECK(조건식)
--ALTER TABLE 테이블명 MODIFY 컬럼명 NOT NULL

 

30일 차까지 진행되는 수업 내용을 기록해 보았다. 이후의 수업 내용은 작성하지 않을 예정이다.

세미 프로젝트에 들어간다면 세미 프로젝트와 관련해 글을 써보려 한다.

반응형