1. SQL의 종류
1) DDL(Data Definition Language): 데이터를 정의할 때 사용하는 언어로, 테이블이나 데이터베이스를 생성, 수정, 삭제와 같은 행위를 할 때 사용합니다.
i) CREATE
ATABASE, TABLE, VIEW, INDEX 등을 생성할 때 사용합니다.
ii) DROP
DATABASE, TABLE, VIEW, INDEX 등을 삭제할 때 사용합니다.
iii) ALTER
DATABASE, TABLE 등의 속성을 변경할 때 사용합니다.
2) DML(Data Manipulation Language): 데이터베이스에서 데이터를 조작할 때 사용하는 언어로 데이터의 저장, 삭제, 수정, 조회와 같은 행위를 합니다.
i) SELECT
일반적으로 TABLE에서 원하는 데이터들을 조회할 때 사용합니다. DB를 관리하면서 가장 많이 사용하는 명령어이기도 합니다!
ii) INSERT
TABLE에 새로운 데이터들을 삽입할 때 사용합니다.
iii) DELETE
TABLE에서 특정한 조건에 맞는 데이터들을 삭제할 때 사용합니다. WHERE 조건이 없다면, 모든 데이터가 삭제됩니다.
iv) UPDATE
TABLE에서 특정한 조건에 맞는 데이터들을 수정할 때 사용합니다.
3) DCL(Data Control Language): 데이터베이스에 대한 권한과 관련된 문법으로 특정 유저가 DB에 접근할 수 있는 권한을 설정할 때 사용합니다.
i) GRANT
데이터베이스의 특정한 유저에게 사용 권한을 부여할 때 사용합니다. SELECT, INSERT, DELETE, UPDATE 등 다양한 종류가 존재합니다.
ii) REVOKE
데이터베이스의 특정한 유저에게 사용 권한을 취소할 때 사용합니다.
4) TCL (Transaction Control Language): 데이터베이스 내의 트랜잭션을 관리하는 문법으로, 트랜잭션의 시작과 종료, 그리고 롤백을 수행할 때 사용합니다.
i) COMMIT : 데이터베이스의 작업이 정상적으로 완료되었음을 관리자에게 알려줄 때 사용합니다.
ii) ROLLBACK : 데이터베이스의 작업이 비정상적으로 완료되었음을 관리자에게 알려줄 때 사용합니다. 작업 중 오류가 발생한 경우 이를 취소하고, 이전 상태로 되돌릴 때 사용합니다.
2. SQL의 제약조건
데이터베이스에서 제약 조건(Constraint)은 매우 중요한 역할을 담당한다. 제약 조건은 여러분들이 데이터베이스 테이블을 분석할 때 설정된 컬럼의 속성을 바탕으로 해당 테이블이 어떤 역할을 하는지, 어떤 데이터를 저장하고 있는지 명확하게 인지할 수 있게 도와준다.
제약 조건(Constraint)은 각 컬럼들간의 제한사항을 관리하고, 조건을 위반하는 데이터를 방지하여 데이터베이스의 무결성(Integrity)을 보장하는 규칙입니다.
→ 무결성(Integrity)은 데이터가 결함없이 정확하고 완전한 상태를 의미합니다.
1) 제약조건의 종류
i) 고유(Unique) 제약 조건 (Unique)
테이블에 소속된 특정 컬럼이 중복된 키를 가질 수 없는 조건
사용자 아이디, 이메일과 같은 고유한 정보를 저장할 때 사용합니다.
ii) NULL 제약 조건 (Null)
특정 컬럼이 아무런 값을 입력받지 않도록 설정하거나, 무조건 값을 입력 받도록 설정하는 조건
데이터가 없다면, NULL을 저장하여, 데이터가 존재하지 않다는것을 표현합니다.
iii) 기본 키 (Primary Key) 제약 조건 (Primary Key)
테이블 내에서 각 **행(row)**을 고유하게 식별할 수 있도록 보장하는 조건
iv) 외래 키 (Foreign Key) 제약 조건 (Foreign Key)
데이터베이스를 설계할 때 가장 많은 고민을 하게 될 테이블 간의 관계를 설정하는 조건
한 테이블의 컬럼(Column)이 다른 테이블의 특정 행(Row)을 참조하도록 설정하는 조건.
2) 연계 참조 무결성 제약 조건의 종류
외래 키의 경우 다른 테이블과 관계를 맺고 있는 참조 데이터가 삭제(DELETE)또는 수정(UPDATE)될 때 어떤 행위를 해야하는지 설정할 수 있습니다. 이런 행위를 수행하는 조건을 연계 참조 무결성 제약 조건이라고 정의합니다.
i) CASCADE
참조하고 있는 개체가 변경/삭제 될 경우 함께 변경/삭제됩니다.
ex) 사용자가 삭제된다면, 그 사용자의 모든 주문 내역도 삭제됩니다.
ii) NO ACTION
참조하고 있는 개체가 변경/삭제 될 경우 아무런 행위를 하지 않고 에러가 발생하게됩니다.
ex) 사용자를 삭제할 때, 사용자의 주문 내역이 아직 존재한다면, 삭제를 막습니다.
iii) SET NULL
참조하고 있는 개체가 변경/삭제 될 경우 현재 데이터를 NULL로 변경합니다.
ex) 사용자가 삭제되면, 사용자의 주문 내역의 ‘사용자 ID’는 NULL로 변경됩니다.
iv)SET DEFAULT
참조하고 있는 개체가 변경/삭제 될 경우 현재 데이터를 기본 값으로 변경합니다.
ex) 사용자가 삭제되면, 사용자의 주문 내역의 ‘사용자 ID’는 기본 값으로 변경됩니다.
'Sparta > TIL' 카테고리의 다른 글
24.01.29 TIL - 세션, JWT (0) | 2024.01.30 |
---|---|
23.01.26 TIL - Prisma(1) (0) | 2024.01.29 |
24.01.24 TIL - MySQL(1) (1) | 2024.01.24 |
24.01.23 TIL- ubuntu (0) | 2024.01.23 |
24.01.22 TIL- EC2 (0) | 2024.01.23 |