본문 바로가기
스터디

24.08.28.수 PL/SQL

by SSONG1521 2024. 8. 28.

1. PK / index -> 제약조건

(1) PK : Primary Key   -> 자동으로 unique index가 부여된다.

     중복될 수 없는 유일한 unique값

      not null

      최소성

       -> object 속성은 constraint로써 제약조건으로 생성된다.

(2) Unique Index

     : index가 걸려있는 컬럼에 중복될 수 없는 유일한 값만을 보장

       인덱스가 걸려있는 컬럼에 null 값은 입력 가능

 

 (3) PK 생성

   - 테이블 생성 시 컬럼 레벨에서 생성하기

   - 테이블 생성 시 케이블 레벨에서 생성하기

   - 테이블 생성 후 alter table 명령어로 추가하기

 

 (4) 이미 index가 생성되어 있을 때 PK 생성하

 

 

https://velog.io/@golmori/index-constraint

 

인덱스와 제약조건

쿼리에 간접적으로 영향을 줄 수 있는 인덱스와 제약조건constraint 기능에 대해 알아보자.

velog.io

 

인덱스

인덱스가 효율적인 경우

-- WHERE 절이나 조인 조건절에서 자주 사용되는 칼럼의 경우

-- 전체 데이터 중에서 10~15% 이내의 데이터를 검색하는 경우

-- 두 개 이상의 칼럼이 WHERE 절이나 조인 조건에서 자주 사용되는 경우

-- 테이블에 저장된 데이터의 변경이 드문 경우

   색인은 부가적인 자료 구조임

    데이터 삽입 시 비효율적임

 

인덱스의 종류

1. 고유 인덱스 vs 비고유 인덱스

고유 인덱스

create unique index 인덱스명 on 테이블명 (속성) ;

-- 유일 값을 가지는 속성에 대하여 생성하는 색인

-- 각 키 값은 테이블의 하나의 튜플과 연관됨

비고유 인덱스

create index 인덱스명 on 테이블명 (속성) ;

-- 중복된 값을 가지는 속성에 생성하는 인덱스

-- 키 값은 여러 개의 튜플들과 연관됨

기본키

-- 테이블이 기본키에 대해서는 자동으로 고유색인이 생성됨

  -> Primary Index

-- 기본키는 중복을 허용하지 않음

-- 새로운 튜플을 삽입 할 때마다 키값이 고유값인지 검사해야 함 -> 고유 색인을 이용함

-- 테이블에 속한 튜플들이 많다면 매우 느림

 

 

https://reeme.tistory.com/53

 

[SQL] 인덱스 - 생성 / 삭제 / 종류 ( 고유 / 비고유 / 단일 / 결합 / DESCENDING / 집중 / 비집중 )

인덱스 인덱스 검색 성능을 향상 시키기 위한 부가적인 자료 구조 -- 질의 명령문의 검색 속도를 향상시키기 위해 칼럼에 대해 생성하는 객체 -- 포인터를 이용하여 테이블에 저장된 데이터를 랜

reeme.tistory.com

 

 

 

 

 

2. FK 외래키

   - FK가 정의된 테이블이 자식 테이블이다.

   - 참조되는 모든 테이블을 부모테이블이라고 한다.

   - 부모 테이블은 미리 생성되어 있어야 한다.

   - 부모 테이블의 참조되는 컬럼에 존재하는 값만을 입력할 수 있다.

   - 참조되는 컬럼(부모 TBL)은 PK이거나 UK만 가능하다.

   - 외부키, 참조키, 외부식별자 등으로 불린다.

 

   - 부모 테이블 삭제

 (1) restrict

 (2) set null

 (3) cascade

 

 

 

3. 조인

  • INNER JOIN(내부 조인)은 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다.
  • OUTER JOIN(외부 조인)은 두 테이블을 조인할 때, 1개의 테이블에만 데이터가 있어도 결과가 나온다.
  • CROSS JOIN(상호 조인)은 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인하는 기능이다.
  • SELF JOIN(자체 조인)은 자신이 자신과 조인한다는 의미로, 1개의 테이블을 사용한다.
JOIN        
         
         
         
         
         
         
         

 (1) inner join

 (2) outer join

  • LEFT OUTER JOIN: 왼쪽 테이블의 모든 값이 출력되는 조인
  • RIGHT OUTER JOIN: 오른쪽 테이블의 모든 값이 출력되는 조인
  • FULL OUTER JOIN: 왼쪽 또는 오른쪽 테이블의 모든 값이 출력되는 조인

(3) cross join

한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인시키는 기능입니다. 상호 조인 결과의 전체 행 개수는 두 테이블의 각 행의 개수를 곱한 수만큼 됩니다.
카티션 곱(CARTESIAN PRODUCT)라고도 합니다.

 

(4) self join

자체 조인은 자기 자신과 조인하므로 1개의 테이블을 사용합니다. 별도의 문법이 있는 것은 아니고 1개로 조인하면 자체 조인이 됩니다.

 

https://m.blog.naver.com/regenesis90/222190715006

 

[오라클/SQL] JOIN 종류 정리 : INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN, Self JOIN, Multiple JOINs

1. INNER JOIN, OUTER JOIN 1) INNER JOIN, OUTER JOIN의 특성 요약 ...

blog.naver.com

 

 

4. subquery : 다른 테이블 값을 기준으로 한 테이블에서 데이터를 검색할 수 있도록 다른 쿼리 내부에 중첩된 커리

   즉, 다른 쿼리 내부에 포함되어 있는 SELECT  문을 의미

 - 특징: SELECT FROM WHERE HAVING 및 JOIN 절에서 사용

 

'스터디' 카테고리의 다른 글

241022 취업특강  (0) 2024.10.22
24.08.14.수 Spring Framework  (0) 2024.08.14