데이터베이스 언어의 필요
- 데이터베이스 시스템이 하는 일 : 데이터 관리와 데이터 사용에서 발생할 수 있는 문제를 원천적으로 차단하기 위해 분리하고 중지하는 것
- DBMS에게 명령함
SQL의 개요
- Structured Query Language는 관계대수에 기초하여 RDBMS의 데이터 관리를 위해 설계된 언어
- 특징
- 비절차적(선언형), 필요한 데이터만 기술
SQL의 구성
- 데이터정의언어(DDL)
- 데이터베이스내의 객체를 생성 및 삭제하고 그 구조를 조작하는 명령어의 집합
- 데이터가 준수해야하는 제약조건을 기술
- CREATE, ALTER, DROP 문 등
- 데이터조작언어(DML)
- DDL에 의해 정의된 테이블에 데이터를 조작하는 명령어의 집합
- 데이터에 대한 CRUD 명령을 포함
- INSERT, UPDATE, DELETE, SELECT
데이터 정의 언어
- 데이터베이스 객체를 생성, 삭제 또는 구조를 수정하는 명령어의 집합
- 데이터베이스 객체의 종류
- 데이터 저장 : 테이블, 인덱스, 뷰
- 데이터 조작 : 트리거, 프로시저, 함수 등
- 데이터 정의 명령어의 종류
- CREATE : 객체 생성
- ALTER : 객체 변경
- DROP : 객체 삭제
데이터 정의 언어의 구분 형식
명령어+객체로 명령 전달
스키마 정의
- 스키마 === 데이터베이스
- 한 조직의 데이터베이스 시스템의 운영이 필요한 데이블, 인덱스, 뷰 등의 데이터베이스 객체의 집합
- 스키마 관리방법
- Forward Engineer
- SQL 에디터
- 내비게이터패널
스키마 관리 구문 형식
- 스키마 생성
- 스키마 삭제
- ALTER SCHEMA는 거의 사용하지 않고, DROP 후 다시 만듦
테이블 정의
- 새로운 2차원 형태의 테이블의 생성
데이터 타입의 개념
- 컬럼이 가질 수 있는 값의 범위, 즉 도메인을 결정
- 프로그래밍 언어에서의 변수를 생성하는 데이터 타입의 사용목적과 방법이 매우 유사
- 기본 데이터 타입
정수 데이터 타입
-> 공간 효율성
실수 데이터 타입
날짜 및 시간 데이터 타입
문자 데이터 타입
-> CHAR는 공간 낭비 있음
-> VARCHAR는 검색의 속도가 느릴 수 있음, 관리의 어려움 있음
- 4000자가 max
테이블 수정
- 생성된 테이블에 컬럼을 추가, 수정(이름, 데이터 타입, 제약조건) 또는 삭제하는 명령
- 컬럼 삭제 또는 컬럼의 데이터 타입 수정시 데이터에 대한 소실이 발생할 수 있음
- 테이블 수정 방법
테이블 수정 구문 형식
- 새로은 컬럼을 추가, 삭제 및 수정하는 등의 테이블 구조를 변경
테이블 삭제
- 존재라는 테이블을 스카마에서 삭제
- 삭제할 테이블의 모든 데이터가 소실, 복구 불가능
- 테이블 삭제 방법
- SQL 구문
- 내비게이터 패널
제약조건
- 테이블과 테이블에 존재하는 데이터를 보다 무결하게 관리 목적
- 테이블 조작시 정의된 제약조건 만족여부 지속적 검사
- 다양한 제약 조건 지원
제약조건의 종류