데이터베이스 day06

Lee·2023년 2월 20일
0

1. 뷰(View)란

  • 하나의 가상 테이블이라고 생각
  • 작업시 자주 조회하는 데이터들이 있다. 한 테이블에 데이터가
    있으면 조회하기 편하겠지만 그렇지 않은 경우가 있다.
  • 여러 테이블을 join 사용하여 가져오고 쿼리가 복잡한 경우도 있다.
  • 이런 경우 쿼리로 뷰를 만들어 놓고 사용하면 편리하다.
  • 보안에도 유리
  • 테이블에 데이터를 노출시키고 싶지 않을 때, 뷰를 사용하여
    보여줄 테이터만 뷰로 제공할 수 있다

1-1. 뷰의 사용 목적

  • 뷰를 만들어 놓으면 복잡한 쿼리를 쉽게 작성 가능
  • 원하는 컬럼만 공개하여 원천데이터 테이블 비공개 가능성,
    보안성에도 유리

1-2. 뷰의 특징

  • 원천 데이터가 변경되면 view데이터도 자동으로 변경
  • 뷰의 검색은 자유로우나, 삽입, 수정, 삭제는 제약이 있다.
  • 뷰생성 쿼리에 함수를 사용하면 반드시 alias를 지정

2. 시퀀스(Sequence)

  • 연속적인 번호를 만들어주는 기능
  • 시퀀스란 자동으로 순차적으로 증가하는 순번을 반환하는
    데이터베이스 객체입니다.
  • 보통 pk값에 중복값을 방지하기 위해 사용한다.

3. index

3-1. index란

  • 조회속도를 향상시키기 위한 데이터베이스 검색 기술
  • 색인이란 뜻으로 해당 테이블의 조회결과를 빠르게 하기 위해 사용

3-2. index원리

  • index를 테이블의 특정 컬럼에 한개 이상 주게 되면
    index table이 따로 만들어 지고, 인덱스 컬럼의 로우값과
    rowid값이 저장되며 로우값은 정렬된 트리 구조로 저장시켜
    두었다가 검색시 좀 더 빠르게 해당 데이터를 찾는데 도움을 준다.
  • 하지만 DML명령을 사용할때는 원본 table 물론 index table에도
    데이터를 갱신시켜 주어야 하기 때문에 update, insert, delete 명령을
    쓸때 속도가 느려진다는 단점이 있다.

3-3. index 생성이 불 필요한 경우

  • 데이터가 적은 경우에는 익덱스를 설정하지 않는게 오히려 성능에 좋다.
  • 조회보다 삽입, 수정, 삭제 처리가 많은 테이블

3-4. DML명령어를 이용했을 경우 취약점

  • insert : 두개의 테이블에 동시 insert
  • delete : 익덱스에서는 데이터를 사용하지 않음으로 표시하고
    지우지 않는다.
  • update : 인덱스에는 delete한 후 새로운 데이터를 insert 작업 함

3-5. index생성

  • unique index
    : 인덱스를 사용한 컬럼의 중복값들을 포함하지 않고
    사용할 수 있는 장점이 있다.
    create unique index 인덱스명
    on 테이블명(컬럼);

  • non-unique index
    : 인덱스를 사용한 컬럼에 중복 데이터 값을 가질 수 있다.

    	   	create index 인덱스명

    on 테이블명(컬럼);


SELECT
WHERE
AND/OR
NOT/ <> / !=
AS
DISTINCT
BETWEEN A AND B
LIKE
IS NULL / IS NOT NULL
ORDER BY 컬럼 DESC
ORDER BY 컬럼 (ASC)
COUNT
AVG (평균)
MAX 최대값
MIN 최소값
ABS
DUAL
TRUNC
CONCAT / ||
INITCAP
LOWER
UPPER
LPAD
RPAD
LTRIM
RTRIM
SUBSTR
REPLACE
SYSDATE
TO_CHAR(날짜컬럼)
TO_DATE(문자열컬럼)
NVL()
DECODE()
CASE
GRUOP BY
LEFT OUTER JOIN
서브쿼리
DDL
CREATE
ALTER
TRUNCATE
COMMIT
ROLLBACK
트랜잭션

SELECT, INSERT, UPDATE, DELETE
NOT NULL
UNIQUE
CHECK
PRIMARY KEY
FOREIGN KEY
VIEW
SEQUENCE
INDEX

profile
wow

0개의 댓글