티스토리 뷰
오늘은 SQL 문장의 종류에 대해서 공부해보려고 한다.
SQL 문은 크게 DML문, TCL문, DDL문, DCL문으로 나눌 수 있다.
DML문 (SELECT, INSERT, UPDATE, DELETE, MERGE)
테이블에 저장된 데이터를 조작(조회, 입력, 수정, 삭제하기) 위한 구문이다.
** MERGE: 두 개의 테이블을 합치는 것. UPDATE와 DELETE 가능하다.
TCL문 (COMMIT, ROLLBACK, SAVEPOINT)
DML 문에 의한 데이터의 변경 사항을 데이터베이스에 영구히 반영하거나 취소하기 위해 트랜잭션을 제어하는 구문
** COMMIT: 트랜잭션 처리가 정상적으로 종료되어서 트랜잭션이 수행한 변경 사항을 데이터베이스에 적용하는 연산. 이 상태는 시스템 오류가 발생하더라도 취소되지 않는다.
** ROLLBACK: 트랜잭션 처리가 비정상적으로 종료되어서 데이터베이스의 일관성이 깨졌을 경우, 이전 상태로 되돌리는 작업. 마지막 COMMIT 이후의 상태로 돌아간다.
** SAVEPOINT: 현재 트랜잭션을 작게 분할하는 명령어. ROLLBACK 할 때 특정 SAVEPOINT로 돌아갈 수 있다.
** 트랜잭션: 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업 (SELECT, INSERT, UPDATE, DELETE 등)이다.
DDL문 (CREATE, ALTER, DROP, RENAME, TRUNCATE)
테이블, 인덱스와 같은 데이터베이스 오브젝트의 구조를 정의(생성, 변경, 삭제) 하기 위한 구문이다.
** TRUNCATE: 테이블 내의 모든 ROWS를 삭제한다.
DCL문 (GRANT, REVOKE)
데이터에 대한 권한을 부여하거나 취소하기 위한 구문이다.
** GRANT: 사용자에게 접속권한, 오브젝트 생성 권한,DBA 권한 등을 부여할 수 있는 명령어이다.
GRANT 사용법
GRANT ON 대상 오브젝트 TO 대상 계정
ex) GRANT ALL ON T1 TO U1
GRANT 권한 종류
시스템 권한 분류 | 시스템 권한 | 설명 |
USER(사용자) | CREATE USER | 사용자 생성 권한 |
UPDATE USER | 생성된 사용자의 정보 수정 권한 | |
DROP USER | 생성된 사용자 삭제 권한 | |
SESSION(접속) | CREATE SESSION | 데이터베이스 접속 권한 |
ALTER SESSION | 데이터베이스 접속 상태에서 환경 값 변경 권한 | |
TABLE | CREATE TABLE | 자신의 테이블 생성 권한 |
CREATE ANY TABLE | 임의의 스키마 소유 테이블 생성 권한 | |
ALTER ANY TABLE | 임의의 스키마 소유 테이블 수정 권한 | |
DROP ANY TABLE | 임의의 스키마 소유 테이블 삭제 권한 | |
INSERT ANY TABLE | 임의의 스키마 소유 테이블 데이터 삽입 권한 | |
UPDATE ANY TABLE | 임의의 스키마 소유 테이블 데이터 수정 권한 | |
DELETE ANY TABLE | 임의의 스키마 소유 테이블 데이터 삭제 권한 | |
SELECT ANY TABLE | 임의의 스키마 소유 테이블 데이터 조회 권한 | |
INDEX | CREATE ANY INDEX | 임의의 스키마 소유 테이블의 인덱스 수정 권한 |
ALTER ANY INDEX | 임의의 스키마 소유 테이블 인덱스 수정 권한 | |
DROP ANY INDEX | 임의의 스키마 소유 테이블 인덱스 삭제 권한 | |
PROFILE | CREATE PROFILE | 프로파일을 생성 |
ALTER PROFILE | 데이터베이스의 프로파일 변경 | |
DROP PROFILE | 데이터베이스의 프로파일 삭제 | |
ROLE | CREATE ROLE | 롤을 생성 |
ALTER ANY ROLE | 데이터베이스에서 롤을 변경 | |
DROP ANY ROLE | 데이터베이스에서 롤을 삭제 | |
GRANT ANY ROLW | 데이터베이스에 롤을 부여 |
** REVOKE: 사용자로부터 권한을 다시 회수하는 명령어이다.
'sqld' 카테고리의 다른 글
[sqld] SQL 함수 - FLOOR / CEIL / TRUNC / ROUND (0) | 2021.08.31 |
---|---|
[sqld] SQL 함수 - SUBSTR / TRIM / LTRIM / RTRIM (0) | 2021.08.31 |
[sqld] SELECT 구문 "||" 사용법 (0) | 2021.08.31 |
[sqld] 엔티티 속성 vs 인스턴스 (0) | 2021.08.28 |
[sqld] 식별관계 vs 비식별관계 (0) | 2021.08.28 |
- Total
- Today
- Yesterday
- 다대다매핑
- intellij
- 코테
- 완전탐색
- 운영체제
- 프로그래머스
- C++
- SQLD
- dfs
- 동적프로그래밍
- 파이썬
- OS
- 브루트포스
- 4계층
- 인텔리제이
- cs
- Python
- IPv4
- Network
- DP
- cs공부
- 코딩테스트
- SQL
- 알고리즘
- 5397
- allauth
- 백준
- 소셜로그인
- 네트워크
- BFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |