BDA X 영진닷컴 4주차 학습내용

velvety_o3s·2024년 11월 18일
post-thumbnail

1. 데이터 정의어 (DDL: Data Definition Language)

데이터베이스와 관련된 구조를 정의하고 관리하는 명령어입니다.

(1) CREATE

데이터베이스 객체(테이블, 뷰, 인덱스 등)를 생성합니다.
예시: 테이블 생성

CREATE TABLE 테이블명 (
컬럼명 데이터타입 [제약조건],
...
);

(2) ALTER

기존 데이터베이스 객체의 구조를 변경합니다.
예시: 컬럼 추가

ALTER TABLE 테이블명
ADD 컬럼명 데이터타입 [제약조건];

(3) DROP

데이터베이스 객체를 삭제합니다.
예시: 테이블 삭제

DROP TABLE 테이블명;

(4) TRUNCATE

테이블의 모든 데이터를 삭제하되, 테이블 구조는 유지합니다.

TRUNCATE TABLE 테이블명;

2. 데이터 제어어 (DCL: Data Control Language)

데이터에 대한 접근 권한을 제어하는 명령어입니다.

(1) GRANT

사용자에게 특정 권한을 부여합니다.
예시: SELECT 권한 부여

GRANT SELECT ON 테이블명 TO 사용자명;

(2) REVOKE

사용자에게 부여한 권한을 회수합니다.
예시: SELECT 권한 회수

REVOKE SELECT ON 테이블명 FROM 사용자명;

3. 트랜잭션 제어어 (TCL: Transaction Control Language)

데이터베이스의 트랜잭션을 제어하는 명령어입니다.

(1) COMMIT

트랜잭션에서 수행한 작업을 영구적으로 반영합니다.

COMMIT;

(2) ROLLBACK

트랜잭션에서 수행한 작업을 취소하고 이전 상태로 되돌립니다.

ROLLBACK;

(3) SAVEPOINT

트랜잭션 내에서 복구 가능한 지점을 설정합니다.

SAVEPOINT 저장점명;

(4) SET TRANSACTION

트랜잭션의 특성을 설정합니다. (예: 격리 수준 설정)

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

4. 뷰(View)와 인덱스(Index)

(1) 뷰(View)

SQL 쿼리의 결과를 저장하는 가상의 테이블입니다.
읽기 전용으로 데이터를 조회할 때 주로 사용됩니다.

CREATE VIEW 뷰명 AS
SELECT 컬럼명1, 컬럼명2
FROM 테이블명
WHERE 조건;

(2) 인덱스(Index)

테이블 검색 성능을 향상시키기 위해 사용하는 구조입니다.

CREATE INDEX 인덱스명
ON 테이블명 (컬럼명);

5. 제약 조건(Constraints)

테이블 생성 시 데이터를 제약하기 위해 사용됩니다.

NOT NULL : NULL 값을 허용하지 않음 컬럼명 데이터타입
UNIQUE : 중복 값을 허용하지 않음 컬럼명 데이터타입
PRIMARY KEY : NOT NULL + UNIQUE 기본 키 설정
FOREIGN KEY : 외래 키, 다른 테이블 참조
CHECK : 조건을 만족하는 값만 입력 가능
DEFAULT : 기본값 설정 컬럼명 데이터타입

6. SQL 관리 구문 사용 시 주의 사항

(1) DROP 명령은 객체를 완전히 삭제하므로 신중하게 사용해야 합니다.
(2) GRANT와 REVOKE로 권한을 적절히 관리해 보안 사고를 방지해야 합니다.
(3) 트랜잭션 명령어(TCL)는 데이터 무결성과 복구 가능성을 보장합니다.
(4) 인덱스는 검색 속도는 향상시키지만, 삽입/삭제 작업에서는 성능 저하를 유발할 수 있으므로 사용 시 고려가 필요합니다.

profile
데이터분석가를 꿈꾸는 대학생

0개의 댓글