오늘의 노래 추천 👠🎸
- 아티스트
- Dove Cameron
- 앨범
- Boyfriend
- 발매일
- 1970.01.01
- 아티스트
- 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. 특정 컬럼에 데이터를 입력할 때 제약조건에 해당하는 데이터만 입력할 수 있도록 함
** FOREIGN KEY (FK)
1. 다른 테이블과 관계를 맺는 키로 외래키 라고함
2. 테이블 간 연결 관계를 물리적 모델링 한 것
3. 다른 테이블의 '기본키(PK)를 참조'하는 속성
데이터 무결성 이란 ?
데이터에 결함이 없는 상태
즉, 데이터가 정확하고 유효하게 유지 된 상태
* 무결성 제약조건의 종류 *
개체 무결성 (PK)
기본키 제약
하나의 테이블에 " 중복된 행이 존재하지 않도록 " 규정
참조 무결성 (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 실습 ]
* 특정 컬럼에 NULL 값을 입력할 때 ( 명시적, 암시적 NULL 값 입력 )
.
.
.
UPDATE
테이블의 데이터를 변경, 수정할 때 사용
UPDATE 테이블명
SET 변경할 컬럼1 = 데이터, 변경할 컬럼2 = 데이터, ... 변경할 컬럼N = 데이터
WHERE 데이터를 변경할 대상 행을 선별하기 위한 조건;
* WHERE 조건절을 생략할 경우 테이블 내 모든 컬럼의 데이터가 변경됨
[ UPDATE 실습 ]
* WHERE 조건을 걸때는 식별자 PK 인 컬럼으로 걸어야함
.
.
.
DELETE
튜플(행) 단위로 데이터를 삭제하는 명령어
DELETE FROM 테이블명
WHERE 삭제할 대상 행을 선별하기 위한 조건;
[ DELETE 실습 ]
** TCL ( Transaction Control Language ) **
TCL 이란 ?
" 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 패스워드(필수)
* 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 ....
슈
뿅