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
자료형 예시
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 |