Database

DAY 7 ( DDL, DML, TCL, DCL, 제약조건(Constraint) 설정, 테이블 생성 수정 삭제, 스키마, 객체 권한)

도키마 2024. 5. 24. 15:06

 

 

 

 

 

오늘의 노래 추천 👠🎸

 

 
Boyfriend
아티스트
Dove Cameron
앨범
Boyfriend
발매일
1970.01.01

 

 
indieedgycool
아티스트
GAYLE
앨범
indieedgycool
발매일
1970.01.01

 

인디엣지쿨 Kkkkkid이고싶은 날에 ㅊㅊ합니다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DAY 7




 

 

 

 

 

 

 

 

 

 

 

ㅡ 복습 ㅡ

 

** DDL ( Data Definition Language ) **

 

 

 

 

 

 

 

 

 

 

 

DDL 이란 ?

 

" 데이터 정의어 "

테이블같은 저장소 객체를 만들거나 수정하는 언어

 

 

 

 

 

* DDL 명령어 종류 *

 

 

CREATE

테이블 등의 객체를 '생성'하는 명령어

ALTER

테이블 등의 객체를 '변경'하는 명령어

RENAME

테이블의 '이름을 변경'하는 명령어

TRUNCATE 

테이블 안의 '데이터를 삭제'하는 명령어

DROP 

테이블 등의 객체를 '삭제'하는 명령어

 

 

 

 

 

* 자주 사용하는 자료형 *

 

 

VARCHAR2 ( N )

가변형 문자형

N 크기만큼 입력 받음

 

NUMBER ( P, s )

숫자형 값을 P 자리 만큼 입력받고 s 자리 만큼 소수를 입력받음

 

* 오라클 데이터베이스에서는 실수와 정수 모두 표현 가능

** 소괄호를 생략하게 되면 최대값인 38 크기가 들어감

 

DATE

현재 날짜 값을 입력받는 날짜형 자료형

 

 

자주 사용하는 자료형

 

 

 

 

 

* 테이블 생성 규칙 *

 

 

1. 대소문자 구분 X

* 자동 대문자 변경

 

2. 중복되는 테이블명 X (에러)

 

3.  하나의 테이블 내에서 컬럼명 중복 X (에러)

 

4. 테이블명은 문자로 시작, 예약어는 사용이 불가능

* a-z, A-Z, 0-9, ㄱ-ㅎ, _, $, # 특수문자만 가능

 

 

 

 

 

[ DDL 테이블 생성 실습 ]

 

 

테이블 컬럼 생성

 

테이블 컬럼 생성

 

실습

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

** 제약조건 (Constraint) **

 

 

 

 

 

 

 

 

 

 

 

제약조건 (Constraint) 란 ?

 

 

데이터의 정확성을 유지하기 위해

테이블에 입력 가능한 데이터를 '조건' 으로 제약을 거는 것

 

* 제약 조건 지정 방식에 따라 기존 데이터의 수정, 삭제 여부도 영향을 받음

 

 

제약조건

 

 

 

 

 

 

 

* 제약조건의 종류 *

 

 

 

 * PRIMARY KEY (PK)

 

1. 유일하게 하나만 있는 값으로 기본키 라고함

2. 하나의 테이블에는 무조건 PRIMARY KEY가 있어야 함

3. 단일 컬럼 또는 여러 개의 컬럼을 PK로 설정 가능

4. NULL값 입력불가, 중복 불가의 특징이 있음

* 식별자 규칠을 물리적 모델링 한 것이기 때문에 

 

* 식별자 : 테이블에서 행을 식별할 수 있는 컬럼

'특정 행을 식별할 수 있도록'  단일 컬럼 또는 N개의 컬럼을 PK 로 설정가능함

 

 

UNIQUE KEY (UK)

 

1. 중복되지 않는 값으로 고유키라고 한다

2. 기본적으로 데이터 중복을 허용하지 않고자 할때 사용

3. NULL값을 입력할 수 있어서 NULL 값이 허용됨

 

 

NOT NULL

 

1. NULL 값이 들어오지 않게 함

* 반드시 값이 있어야 할때 설정하는 컬럼

 

 

CHECK

 

1. 데이터의 형태와 범위를 정함

2. TRUE / FALSE로 평가할 수 있는 논리식을 지정 ( CHECK 제약조건 )

3. 특정 컬럼에 데이터를 입력할 때 제약조건에 해당하는 데이터만 입력할 수 있도록 함

CHECK 제약조건

 

 

** FOREIGN KEY (FK)

 

1.  다른 테이블과 관계를 맺는 키로 외래키 라고함

2. 테이블 간 연결 관계를 물리적 모델링 한 것

3. 다른 테이블의 '기본키(PK)를 참조'하는 속성

 

 

 



 

 

 

 

 

 

데이터 무결성 이란 ?

 

데이터에 결함이 없는 상태

즉, 데이터가 정확하고 유효하게 유지 된 상태

 

 

 

 

 

* 무결성 제약조건의 종류 *

 

 

 

개체 무결성 (PK)

 

기본키 제약

하나의 테이블에 " 중복된 행이 존재하지 않도록 " 규정

 

 

참조 무결성 (FK)

 

행을 입력, 수정, 삭제할 때 연관되는 다른 테이블과의 데이터가 정확하게 유지되도록 규정

참조 관계에 있는 두 테이블에 데이터가 항상 일관된 값을 가져야함

 

 

무결성 제약조건 종류

 

 

* 데이터 무결성을 유지하기 위해 제약조건을 거는것 !!

 

 

 

 

 

 

 

[ 제약조건 지정해보기 실습 ]

 

 

제약조건 지정

 

FK 제약조건 지정

 

 

 

제약조건 변경 : " MODIFY "

 

제약조건 변경

 

 

제약조건 삭제 : " DROP "

 

제약조건 삭제

 

 

 

[ 수정, 삭제 실습 ]

 

 

컬럼 수정 : " ADD " , " RENAME COLUMN " , " MODIFY " , " DROP "

컬럼 수정

 

 

테이블 수정 : " RENAME TABLE " ,  " DROP TABLE "  ,  " AS "

테이블 수정

 

* 동일한 데이터를 가진 테이블을 복사하지만, 제약조건까지는 복사되지 않음

 

 

 

데이터 삭제 : 

 

DELETE  테이블 내 데이터를 삭제

ROLLBACK삭제 데이터 복구

TRUNCATE  테이블 내 데이터를 " 영구 "삭제

 

데이터 삭제

 

 

 

[ 테이블 생성 실습 ]

 

 

테이블 생성 방법
실습

 

테이블 생성 실습

 


 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

** DML ( Data Manipulation Language ) **

 

 

 

 

 

 

 

 

 

 

 

DML 이란 ?

 

" 데이터 조작어 "

테이블 데이터를 조회, 추가, 수정, 삭제 할때 사용하는 질의어

원하는 데이터를 입력, 수정, 삭제

 

 

 

[ DML 의 유형 ]

 

 

SELECT 데이터 조회

INSERT 데이터 추가

UPDATE 데이터 수정

DELETE 데이터 삭제

 

 

 

 

.

.

.

INSERT

 

데이터의 내용을 입력하는 명령어

* 튜플(행) 단위로 입력

 

 

[ 방법 1 ]

 

INSERT INTO 테이블명( 컬럼 명 1, 컬럼 명 2... )

 

VALUES (값1, 값2... );

 

* INSERT INTO의 컬럼과 VALUES의 값이 1 : 1 매핑되기 때문에 순서와 자료형에 맞게 입력 해야함

 

 

[ 방법 2 ]

 

INSERT INTO 테이블명

 

VALUES ( 입력값 );

 

* 컬럼을 생략하면 모든 컬럼을 대상으로 데이터 입력

** 입력값은 컬럼 수와 자료형이 같아야함

 

 

 

 

 

 

 

[ INSERT 실습 ]

 

INSERT 실습

 

 

* 특정 컬럼에 NULL 값을 입력할 때 ( 명시적, 암시적 NULL 값 입력 )

NULL 값 입력 방법

 

 

 


 

 

.

.

.

UPDATE

 

테이블의 데이터를 변경, 수정할 때 사용

 

 

 

UPDATE 테이블명

 

SET 변경할 컬럼1 = 데이터, 변경할 컬럼2 = 데이터, ... 변경할 컬럼N = 데이터

 

WHERE 데이터를 변경할 대상 행을 선별하기 위한 조건;

 

* WHERE 조건절을 생략할 경우 테이블 내 모든 컬럼의 데이터가 변경됨

 

 

 

 

 

 

 

[ UPDATE 실습 ]

 

UPDATE 실습

 

* WHERE 조건을 걸때는 식별자 PK 인 컬럼으로 걸어야함

 

 

 

 

 

.

.

.

DELETE

 

튜플(행) 단위로 데이터를 삭제하는 명령어

 

 

 

DELETE FROM 테이블명

 

WHERE 삭제할 대상 행을 선별하기 위한 조건;



 

 

 

 

[ DELETE 실습 ]

 

DELETE 실습

 


 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

** TCL ( Transaction Control Language ) **

 

 

 

 

 

 

 

 

 

 

 

TCL 이란 ?

 

" transaction 제어어 "

데이터베이스의 상태를 변화시키기 위한 최소 수행 단위

* Transaction : 업무를 처리하기 위한 최소 수행 단위

 

 

Transaction 예시

 

* 데이터 유실을 막으려면 '송금'이라는 하나TRANSACTION 단위로 진행되어야함

 

 

 

 

 

[ Transaction 의 특성 ]

영어로 외워야함

 

 

 

원자성 (Automicity)

All or Nothing

모두 실행이 되거나 전혀 실행되지 않거나

 

일관성 (Consistency)

언제나 일관성있는 상태를 유지

 

고립성 (Isolation)

Transaction 실행 시, 다른 Transaction 의 영향을 받지 않음

 

지속성 (Durability)

성공적으로 수행된 Transaction 은 영원히 반영되는 것

 

 

 

 

 

* Transaction 명령어 종류 *

 

 

 

COMMIT 

 

데이터 베이스에 영구적으로 저장하는 명령어

* COMMIT 시점 이후의 Transaction 결과를 저장

 

ROLLBACK

 

Transaction 을 취소하는 명령어

* 마지막 COMMIT 시점 까지만 복구 가능

** COMMIT 된 데이터는 ROLLBACK으로 수정, 삭제하지 못함

 

 

SAVEPOINT

 

하나의 Trasaction 을 작게 분할해서 저장하는 기능을 수행하는 명령어

 


 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

** DCL ( Data Control Language ) **

 

 

 

 

 

 

 

 

 

 

 

DCL 이란 ?

 

" 데이터 제어어 "

데이터베이스에 접근하거나 객체에 권한을 주는 등의 역할을 하는 언어

 

 

 

 

 

[ DCL 명령어 종류 ]

 

 

GRANT 권한 부여 

 

GRANT (시스템 권한 명) TO 사용자(USER)

 

 

REVOKE 권한 회수

 

REVOKE (시스템 권한 명) FROM 사용자(USER)

 

 

ROLE 권한 묶음

 

 

 

 

 

* DBMS에서 사용자 ( USER ) 란? *

 

 

 

사용자 (USER)

DBMS 에 접속하여 데이터를 관리하는 계정

 

데이터량이 방대하거나 구조가 복잡한 경우 !

업무 분할과 효율, 보안을 고려

 

 

 

ㅡ 사용자 생성 ㅡ

 

 

CREATE USER 사용자 이름(필수)

IDENTIFIED BY 패스워드(필수)

 

 

SQL Command Line

 

GRANT 권한 부여

 

USER 생성됨

 

 

 

 

 

* ROLE 의 종류 *

 

 

 

CONNECT

DBMS 접속에 필요한 권한이 묶여있는 ROLE

 

 

RESOURCE

테이블, 시퀀스 등 객체생성 권한이 묶여있는 ROLE

 

 

DBA

DBMS를 관리하는 대부분의 시스템 권한

* 웬만하면 건들면 안되는 권한

 

 

 

권한 부여

 

 

 

 

 

 

 

 

 

 

부록 : 스키마 란 ?

 

 

DBMS에 저장되는 데이터 구조와 제약조건 등을 정의한 구조

테이블, 뷰, 인덱스, 시퀀스 등의 HR 계정의 '모든 객체'는 HR의 스키마

 

* 각 계정 마다 존재하며, 이름은 계정명과 동일 ( 오라클에서는 계정과 스키마 구분 X )

 

 

스키마

 

 

 

 

 

 

 

 

 

 

 

부록 : 객체 권한 이란 ?

 

 

특정 사용자의 객체에 권한을 주는 것

EX) HR소유 테이블에 DCL_TEST 사용자가 작업이 가능하도록 허용

 

 

GRANT 시스템 권한 명

ON 스키마.객체이름

TO 사용자

WITH ADMIN OPTION (선택)

 

 

객체 권한 부여
권한 실습

 

* COMMIT; 을 해야 원본 데이터에 적용됨

 



 

 

 

 

 

 

 

 

부록 : 면접

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Let's Role

.

.

.

.

.

.

.

.

데이터베이스는 뭔가요 ?

 

여러 사용자가 공유하여 사용할 목적으로 만들어졌으며, 

통합해서 저장한 운영 데이터의 집합입니다

 

 

DBMS (DB) 가 뭐죠 ?

 

DataBase Management System 으로, 데이터베이스 내 데이터를

효과적이고 효율적으로 관리하기 위해 만들어진 소프트웨어 시스템입니다

 

 

SQL 에 대해 말할 수 있나요 ?

 

데이터베이스에 접근하기 위한 표준 언어로

전세계에서 동일하게 사용하는 데이터베이스 명령어입니다

Struuctured Query Language

 


SQL 의 실행순서는요 ?

 

FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY

 


DDL (Data Difinition Language) : 데이터 정의어

테이블을 만들고

 

DML (Data Manipulation Language) : 데이터 조작어

테이블에 데이터를 넣고


TCL (Transaction Control Language) : 트랜잭션 제어어

수정부분 저장, 뒤로가기...

 

DCL (Data Control Language) : 데이터 제어어

사용자 권한 설정하고

 

 

 

 

 

 

 

 

 

 

 

 

 

.

.

.

.

.

 

too

 

 

many

 

 

question ....