쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는 https://github.com/2jaehoon/ssangyonng.git에 올려두었습니다.
select subquery
- 단수행, 복수행, scalar subquery가 제공
* scalar subquery
- 다른 테이블에 컬럼 값으로 조회할 때 사용
- 서브쿼리만 별도의 실행을 할 수 없다.
- 단수행 서브쿼리만 가능하다.
- 테이블은 다르고 컬럼명이 같을 때 식별해야 한다. ( 테이블명.컬럼명 )
select 컬럼명, ( select ... from 테이블2명 where 테이블2명.같은컬럼명=테이블1명.같은컬럼명 )
from 테이블1명
* 복수행 서브쿼리
- inline view를 사용한 검색( 조회결과를 사용한 재조회 )
- 많은 양의 레코드에서 일부분의 레코드를 보여줘야할 때 사용
select 컬럼명1, 컬럼명2...
from ( select문 );
--from에 있는 select문은 inline view이고
--select에 있는 컬럼명은 inline view에 의해 검색된 컬럼명
--subquery에서 alias에서 사용되면, 바깥 쿼리에서는 alias명으로만 사용 가능
* rownum
- 조회되는 쿼리문에서 순차적인 번호를 보여줄 수 있는 가상 컬럼 ( Psuedo column )
- 모든 select문에서 사용할 수 있다.
- select마다 구분되어 사용된다.
- where절에서 사용되면 1번에서부터만 검색이 되고, 그렇지 않으면 검색되지 않는다.
- order by보다 먼저 생성 ( 정렬을 하게 되면 번호가 섞인다. )
--컬럼으로 사용
select 컬럼명, ..., rownum
from 테이블명;
제약사항 ( Constraint )
- 컬럼의 값을 개발자가 원하는 형태로 받기 위해 사용
- primary key, foreign key, unique, check, not null 5가지 제공
- user_constraints DD( Data Dictionary )에서 테이블에 설정된 제약사항을 확인할 수 있다.
- DD( Data Dictionary ) : DBMS에서 운영에 필요한 정보를 저장한 테이블
사용자가 직접 insert, update, delete를 할 수 없고 오직 select문만 가능하다.
- 테이블 생성할 때 컬럼 단위 제약사항, 테이블 단위 제약사항 문법으로 설정할 수 있다.
- alter를 사용하여 제약사항을 추가, 삭제, 변경, 활성화, 비활성화를 할 수 있다.
primary key ( 기본 키, 주 키 )
- 테이블은 하나의 기본 키를 가질 수 있다.
- 컬럼의 값을 null을 허용하지 않으면서 유일하게 관리해야할 때 사용
- 테이블 설계할 때 후보키 중 하나가 선택된다.
- 테이블은 하나의 기본 키를 가질 수 있다
- 하나의 PK는 여러 개의 컬럼으로 구성될 수 있다
- PK 컬럼은 다른 테이블에서 FK로 참조할 수 있다.( 테이블 간의 관계 설정 )
- user_constraints DD에서 constraint_type이 'P'로 설정된다.
컬럼 단위
-- 컬럼의 정의와 제약사항이 합쳐진다.
create table 테이블명(
컬럼명 데이터형(크기) constraint pk_테이블명 primary key
);
테이블 단위
-- 컬럼의 정의와 제약사항을 분리할 수 있다.
-- 하나의 PK가 여러 개의 컬럼으로 구성될 때 사용
CREATE TABLE 테이블명(
컬럼명 데이터형(크기),
... ,
... ,
contraint pk_테이블명 primary key (적용컬럼, ... , ...)
)
ERD ( Entity Relationship Diagram )
- 테이블의 구조, 관계를 보기 쉽게 만든 다이어그램
- ERD 구성
'성장 일기 > 쌍용교육센터' 카테고리의 다른 글
0130/시퀀스, 조인, 정규화 (0) | 2023.01.30 |
---|---|
0127/테이블 제약 조건 (0) | 2023.01.27 |
0125/집계함수 (0) | 2023.01.25 |
0120/DBMS 함수 (0) | 2023.01.20 |
0119/group by, order by, 함수 (0) | 2023.01.19 |