DataBase/Mysql

[MySQL] "DB" SQL 이란

민돌v 2021. 5. 7. 17:40

SQL

SQL은 관계대수와 관계해석을 기반을 집단함수, 그룹화, 갱신 연산등을 추가하여 개발한 언어이다.

1. SQL은 비절차적인 언어

sql은 비절차적인 언어로서 자시니 원하는 데이터만을 명시하고 어떻게(How) 수행할지는 명시할 수 없다.

  • 관계 DBMS는 사용자가 입력한 SQL문을 번역하여 사용자가 요구한 데이터를 찾는데 필요한 모든 과정을 담당한다.
  • SQL문은 자연어에 가까운 구문을 사용하여 질의를 표현할 수 있으며 2가지 인터페이스를 제공한다.

 

😋 Interface

1) 대화식 SQL

: 주로 DBA가 사용하는 것, 뷰와 테이블을 다룬다.

2) 내포된 SQL

: 호스트언어에 SQL을 포함하는 것, 호스트언어와 GUI를 이용하여 프로그램을 작성할 수 있게 된다.


2. SQL은 데이터 정의어, 조작어, 제어어를 가지고 있다.

1) 데이터 정의어

뷰나 테이블을 나타냅니다. 뷰는 사용자에게 편의를 제공하며 보안의 효율성이 우수하다.

- 데이터 정의어의 종류로는 Create/ Alter/ Drop이 있다.

 

2) 데이터 조작어 (CRUD)

검색, 추가, 삭제, 수정 등을 조작할 수 있습니다.

 

3) 데이터 제어어

객체 무결성 조건으로 데이터 불일치가 되는 현상을 제어하는 역할을 할 수 있습니다.

⇨ 무결성 제약조건

테이블 생성시 제약조건을 사용하면, 입력하는 자료에 대해서 제약, 규칙을 정할 수 있다.

(만약, 제약에 배반된다면 오류가 나타난다.)

- 무결성을 보장함으로써 "데이터 불일치" 및 "중복 저장" 등을 해결

- 제약 조건으로는 NOT NULL, UNIQUE, PRIMART KEY, FOREIGN KEY, CHECK 등이 존재한다.

FOREIGN KEY 옵션

1) on delete no action : 오류 발생시 롤백

2) on delete Cascade : 부모테이블 삭제시 참조테이블도 삭제

3) on delete Set Null : 부모테이블 삭제시 참조테이블 NULL

4) on delete set default : 부모테이블 삭제시 기본값 설정

5) on delete Restict : 자식테이블에 데이터있을시 부모테이블 삭제 불가