SQL(14)
-
SQL-INLINE VIEW, SEQUENCE
* INLINE VIEW(인라인 뷰) from절에 테이블이 아닌 서브쿼리문을 사용한 것 SELECT ... FROM (SELECT 문장 : sub query) [별명] [예제 1] 각 부서별 최소 급여자를 검색한다. SELECT eno, ename, d.dno, sal, msal FROM emp e, (SELECT dno, MIN(sal) msal FROM emp GROUP BY dno) d // d는 sql문으로부터 나온 결과값을 d라는 테이블로 사용 WHERE e.dno = d.dno AND sal = msal; ROWNUM을 이용한 Top-N 분석 row의 갯수. 부등호만을 사용한다. 최상위, 최하위를 검색하고 싶을때 사용. SELECT ROWNUM, [컬럼, 컬럼, ...] FROM (SELECT..
2019.12.19 -
SQL-VIEW
* View - 물리적인 공간을 직접적으로 차지하는 segment는 아니다. 지금까지 배운 segment는 index와 table - 단독으로 존재가 불가능해서 기존 table이 있어야한다. 뷰의 종류 1. 단순 뷰(simple view) - 단일 table로부터 만들어진 view - DML 문장 수행이 가능하다. - 거의 사용하지 않는다. 2. 복합 뷰(complex view) - 다중 table로부터 만들어진 view - 함수나 수식 등을 포함한다. - DML 문장 수행이 불가능하다 뷰의 생성과 확인 CREATE [OR REPLACE][FORCE | NOFORCE] VIEW 뷰 (컬럼 ... ) // CREATE는 새로, REPLACE는 존재할 경우 교체. segment가 아니기때문에 alter란 개..
2019.12.18 -
SQL-INDEX
* 인덱스 -index와 table은 서로 다른 segment기 때문에 무분별하게 index를 지정하면 시스템에 굉장한 부담이 된다. -index는 기준 데이터가 자동 정렬되어 테이블이 생성되며 ROWID가 일치하는 조건의 데이터를 찾은뒤 데이터를 출력한다.ROWID는 물리적인 위치정보를 나타내는 값이다. - table은 기준 데이터가 자동정렬되지 않으며 데이터를 저장하며 모든 값을 비교한다.원하는 데이터를 찾더라도 무조건적으로 마지막 데이터까지 조회하며 비교하는데 조건값이 중복되는 경우가 있을 수 있기 때문이다. 인덱스 종류 고유 인덱스(Unique index) - 중복되면 안 되는 값을 사용. 비 고유 인덱스(Non unique index) - 중복되도 무관한 값을 사용. 인덱스 생성 1. 자동 생성..
2019.12.17 -
SQL-제약 조건 이해와 설정-UK, NOT NULL, CHECK
* UK(Unique Key) 설정 SQL> CREATE TABLE 테이블 ( 2 ..... 3 CONSTRAINT 제약_조건 UNIQUE (컬럼) ); * NOT NULL 설정 SQL> CREATE TABLE 테이블 ( 2 컬럼 데이터_타입 CONSTRAINT 제약_조건 NOT NULL, 3 ...... NOT NULL은 항상 컬럼 뒷쪽에 써줘야 한다. * CHECK 설정 SQL> CREATE TABLE 테이블 ( 2 ..... 3 CONSTRAINT 제약_조건 CHECK (조건) ); * CHECK와 NOT NULL 제약 조건 검색 SQL> SELECT constraint_name, search_condition FROM user_constraints 2 WHERE table_name = '테이블';..
2019.12.16 -
SQL-제약 조건 이해와 설정-PK, FK
* 오라클에서 제공되는 제약 조건 - PRIMARY KEY - FOREIGN KEY - UNIQUE KEY - NOT NULL - CHECK PK(Primary Key, 주키, 주식별자) 결정 인자라고도 부른다. 테이블의 모든 데이터를 유일하게 식별해주는 컬럼이다. 테이블은 무조건 PK를 가지고 있다. 함수적 종속 레코드 내에 존재하는 항목(컬럼)들 중에 속성 B가 속성 A에 함수적 종속관계에 있다는 것은 A를 이용해서 B를 식별할 수 있다는 뜻이다. A -> B의 형태로 사용하며 A를 결정인자(Determinant), 프라이머리 키라고 부른다. A -> (B B, A -> C가 성립한다. (A, B) -> C인 경우 A -> C, B -> C는 성립하지 않는다. FK(Foreig..
2019.12.13 -
SQL-테이블 생성과 데이터 타입의 이해
* 테이블 생성과 삭제 CREATE ALTER DROP를 묶어서 이해해야한다. 형식 CREATE TABLE 테이블 ( 컬럼 데이터_타입 [DEFAULT default값] [컬럼 레벨 제약조건], 컬럼 데이터_타입 [DEFAULT default값] [컬럼 레벨 제약조건], ..... [테이블 레벨 제약조건], ..... ); 형식에 대한 설명 데이터_타입 : 컬럼에 입력될 데이터의 종류와 크기를 결정. DEFAULT : 입력이 누락됐을 때 기본 입력 값을 정의한다. Default 값을 지정하지 않으면 NULL 값이 저장. 컬럼 레벨 제약 조건 : PK, FK, UK, CHECK, NOT NULL등을 지정. ex) 나이는 19살 이상만 입력 가능 - PK : 프라이머리 키. NULL값과 중복된 값이 들어갈 ..
2019.12.12