본문 바로가기
  • hello world
DataBase

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

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. 기본키

테이블에 저장된 유일한 값

중복된 값이 없어야함

NULL, None 값은 가질 수 없다

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

 

2. 보조키 (대체키 alternate key, 후보키 candidate key)

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

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

 

3. 외래키 

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

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

 

4. 복합키

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

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

 

 


 

 

# 자료형

문자형 CHAR(n) n 만큼의 문자열, 메모리 공간 고정
VARCHAR(n)
VARCHAR2(n)
n 만큼의 문자열, 메모리 공간 가변
숫자형 NUMBER()
NUMBER(a,b)
a: 전체 자리수
b: 소수점 아래 자리수
날짜형 DATE 세기, 연, 월, 일, 시, 분, 초 ... 
그 외 BLOB 2진 데이터
CLOB 대용량 텍스트
BFILE 파일

 

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)  
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