2023.11.27 배운 내용
-- VIEW
-- 하나 이상의 테이블에서 가져온 데이터를 가상으로 나타내는 가상 테이블
-- CREATE VIEW 생성명 AS (어디에서 가져올지 SELECT);
-- AS로 뷰 정의 시작
CREATE VIEW VW_EMP30ALL
AS (SELECT * FROM EMP
WHERE DEPTNO = 30);
SELECT * FROM VW_EMP30ALL;
DROP VIEW VW_EMP30ALL;
-- ROWNUM
-- 칼럼 맨 앞 열에 번호 순서를 칼럼으로 만들어줌. 데이터에 매겨지는 번호.
-- ORDER BY절을 통해 정렬해도 처음 지정된 번호가 유지됨.
-- 실행순서가 ROUNUM이 먼저 실행되고, ORDER BY가 나중에 실행되기 때문에.
SELECT ROWNUM, E.*
FROM (SELECT * FROM EMP ORDER BY DEPTNO, SAL, EMPNO)E;
--> ORDER BY를 먼저 하기 위해 FROM절에 서브쿼리 사용해서 묶어줌.
SELECT ROWNUM, E.*
FROM (SELECT * FROM EMP ORDER BY SAL DESC)E
WHERE ROWNUM <= 5;
--> 5번까지 출력
-- 시퀀스 (Sequence)
-- 특정 규칙에 맞는 연속 숫자 생성
-- 데이터베이스에서 고유한 일련번호를 자동으로 생성하는 객체
-- 순차적으로 증가하는 값을 생성해 주는 도구
-- CREATE SEQUENCE 만들 시퀀스명
-- START WITH : 몇 번부터 시작할지. 보통은 1임.
- 테이블 생성 : DEPT_TEMP2라는 테이블을 생성
- 테이블 값 입력 : DEPT_TEMP2에 값을 넣어줌
- 시퀀스 생성 : CREATE SEQUENCE
- 시퀀스 사용 : INSERT INTO ~ VALUES(시퀀스명.NEXTVAL, ~)
-- 시퀀스 사용 : [시퀀스이름.CURRVAL] / [시퀀스이름.NEXTVAL]
-- INSERT INTO 테이블명(칼럼, 칼럼, 칼럼)
-- VALUES(시퀀스명.NEXTVAL, 'DATAVASE', '내용');
INSERT INTO DEPT_TEMP2(DEPTNO, DNAME, LOC)
VALUES(SEQ_DEPT.NEXTVAL, 'DATABASE', 'SEOUL');
SELECT * FROM DEPT_TEMP2
ORDER BY DEPTNO;
--> 적용됐는지 확인
-- 동의어 (Synonym)
-- 먼저 권한이 필요함
-- CREATE SYNONYM (별칭) FOR (별칭으로 부를 테이블);
-- 동의어의 경우 뒤에 FOR를 씀.
CREATE SYNONYM E
FOR EMP;
--> 앞으로 SCOTT에서는 EMP의 동의어가 E가 됨.
-- 제약 조건
-- 데이터 무결성, 정확성과 일관성을 보장하기 위하여.
-- 제약 조건 종류
-- NOT NULL
NULL을 허용하지 않음. NULL을 제외한 데이터의 중복은 허용.
-- UNIQUE
지정한 열이 유일한 값을 가져야 함. 중복 불가.
-- PRIMARY KEY
UNIQUE & NOT NULL, 중복과 NULL 불가.
뒤 데이터의 유일성을 보장해 줌
자식 테이블이 있으면 삭제 불가.
-- FOREIGN KEY
프라이머리 키를 참조하는 키 (레퍼런스, 참고, 주소값을 공유) (FK)
-- CHECK
열에 저장할 수 있는 값의 범위 또는 패턴을 정의
-- 데이터 모델링
-- 개념적 데이터 모델 (conceptual modeling)
-- 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업
-- 개체 - 관계 모델
-- 논리적 데이터 모델링 (logical modeling)
-- 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업
-- 관계 데이터 모델
-- 개체 (entity)
-- 사람, 사물 등 꼭 필요한 구별되는 모든 것
-- 각 개체만의 고유한 특성이나 속성을 하나 이상 가지고 있음
-- ex) 서점에 필요한 개체 : 고객, 책
-- 속성 (attribute)
-- 개체나 관계가 가지고 있는 고유의 특성
-- 의미 있는 데이터의 가장 작은 단위
-- 단일 값 속성
-- 값을 하나만 가질 수 있는 속성 ex) 이름, 적립금
-- 다중 값 속성
-- 값을 여러 개 가질 수 있는 속성 ex) 연락처, 저자(공동저자)
-- 한 칼럼 안에는 한 개의 데이터만 들어가야 함.
-- E-R 다이어그램 (Entity Relationship Diagram)
-- 단순 속성 : 세분화 불가 (책 이름, ISBM 등)
-- 복합 속성 : 세분화 가능 (주소, 생년월일 등)
-- 유도 속성 : 기존의 다른 속성의 값에서 유도되어 결정되는 속성, 파생
(가격 할인율 - 판매가격, 출생연도 - 나이)
-- 키 속성 : 각 개체 인스턴스를 식별하는 데 사용되는 속성 (고객 개체의 고객아이디)
-- 관계 : 개체와 개체가 맺고 있는 의미 있는 연관성 (고객과 책 사이에 '구매')
-- 일대일 관계 : 남편-부인
-- 일대다 관계 : 부서-사원
-- 다대다 관계 : 고객-책
-- 논리적 데이터 모델링
-- 데이터베이스의 논리적 구조 = 데이터베이스 스키마(SCHEMA)
-- 관계형 데이터 모델
-- 다이아그램을 표로 표현
-- 릴레이션의 특성
-- 투플(행)의 유일성 / 투플(행)의 무순서 / 속성의 무순서 / 속성의 원자성
-- 키(Key)
-- 유일성과 최소성
-- 기본키(Primary) : 기본적으로 사용하기 위한 키
-- 후보키(Candidate) : NOT NULL, UNIQUE, 유일성과 최소성을 만족하는 속성 또는 속성집합
-- 대체키(Alternate) : 기본키로 선택되지 못한 키
-- 슈퍼키(Super) : 유일성을 만족하는 속성 또는 속성집합
-- 외래키(foreign) : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성집합
'개발 공부 Today I Learned' 카테고리의 다른 글
[국비 7일차 TIL] 데이터모델링 개체, 속성, 키 (0) | 2023.11.29 |
---|---|
[국비 6일차 TIL] 데이터베이스 구성, 설계, 사용자, 권한, 롤, 조인 (1) | 2023.11.28 |
[국비 4일차 TIL] 서브쿼리, DML, DDL, DCL (0) | 2023.11.24 |
[국비 3일차 TIL] SQL 함수 - 그룹화, 조인, 서브쿼리 (1) | 2023.11.23 |
[국비 2일차 TIL] 오라클 데이터베이스 함수 (내장, 숫자, 다중행) (1) | 2023.11.22 |
댓글