728x90
SMALL
- 이번에는 DML과 TCL에 이어 나머지 명령어인 DDL, DCL에 대해 알아보겠습니다!
DDL(Data Definition Language)이란?
- DDL은 말 그대로 데이터 정의 언어로, 데이터베이스 스키마를 생성, 변경, 삭제하는 데 사용되는 SQL 명령어의 집합입니다.
- 데이터베이스의 구조를 정의하는 데 필수적인 명령어로, 테이블, 컬럼, 제약조건 등 데이터베이스 객체의 생성 및 관리에 사용됩니다.
✅ CREATE
- CREATE 명령어는 새로운 데이터베이스, 테이블, 인덱스 등의 데이터베이스 객체를 생성하는 데 사용됩니다.
- 가장 기본적인 사용법은 테이블을 아래와 같이 생성하는 것입니다.
CREATE TABLE 테이블명 (
컬럼명1 데이터타입 [제약조건(DEFAULT / NULL 여부)],
컬럼명2 데이터타입 [제약조건(DEFAULT / NULL 여부)],
...
);
✅ 테이블 생성 시 지켜야 할 규칙 7가지!
- 테이블명은 고유해야 합니다.
- 한 테이블 내에서 컬럼명은 고유해야 합니다.
- 컬럼명 뒤에 데이터 유형과 데이터 크기가 명시되어야 합니다.
- 컬럼에 대한 정의는 괄호 안에 기술합니다.
- 각 컬럼들은 콤마로 구분됩니다.
- 테이블명과 컬럼명은 숫자로 시작될 수 없습니다.
- 마지막은 세미콜론으로 끝냅니다.
✅ 제약조건의 종류 5가지!
- 제약조건은 데이터의 정확성과 무결성을 유지하기 위해 테이블에 부여할 수 있는 규칙이나 조건입니다.
- PRIMARY KEY: 테이블 내에서 각 행을 유일하게 식별하는 컬럼이나 컬럼의 집합입니다. 한 테이블에 하나씩만 정의 가능하며 PK로 지정된 컬럼에는 NULL 값이 입력될 수 없고 자동으로 UNIQUE 인덱스로 생성됩니다.
- UNIQUE KEY: PRIMARY KEY와 유사하지만, NULL 값이 허용됩니다.
- CHECK: 컬럼 값이 특정 조건을 만족해야 한다는 규칙을 정의합니다.
- NOT NULL: 해당 컬럼이 NULL 값을 허용하지 않음을 나타냅니다.
- FOREIGN KEY: 다른 테이블의 키를 참조하여 두 테이블 간의 관계를 정의합니다.
✅ 참조 무결성 규정 관련 옵션 5가지!
- CASCADE: Parent 값 삭제 시 Child 값이 같이 삭제됩니다.
- SET NULL: Parent 값 삭제 시 Child의 해당 컬럼이 NULL로 처리됩니다.
- SET DEFAULT: Parent 값 삭제 시 Child의 해당 컬럼이 DEFAULT 값으로 처리됩니다.
- RESTRICT: Child 테이블에 해당 데이터가 PK로 존재하지 않는 경우에만 Parent 값 삭제 및 수정이 가능합니다.
- NO ACTION: 참조 무결성 제약이 걸려있는 경우 삭제 및 수정이 불가합니다.
✅ ALTER 관련 명령어 7가지!
- ALTER 명령어는 기존의 데이터베이스 객체를 수정하는 데 사용됩니다.
- 테이블의 구조를 변경하거나 제약조건을 추가, 삭제하는 등의 작업을 수행할 수 있습니다.
- ADD COLUMN: 새로운 컬럼을 테이블에 추가합니다. (ALTER TABLE 테이블명 ADD 컬럼명 데이터 유형;)
- DROP COLUMN: 테이블에서 컬럼을 삭제합니다. (ALTER TABLE 테이블명 DROP COLUMN 컬럼명;)
- MODIFY COLUMN: 컬럼의 데이터타입을 변경하거나 제약조건을 수정합니다. (ALTER TABLE 테이블명 MODIFY (컬럼명1 데이터 유형 [DEFAULT 값] [NOT NULL], 컬럼명2 데이터 유형 ...);)
- RENAME COLUMN: 컬럼의 이름을 변경합니다. (ALTER TABLE 테이블명 RENAME COLUMN 변경할 컬럼명 TO 변경할 이름;)
- ADD CONSTRAINT: 테이블에 새로운 제약조건을 추가합니다.
- DROP TABLE: 테이블을 삭제합니다. 만약 해당 테이블을 참조하고 있는 다른 테이블이 존재하는 경우, CASCADE 옵션을 명시하지 않으면 삭제되지 않습니다. (DROP TABLE 테이블명 [CASCADE CONSTRAINT];)
- TRUNCATE TABLE: 테이블의 모든 데이터를 삭제하지만, 테이블 구조와 제약조건은 유지합니다.
DCL(Data Control Language)이란?
- DCL은 데이터 제어 언어로, 데이터베이스 사용자의 권한을 관리하는 데 사용되는 SQL의 일부입니다.
- 이를 통해 데이터베이스 관리자는 사용자와 역할에 대한 접근 권한을 설정, 변경, 제거할 수 있습니다.
- 주로 사용되는 DCL 명령어는 사용자 관리, 권한 부여 및 철회, 그리고 역할 관리와 관련이 있습니다.
✅ USER 관련 명령어 3가지!
- CREATE USER: 새로운 데이터베이스 사용자를 생성합니다. 사용자 이름과 암호, 그리고 필요한 경우 추가 옵션을 지정할 수 있습니다. (CREATE USER 사용자명 IDENTIFIED BY 암호;)
- ALTER USER: 기존 데이터베이스 사용자의 속성을 변경합니다. 암호 변경이 가장 일반적인 경우입니다.
- DROP USER: 데이터베이스에서 사용자를 삭제합니다. 이 명령은 사용자가 소유한 모든 객체와 데이터를 함께 제거할 수 있으므로 주의해서 사용해야 합니다. (DROP USER 사용자명;)
✅ 권한 관련 명령어 2가지!
- GRANT: 사용자나 역할에 데이터베이스의 특정 권한을 부여합니다. 이 명령어는 객체 권한(테이블, 뷰에 대한 접근 권한)과 시스템 권한(데이터베이스 내에서 수행할 수 있는 작업의 권한) 모두에 사용될 수 있습니다. (GRANT 권한 TO 사용자명;)
- REVOKE: 사용자에게 권한을 회수하는 명령어입니다. (REVOKE 권한 FROM 사용자명;)
✅ ROLE 관련 명령어
- ROLE은 관련 권한의 집합으로, 하나의 ROLE을 통해 여러 권한을 사용자에게 간편하게 부여하거나 철회할 수 있습니다.
CREATE ROLE 역할명;
GRANT 권한 TO 역할명;
GRANT 역할명 TO 사용자명;
728x90
LIST
'자격증 > SQLD' 카테고리의 다른 글
관리 구문 (1) (3) | 2024.03.07 |
---|---|
SQL 활용 (4) (3) | 2024.03.06 |
SQL 활용 (3) (0) | 2024.03.05 |
SQL 활용 (2) (0) | 2024.03.05 |
SQL 활용 (1) (2) | 2024.02.27 |