Database/SQL 개발자

[SQL] 관리 구문

IT수정 2024. 9. 12. 11:10

DML

Data Manipulation Language란 의미로 DDL에서 정의한 대로 데이터를 입력하고, 입력된 데이터를 수정, 삭제, 조회하는 명령어이다.

 

INSERT

테이블에 데이터를 입력하는 방식이다.

INSERT INTO 테이블명 (컬럼명1, 컬럼명2 ...) VALUES (데이터1, 데이터2 ...);

 

UPDATE

이미 저장된 데이터를 수정하고 싶을 때 사용하는 명령어이다. WHERE 절이 없으면 테이블의 모든 Row가 변경되니 주의해야 한다.

UPDATE 테이블명 SET 컬럼명 = 새로운 데이터 (WHERE 수정할 데이터에 대한 조건);

 

DELETE

이미 저장된 데이터를 삭제하고 싶을 때 사용하는 명령어이다. WHERE 절이 없으면 테이블의 모든 Row가 삭제되니 주의해야 한다.

DELETE FROM 테이블명 (WHERE 수정할 데이터에 대한 조건);

 

만약 WHERE 절 없이 전체 테이블을 삭제하고자 하는 경우 TRUNCATE 명령어를 사용하는 게 시스템 부하 측면에서 유리하다. 하지만 별로의 로그를 쌓지 않아 ROLLBACK이 불가능하다.

 

MERGE

테이블에 새로운 데이터를 입력하거나 이미 저장되어 있는 데이터에 대한 변경 작업을 한 번에 할 수 있도록 해주는 명령어이다.

MERGE
INTO 타겟 테이블명
USING 비교 테이블명
ON 조건
WHEN MATCHED THEN
UPDATE
SET 컬럼명 = 새로운 데이터 [, 컬럼명 = 새로운 데이터 ...]
WHEN NOT MATCHED THEN
INSERT [(컬럼명1, 컬럼명2 ...)]
VALUES (데이터1, 데이터2 ...);

 

TCL

Transaction Control Language 라는 의미로 트랜잭션을 제어하는 명령어이다. 트랜잭션이란 쪼개질 수 없는 업무처리의 단위이다.

 

트랜잭션의 특징

원자성(Atomicity) 트랜잭션으로 묶인 일련의 동작들을 모두 성공하거나 모두 실패해야 한다.
일관성(Consistency) 트랜잭션이 완료된 후에도 데이터베이스가 가진 데이터에 일관성이 있어야한다.
고립성(Isolation) 하나의 트랜잭션은 고립되어 수행되어야 한다.
지속성(Durability) 트랜잭션이 성공적으로 수행되었을 경우 트랜잭션이 변경한 데이터가 영구적으로 저장되어야 한다.

 

COMMIT

DML 후 변경된 내용을 확정, 반영하는 명령어

 

ROLLBACK

DML 후 변경된 내용을 취소하는 명령어

 

SAVEPOINT

ROLLBACK을 수행할 때 전체 작업을 되돌리지 않고 일부만 되돌릴 수 있게 하는 기능을 가진 명령어

 

DDL

Data Definition Language란 의미로 데이터를 정의하는 SQL이다.

 

CREATE

테이블을 생성하기 위한 명령어

CREATE TABLE 테이블명 (
컬럼명1 데이터 타입(DEFAULT / NULL 여부),
...
);

 

테이블 생성 시 지켜야 할 규칙

  • 테이블명은 고유해야 한다.
  • 한 테이블 내에서 컬럼명은 고유해야 한다.
  • 칼럼명 뒤에 데이터 유형과 데이터 크기가 명시되어야 한다.
  • 칼럼에 대한 정의는 괄호() 안에 기술한다.
  • 각 컬럼들은 .(콤마)로 구분된다.
  • 테이블명과 컬럼명은 숫자로 시작될 수 없다.
  • 마지막은 ;(세미콜론)으로 끝난다.

ALTER

테이블의 구조를 변경하는 명령어

-- ADD 새로운 컬럼 추가
ALTER TABLE 테이블명 ADD 컬럼명 데이터 유형;

-- DROP 기존의 컬럼 제거
ALTER TABLE 테이블명 DROP CULUMN 컬럼명;

-- MODIFY 기존의 컬럼 변경
ALTER TABLE 테이블명 MODIFY (컬럼명1 데이터 유형 [DEFAULT 값][NOT NULL], 컬럼명 2 데이터 유형...);

-- RENAME 기존의 컬럼 이름을 변경
ALTER TABLE 테이블명 RENAME COLUMN 변경할 컬럼명 TO 변경할 이름;

-- ADD CONSTRAINT 제약조건 추가
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건 (컬럼명);

 

DROP

테이블을 삭제할 때 쓰는 명령어

DROP TABLE 테이블명 [CASCADE CONSTRAINT];

 

TRUNCATE

테이블에 저장되어 있는 데이터를 모두 제거하는 명령어

TRUNCATE TABLE 테이블명;

 

DCL

Data Control Language란 의미로 USER를 생성하고, USER에게 데이터를 컨트롤할 수 있는 권한을 부여하거나 회수하는 명령어이다.

 

USER 관련 명령어

-- CREATE USER 사용자 생성
CREATE USER 사용자명 IDENTIFIED BY 패스워드;

-- ALTER USER 사용자 변경
ALTER USER 사용자명 IDENTIFIED BY 패스워드;

-- DROP USER 사용자 삭제
DROP USER 사용자명;

 

권한 관련 명령어

-- GRANT 사용자 권한 부여
GRANT 권한 TO 사용자명;

-- REVOKE 사용자 권환 회수
REVOKE 권한 FROM 사용자명;

 

ROLE 관련 명령어

ROLE 이란 특정 권한들을 하나의 세트처럼 묶는 것이다.

-- ROLE을 이용한 권한 부여
-- ROLE 생성
CREATE ROLL 롤명;

-- ROLE에 권한 부여
GRANT 권한 TO 롤명;

-- ROLE을 사용자 부여
GRANT 롤명 TO 사용자명;

'Database > SQL 개발자' 카테고리의 다른 글

노랭이 이론 34~50  (8) 2024.09.27
노랭이 이론 1~33  (11) 2024.09.23
[SQL] SQL 활용  (0) 2024.09.11
[SQL] SQL 기본  (4) 2024.09.11
[SQL] 데이터 모델과 SQL  (1) 2024.09.11