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 : 자식테이블에 데이터있을시 부모테이블 삭제 불가
'DataBase > Mysql' 카테고리의 다른 글
Mysql Workbench로 import/ export 하기 (데이터 내보내기, 데이터 가져오기) (0) | 2021.07.22 |
---|---|
Python 이용하여 Mysql에서 Json 데이터 Insert하기 (json 데이터 삽입) (3) | 2021.05.18 |
[MySQL]"DB" 제약 조건, 뷰, 트랜젝션 (0) | 2021.05.07 |
[MySQL] "DB" 조인(Join)과 다중 테이블 연산 (0) | 2021.05.07 |
[MySQL] "DB" 관계대수와 SQL (0) | 2021.05.07 |