Reference
🙇🏻♂️ 스스로 다시 보려고 기록하는 내용입니다
데이터베이스 언어의 필요

- 데이터베이스 시스템이 하는 일: 데이터 관리와 데이터 사용에서 발생할 수 있는 문제를 원천적으로 차단하기 위해 분리하고 중지하는 것
- DBMS에게 명령
SQL의 개요
- Structured Query Language는 관계대수에 기초하여 RDBMS의 데이터 관리를 위해 설계된 언어
- 특징
- 선언헝(비절차적)
- 필요한 데이터만 기술
- 인간의 언어와 매우 유사
- 간단 명료
SQL의 구성
- 데이터정의언어 (DDL)
- 데이터베이스내의 객체를 생성 및 삭제하고 그 구조를 조작하는 명령어의 집합
- 데이터가 준수해야하는 제약조건을 기술
- CREATE, ALTER, DROP문 등
- 데이터 조작언어 (DML)
- DDL에 의해 정의된 테이블에 데이터를 조작하는 명령어의 집합
- 데이터에 대한 CRUD 명령을 포함
- INSERT, UPDATE, DELETE, SELECT
데이터 정의 언어
- 데이터베이스 객체를 생성, 삭제 또는 구조를 수정하는 명령어의 집합
- 데이터베이스 객체의 종류
- 데이터 저장: 테이블, 인덱스, 뷰
- 데이터 조작: 트리거, 프로시저, 함수 등
- 데이터 정의 명령어의 종류
- CREATE: 객체 생성
- ALTER: 객체 변경
- DROP: 객체 삭제
데이터 정의 언어의 구분 형식

스키마 정의
- 스키마 == 데이터베이스
- Schem, Table 차이점
- Schem : 외부, 개념, 내부 스키마 -> 제약조건, 무결성 규칙, 테이블, 열과 형
- Table : 행과 열의 데이터 집합
- 한 조직의 데이터베이스 시스템의 운영이 필요한 테이블, 인덱스, 뷰 등의 데이터베이스 객체의 집합
- 스키마 관리방법
- Forward Engineer
- SQL 에디터
- 내비게이터패널
스키마 관리 구문 형식
- 스키마 생성
- 스키마 삭제
- DROP SCHEMA 스키마명
- ALTER SCHEMA는 거의 사용하지 않고, DROP후 다시 생성
테이블 정의
- 새로운 2차원 형태 테이블 생성


데이터 타입의 개념
- 도메인을 결정 ( 컬럼이 가질 수 있는 값의 범위 )
- 프로그래밍 언어에서의 변수를 생성하는 데이터 타입의 사용목적과 방법이 매우 유사
- 기본 데이터 타입

정수 데이터 타입

-> 공간 효율성
실수 데이터 타입

날짜 및 시간 데이터 타입

문자 데이터 타입

- CHAR는 공간 낭비가 존재
- VARCHAR는 검색 속도 저하, 관리의 어려움 존재
- 4000자가 max

테이블 수정
- 생성된 테이블에 컬럼을 추가, 수정 (이름, 데이터 타입, 제약조건) 또는 삭제하는 명령
- 컬럼 삭제 또는 컬럼의 데이터 타입 수정시 데이터에 대한 소실이 발생할 수 있음
- 테이블 수정 방법
- SQL 구문
- 내비게이터 패널

테이블 수정 구문 형식
- 새로운 컬럼을 추가, 삭제 및 수정하는 등의 테이블 구조로 변경

테이블 삭제
- 존재하는 테이블을 스키마에서 삭제
- 삭제할 테이블의 모든 데이터가 소실, 복구 불가능
- 테이블 삭제 방법
- SQL 구문
- 내비게이터 패널

제약조건
- 테이블과 테이블에 존재하는 데이터를 보다 무결하게 관리 목적
- 테이블 조작시 정의된 제약조건 만족여부 지속적 검사
- 다양한 제약 조건 지원
제약조건의 종류

