본문 바로가기

Sparta/TIL

24.01.25 TIL - SQL(2)

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