본문 바로가기
  • hello world
DataBase

[DataBase] SQL 종류, 키, 자료형 (feat. Oracle)

by JJoajjoa 2023. 8. 29.

 

 

SQL

Structured Query Language

RDBMS 에서 사용하는 언어

 


 

 

# 명령어

 

DDL 

Data Definition Language 데이터 정의어

RDBMS 관리를 위해서 테이블을 포함한 객체들을 생성, 수정, 삭제하는 명령어

CREATE SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의
ALTER TABLE에 대한 정의를 변경하는 데 사용함
DROP SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제

 

 

DML

Data Manipulation Language 데이터 조작어

RDBMS 테이블 데이터를 저장, 수정, 삭제하는 명령어

https://treasurehunter-jt.tistory.com/42

SELECT 테이블에서 튜플을 검색
INSERT 테이블에 새로운 튜플을 삽입
DELETE 테이블에서 튜플을 삭제
UPDATE 테이블에서 튜플의 내용을 갱신

 

 

DCL

Data Control Language 데이터 제어

데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용되는 명령어

COMMIT
(트랜잭션)
명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고,
DB 조작 작업이 정상적으로 완료되었음을 관리자에게 알려줌
ROLLBACK
(트랜잭션)
DB 조작 작업이 비정상적으로 종료되었을 때 원래 상태로 복구
GRANT DB 사용자에게 사용 권한을 부여
REVOKE DB 사용자에게 사용 권한을 취소

 

 


# 상세 분류에 추가되는 

 

DQL 

Data Query Language 데이터 제어어

RDBMS에서 저장한 데이터를 원하는 방식으로 조회하는 명령어

SELECT 데이터 조회

 

 

TCL :

Transaction Control Language 트랜잭션 제어어

DML로 조작된 결과를 작업하는 단위인 트랜잭션을 제어하는 언어

COMMIT 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고,
DB 조작 작업이 정상적으로 완료되었음을 관리자에게 알려줌
ROLLBACK DB 조작 작업이 비정상적으로 종료되었을 때 원래 상태로 복구
SAVEPOINT 데이터 특정 시점까지 반영 혹은 복원
SET TRANSACTION 트랜잭션 속성 정의

 


 

테이블: 관계(relation)
행: row, tuple, record
열: column, attribute, filed

 


 

# 키 key (수많은 데이터들을 구별해줄 값)

 

1. 기본키 primary key

테이블에 저장된 유일한 값

중복된 값이 없어야함

NULL, None 값은 가질 수 없다

ex) 사원정보 테이블의 사원번호, 부서정보 테이블의 부서코드

 

2. 보조키 (대체키 alternate key)

후보키 candidate key에 속해 있는 키

후보키 중에서 기본키로 지정되지 않은 열

기본키의 조건을 만족하면 기본키가 될 수 있음

ex) 부서정보 테이블의 부서이름, 위치

 

후보키
├── 기본키
└── 보조키(대체키)

 

3. 외래키 

특정 테이블에 포함되어 있고, 다른 테이블의 기본키로 지정된 키

데이터 중복을 피하기 위해 테이블 사이의 관계를 규명하기 위한 필수 요소

ex) 사원정보 테이블의 부서코드

 

4. 복합키

여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키

ex) 사원번호 데이터가 손실 된 경우 : 사원이름 + 부서코드로 복합키 만듦: Adam10 Beny20 Chen10

 

 


 

 

# 자료형

어떤 형태의 데이터인지

문자형 CHAR(n) n 만큼의 문자열, 메모리 공간 고정
400byte만큼의 고정 길이 문자열 데이터 저장(최소크기 1byte)
VARCHAR(n)
VARCHAR2(n)
n 만큼의 문자열, 메모리 공간 가변
400byte만큼의 가변 길이 문자열 데이터 저장(최소크기 1byte)
숫자형 NUMBER()
NUMBER(a, b)
±38자릿수의 숫자를 저장할 수 있음
(a: 전체 자리수, b: 소수점 아래 자리수)
날짜형 DATE 세기, 연, 월, 일, 시, 분, 초 ... 
그 외 BLOB 최대 크기 4GB의 대용량 이진 데이터 저장
CLOB 최대 크기 4GB의 대용량 텍스트 데이터 저장
BFILE 최대 크기 4GB의 대용량 이진 데이터 파일 저장

 

9999

> NUMBER(4) → 9999
> NUMBER(4,1) → 999.9

 


 

자료형 예시

SCOTT 테이블 예시

 

 

EMP 테이블로 예시를 들어보겠습니다.

 

 

 이름                                             널?      유형
 ----------------------------------------- -------- ----------------------------
 EMPNO                                 NOT NULL          NUMBER(4)
 ENAME                                                             VARCHAR2(10)
 JOB                                                                   VARCHAR2(9)
 MGR                                                                  NUMBER(4)
 HIREDATE                                                         DATE
 SAL                                                                   NUMBER(7,2)
 COMM                                                              NUMBER(7,2)
 DEPTNO                                                          NUMBER(2)

 

EMPNO
부서번호
NOT NULL
NUMBER(4)
기본키
네자리 숫자
ENAME
부서이름
VARCHAR2(10) 10개의 문자
문자를 입력받을 칸이 10개
JOB
직업
VARCHAR2(9) 9개 이하
MGR

NUMBER(4) 네자리 숫자
HIREDATE
입사날짜
DATE 입사날짜
2019/20/12 2023-08-29
SAL
연봉
NUMBER(7, 2) 7자리 숫자인데
소숫점 2자리까지
COMM
추가수당
NUMBER(7, 2) 7자리 숫자인데
소숫점 2자리까지
DEPTNO
부서번호
NUMBER(2) 두자리 숫자

 

 

'DataBase' 카테고리의 다른 글

[DataBase] SQL : DML (SELECT)  (0) 2023.08.29
[OracleDB] Toad 설치  (0) 2023.08.29
[DataBase] Intro  (0) 2023.08.29
[OracleDB] Oracle 학습용 SCOTT 계정 설정  (0) 2023.08.29
[OracleDB] Oracle Database 19c 설치  (0) 2023.08.28