[ 2과목 – 3. 관리 구문 ]
* DML
- Data Manipulation Language란 의미로 데이터를 입력하고, 입력된 데이터를 수정, 삭제, 조회하는 명령어
- DML 명령서 사용 후 별도의 COMMIT 명령어를 실행시켜야만 데이터가 반영되고 ROLLBACK이 가능
* DML 종류
(1) INSERT
- 테이블에 데이터를 입력하는 명령어. 입력할 데이터가 컬럼의 데이터 타입과 맞지 않을 경우 묵시적으로
형변환을 한 후 입력
- 만약 형변환을 해도 데이터 타입에 안 맞을 경우 에러가 발생
INSERT INTO 테이블명(컬럼1, 컬럼2, ...) VALUES (데이터1, 데이터2, ...)
(2) UPDATE
- WHERE절을 사용해 이미 저장된 특정 데이터를 수정하고 싶을 때 사용하는 명령어
- 수정하고 싶은 컬럼이 많으면 SET절에 ,(콤마)로 컬럼을 이어서 사용
(SET 컬럼명1 = 데이터, 컬럼명2 = 데이터, ...)
(3) DELETE
- WHERE절을 사용해 이미 저장된 특정 데이터를 삭제할 때 사용하는 명령어
- 테이블 전체 데이터를 삭제할 때 TRUNCATE 명령어가 시스템 부하 측면에서 유리하지만 ROLLBACK은
불가능(DELETE는 COMMIT 전 ROLLBACK 가능)
(4) MERGE
- 테이블에 새로운 데이터를 입력하거나 이미 저장되어 있는 데이터의 변경 작업을 한 번에 할 수 있는 명령어
MERGE INTO 타깃 테이블명 USING 비교 테이블명 ON 조건 WHEN MATCHED THEN UPDATE SET 컬럼명1 = 새로운 데이터, 컬럼명2 = 새로운 데이터, ... WHEN NOT MATCHED THEN INSERT (컬럼명1, 컬럼명2, ...) VALUES(데이터1, 데이터2, ...) |
* 와일드카드
- * : 모든
- % : 모든
- - : 한 글자
* TCL
- 트랜잭션을 제어하는 명령어로 트랜잭션은 더 이상 쪼개질 수 없고 한 그룹으로 묶이는 논리적인 업무 단위
* 트랜잭션의 특징
(1) 원자성
- 트랜잭션으로 묶인 일련의 동작들은 모두 성공해야 하거나 실패해야 함
(2) 일관성
- 트랜잭션이 완료된 후에도 데이터베이스가 가진 데이터에 일관성이 있어야 함
(3) 고립성
- 한 번에 하나의 트랜잭션만 수행 가능함. 다른 트랜잭션이 수행 중이면 그 트랜잭션이 끝나고 나서 수행 가능
(4) 지속성
- 트랜잭션이 성공적으로 수행이 되면 모든 트랜잭션이 로그에 남겨진 뒤 COMMIT 되어야 함
* TCP 종류
(1) COMMIT
- 데이터 입력, 삭제, 수정 후 변경된 내용을 최종적으로 데이터 파일에 저장하는 명령어
- COMMIT 하지 않으면 휘발성인 메모리에만 저장하기 때문에 변경된 사항이 사라질 수 있고 다른 사용자가
변경된 데이터를 조회할 수 없음
(2) ROLLBACK
- 변경된 사항을 취소하는 명령어로 ROLLBACK하면 변경하기 이전 데이터로 복구됨
(3) SAVEPOINT
- ROLLBACK 뒤에 특정 SAVEPOINT를 지정하면 그 지점까지만 이전 데이터로 복구함
* DDL
- Data Definition Language란 의미로 데이터를 정의하고 테이블 안에 들어갈 데이터의 유형도 같이 정의=
- 묵시적으로 동시에 COMMIT이 사용됨
* DDL 데이터 유형
(1) 문자
- CHAR : 크기가 정의된 만큼 고정이고 빈 공간을 문자로 인식하지 않음
- VARCHAR : 크기가 정의된 것보다 작을 수 있고 빈 공간을 문자로 인식함
- CLOB
(2) 숫자 - NUMBER
(3) 날짜 – DATE
* DDL 종류
(1) CREATE
- 테이블을 생성하는 명령어
- CREATE TABLE 테이블명 (컬럼명1 데이터 타입(DEFAULT / NULL / NOT NULL), ...);
- CREATE TABLE 테이블명 AS SELECT * FROM 복사할 테이블명 (테이블 복사해서 생성)
* 테이블 생성 규칙
㉮ 각 컬럼들은 ,로 구분되고 ;로 끝난다.
㉯ 한 테이블 내에서 컬럼명은 고유해야 한다. 컬럼명은 중복될 수 없다.
㉰ 컬럼명 뒤에 데이터 유형과 크기가 명시되어야 한다.
㉱ 테이블명과 컬럼명은 숫자로 시작할 수 없다. 반드시 문자로 시작해야 한다.
㉲ A-Z, a-z, 0-9, _, $, #만 가능
* 테이블 제약 조건(CONSTRAINT)의 종류
- 테이블에 저장될 데이터의 무결성을 유지하기 위한 것
㉮ PRIMARY KEY(PK)
: 테이블에 하나씩만 정의할 수 있으며 PK로 지정된 컬럼에는 NULL값을 입력할 수 없고 UNIQUE 인덱스로 생성
㉯ FOREIGN KEY(FK)
: 하나의 테이블이 다른 테이블을 참조하고자 할 때 FK를 정의, NULL 값 가능, 여러 속성 가능
㉰ UNIQUE KEY (고유키)
: PK와 유사하지만 NULL값을 입력할 수 있음
㉱ NOT NULL
: 해당 컬럼에 NULL값을 입력할 수 없음
㉲ CHECK
: 컬럼에 저장될 수 있는 값의 범위를 제한
(2) ALTER
- 테이블의 구조를 변경할 때 사용함
㉮ ADD COLUMN
: 새로운 컬럼을 추가할 때 사용되며 추가되는 위치는 맨 끝이며 추가될 위치를 바꿀 수 없다.
- ALTER TABLE 테이블명 ADD 컬럼명 데이터 유형;
㉯ DROP COLUMN
: 기존에 있는 컬럼을 삭제하는 명령어로 한 번 삭제하면 복구할 수 없다.
- ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
㉰ MODIFY COLUMN
: 컬럼을 변경할 때 사용되며 컬럼의 데이터 유형, DEFAULT값, NOT NULL 제약조건도 변경 가능
: 컬럼의 크기를 줄일 때는 컬럼의 모든 데이터가 줄어든 컬럼의 크기보다 작아야 함
: 컬럼에 저장된 데이터가 없을 때만 변경 가능하고 현재 NULL값이 저장되어 있지 않은 컬럼에만 NOT NULL
제약조건 추가가 가능
: DEFAULT 변경 시 변경 이후 저장되는 데이터에만 적용됨
- ALTER TABLE 테이블명 MODIFY (컬럼명1 데이터 유형 [DEFAULT 값][NOT NULL], ...);
㉱ RENAME COLUMN
: 기존의 컬럼 이름 변경
- ALTER TABLE 테이블명 RENAME COLUMN 변경할 컬럼명 TO 변경할 이름;
㉲ ADD CONSTRAINT
: 제약조건 추가
- ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건(컬럼명);
㉳ DROP TABLE
: 테이블을 삭제할 때 사용하며 만약 다른 테이블이 해당 테이블을 참조하고 있을 경우
CASCADE CONSTRAINT를 사용해야만 삭제가 됨
- TABLE 테이블명 [CASCADE CONSTRAINT];
㉴ TRUNCATE TABLE
: 테이블의 모든 데이터를 제거하고 ROLLBACK이 불가능하다. 사용 공간이 재사용되도록 초기화됨
: 테이블을 삭제하지는 않음
- TRUNCATE TABLE 테이블명;
* DCL
- Data Control Language란 의미로 USER를 생성하고 USER에게 데이터를 다룰 수 있는 권한을 부여하거나
회수하는 명령어
* DCL 종류
(1) USER 관련 명령어
- CREATE USER
: 사용자를 생성
: CREATE USER 사용자명 IDENTIFIED BY 패스워드;
- ALTER USER
: 사용자를 변경
: ALTER USER 사용자명 IDENTIFIED BY 패스워드;
- DROP USER
: 사용자를 삭제
: DROP USER 사용자명
(2) 권한 관련 명령어
- GRANT
: 사용자에게 권한을 부여
: GRANT 권한 TO 사용자명;
- REVOKE
: 사용자를 변경
: REVOKE 권한 FROM 사용자명;
(3) ROLE 관련 명령어
- ROLE이란 특정 권한들을 하나의 그룹으로 묶는 것과 동일
- CREATE ROLE 롤명 : ROLE을 생성
- GRANT 권한 TO USER : ROLE에 권한 부여
- GRANT 롤명 TO 사용자명 : 사용자를 삭제
'자격증 & 공부 > SQLD' 카테고리의 다른 글
[SQLD] SQLD 합격 후기 (0) | 2024.06.18 |
---|---|
[SQLD] 2과목 - 2. SQL 활용 (0) | 2024.05.16 |
[SQLD] 2과목 - 1. SQL 기본 (0) | 2024.05.16 |
[SQLD] 1과목 - 2. 데이터 모델과 SQL (0) | 2024.05.16 |
[SQLD] 1과목 - 1. 데이터 모델링의 이해 (0) | 2024.05.16 |