
SQL?
- 관계 데이터베이스를 위한 표준 질의어
- 비절차적 데이터 언어
SQL 분류

- 데이터 정의어(DDL)
: 테이블을 생성하고 변경제거하는 기능을 제공
- 데이터 조작어(DML)
: 테이블에 새 데이터를 삽입하거나, 테이블에 저장된 데이터를 수정,삭제,검색 하는 기능을 제공
- 데이터 제어어(DCL)
: 보안을 위해 데이터에 대한 접근 및 사용권한을 사용자별로 부여하거나 취소 하는 기능을 제공
데이터 정의 기능
테이블 생성, 변경 삭제 가능
CREATE TABLE
테이블 생성

- [ ]의 내용은 생략이 가능
- SQL 질의문은 세미콜론(;)으로 문장의 끝을 표시
- SQL 질의문은 대소문자를 구분하지 않음
속성 정의
NOT NULL
- 속성이 널 값을 허용하지 않음을 의미하는 키워드
- 예) 고객아이디 VARCHAR(20) NOT NULL
DEFAULT
- 속성의 기본 값을 지정하는 키워드
- 예) 적립금 INT DEFAULT 0
- 예) 담당자 VARCHAR(10) DEFAULT ‘방경아
키의 정의
PRIMARY KEY
- 기본키를 지정하는 키워드
- 예) PRIMARY KEY(고객아이디)
- 예) PRIMARY KEY(주문고객, 주문제품)
UNIQUE
- 대체키를 지정하는 키워드
- 대체키로 지정되는 속성의 값은 유일성을 가지며 기본키와 달리 널 값이 허용됨
- 예) UNIQUE(고객이름)
FOREIGN KEY
- 외래키를 지정하는 키워드
- 외래키가 어떤 테이블의 무슨 속성을 참조하는지 REFERENCES 키워드 다음에 제시
ALTER TABLE
테이블 변경
- 새로운 속성을 추가하는 경우

-
기존에 존재하는 속성을 삭제하는 경우

-
새로운 제약조건을 추가하는 경우

-
기존 제약조건을 삭제하는 경우

DROP TABL## DROP TABL우E
테이블 삭제

‼️ 만약, 삭제할 테이블을 참조하는 테이블이 있다면?
- 테이블 삭제가 수행되지 않음
- 관련된 외래키 제약조건을 먼저 삭제해야 함
데이터 조작 기능
데이터 검색, 새로운 데이터 삽입, 데이터 수정, 데이터 삭제
SELECT
데이터 검색 기능

- SELECT 키워드와 함께 검색하고 싶은 속성의 이름을 나열
- FROM 키워드와 함께 검색하고 싶은 속성이 있는 테이블의 이름을 나열
- 검색 결과는 테이블 형태
ALL
- 결과 테이블이 투플의 중복을 허용하도록 지정, 생략 가능
DISTINCT
- 결과 테이블이 투플의 중복을 허용하지 않도록 지정
AS
- 결과 테이블에서 속성의 이름을 바꾸어 출력 가능
산술식
- SELECT 키워드와 함께 산술식 제시
- 속성의 이름과 +, -, *, / 등의 산술 연산자와 상수로 구성
- 속성의 값이 실제로 변경되는 것은 아니고 결과 테이블에서만 계산된 결과 값이 출력
INSERT
데이터 삽입

- INTO 키워드와 함께 투플을 삽입할 테이블의 이름과 속성의 이름을 나열
- 속성 리스트를 생략하면 테이블을 정의할 때 지정한 속성의 순서대로 값이 삽입됨
- VALUES 키워드와 함께 삽입할 속성 값들을 나열
- INTO 절의 속성 이름과 VALUES 절의 속성 값은 순서대로 일대일 대응되어야 함
UPDATE
데이터 수정
테이블에 저장된 투플에서 특정 속성의 값을 수정

- SET 키워드 다음에 속성 값을 어떻게 수정할 것인지를 지정
- WHERE 절에 제시된 조건을 만족하는 투플에 대해서만 속성 값을 수정
- WHERE 절을 생략하면 테이블에 존재하는 모든 투플을 대상으로 수정
DELETE
테이블에 저장된 데이터를 삭제

- WHERE 절에 제시한 조건을 만족하는 투플만 삭제