1. DCL (Data Control Language) 

- 데이터 제어 언어

- 무결성, 보안, 회복, 동시성을 위해 사용자별 데이터베이스 접근 권한 또는 사용 권한을 부여하거나 제거

- COMMIT, ROLLBACK 명령어는 TCL(Transaction Control Language_트랜잭션을 제어하는 명령어)로 구분되어 표현되기도 함.

 

1.1) GRANT

- 데이터베이스 사용자에게 권한을 부여하는 명령어.

- 권한 부여 후 "FLUSH PRIVILEGES;" 명령을 수행하여야 권한이 적용됨.

- 시스템 권한 부여

GRANT 시스템 권한명 [, 시스템 권한명 ...| 롤명 ]
TO  유저명 [, 유저명... | 롤명... | PUBLIC] [WITH ADMIN OPTION];

- 시스템 권한명 : 부여할 시스템권한의 이름
- 롤명 : 권한을 부여할 또는 권한을 받을 롤(ROLE)의 이름
- 유저명 : 권한을 부여 받을 유저(User)이름
- PUBLIC : 시스템권한, 또는 데이터베이스 역할을 모든 사용자에게 부여 가능
- WITH ADMIN OPTION : 권한을 부여 받은 사용자도 부여 받은 권한을 다른 사용자 또는 역할로 부여 가능

 

- 객체 권한 부여

GRANT [ 객체권한명 ] (컬럼) 
ON [ 객체명 ] 
TO { 유저명 | 롤명 | PUBLIC} [WITH GRANT OPTION];

- 객체권한명 : 객체에 사용가능한 권한(위의 그림 참고)
- 컬럼명 : 만약 ON 절의 object 가 Table이나 View일 경우 사용
- ON 객체명 : Table, View, Sequence, Procedure 등 (위의 테이블을 참고)
- TO { 유저명 | 롤명 | PUBLIC } : 사용자를 일일이 나열할 수도 있고 , ROLE에 소속된 사용자가 될수도 있다. PUBLIC = 모든 사용자
- WITH GRANT OPTION : 이 옵션을 사용하면 TO 절의 대상도 자신이 받은 권한을 다른 유저에게 부여 가능

 

1.2) REVOKE

- 사용자에게 부여한 권한을 회수하는 명령어

REVOKE { 권한명 [, 권한명...] | ALL }
ON 객체명
FROM { 유저명 [, 유저명...] | 롤명(ROLE) | PUBLIC }
[CASCADE CONSTRAINTS]

- 객체 권한의 철회는 그 권한을 부여한 부여자만이 수행 가능
- CASCADE CONSTRAINTS : 이 명령어의 사용으로 참조 객체 권한에서 사용 된 참조 무결성 제한을 같이 삭제 가능
- WITH GRANT OPTION 으로 객체 권한을 부여한 사용자의 객체 권한을 철회하면,
  권한을 부여받은 사용자가 부여한 객체 권한 또한 같이 철회되는 종속철회가 발생

 

1.3) COMMIT

- 작업한 결과물을 물리적 디스크에 저장, 조작 작업이 정상적으로 수행됨을 알려주는 명령어.

- 해당 명령이 수행된 후 이전의 상태로 되돌리 수 없음.

COMMIT;

 

1.4) ROLLBACK 

- 작업한 내용을 원래의 상태로 복구하기위한 명령어.

- COMMIT 명령을 사용하기 이전의 상태로 복구 가능.

ROLLBACK;

 

참고

 

DCL문 - GRANT / REVOKE 명령어

DCL문 이란 데이터베이스에 접근하고 객체들을 사용할 수 있는 권한을 제어할 수 있는 Data Control ...

blog.naver.com

 

 

[DataBase] Oracle SQL - DCL (데이터 제어어) GRANT / REVOKE

데이터 제어어(Data Control Language)는 말 그대로 데이터를 제어하기 위한 언어이다. 이 데이터 제어어에는 권한을 관리하기위한 GRANT / REVOKE 등의 언어가 있다. 권한에는 시스템 권한과 객체 권한이

sehyeok.tistory.com

'데이터베이스 > SQL 문법' 카테고리의 다른 글

SQL_DML(Data Manipulation Language)  (0) 2022.09.05
SQL_DDL(Data Definition Language)  (0) 2022.09.01

1. DML (Data Manipulation Language)

- 데이터 조작어

- 데이터의 삽입, 수정, 삭제, 조회 등을 수행

- INSERT(데이터 생성),  UPDATE(데이터 수정), DELETE(데이터 삭제), SELECT(데이터 조회)

2. INSERT

- 테이블에 데이터를 입력할 경우 사용

- 입력할 데이터는 반드시 컬럼의 순서와 개수가 일치해야 함

INSERT INTO 테이블명 VALUES (컬럼=값);

[캡쳐 1] INSERT INTO ~ VALUES ~ 결과

2.1) 특정 컬럼 INSERT

- 특정 컬럼을 지정해 데이터를 입력할 경우

- 컬럼명입력한 데이터의 순서와 개수가 일치해야 함

INSERT INTO 테이블명(컬럼1, 컬럼2, 컬럼3,......) VALUES(컬럼1의 값, 컬럼2의 값,....);

[캡쳐 2] 특정 컬럼을 지정하여 데이터 입력

2.2) 특정 컬럼 SET

- 특정 컬럼을 지정해 데이터

INSERT INTO 테이블명 SET
컬럼명1=데이터1, 컬럼명2=데이터2...;

[캡쳐 3] SET을 이용한 데이터 입력

3. SELECT

- 테이블 내 데이터를 조회할 때 사용

- 테이블에 저장된 칼럼 순서대로 조회

SELECT [ALL | DISTINCT] 속성이름 FROM 테이블이름
[WHERE 조건]
[GROUP BY 속성이름]
[HAVING 검색조건]
[ORDER BY 속성이름 [ ASC | DESC]

[캡쳐4] SELECT 수행 결과

- 각 절에 다양한 조건을 줌으로써 목적에 맞는 데이터를 조회할 수 있음

[캡쳐 5] USER 테이블에서 name이 A인 사람의 studentID 조회

4. UPDATE

- 테이블 내 데이터를 변경할 때 사용

UPDATE 테이블명 SET 변경할 컬럼=변경할 데이터 WHERE 변경하고자하는 조건

[ 캡쳐 6] UPDATE 수행 결과

5.DELETE

- 테이블내 저장된 데이터를 삭제할 때 사용

DELETE FROM 테이블명 WHERE 삭제할 컬럼명=조건;

[캡쳐 7] DELETE 수행 결과

'데이터베이스 > SQL 문법' 카테고리의 다른 글

SQL_DCL(Data Control Language)  (0) 2022.09.13
SQL_DDL(Data Definition Language)  (0) 2022.09.01
필드명 타입 설명
StudentID INT 학번
Name VARCHAR(20) 성명
ID VARCHAR(20) 계정명
PW VARCHAR(20) 비밀번호

[캡쳐 1] DB 생성 및 사용

1. DDL (Data Definition Language)

- 데이터 정의어

- 역할 : 데이터베이스를 정의하는 언어로, 데이터 생성, 수정, 삭제 등 데이터 전체 골격을 결정

- 사용자 : 데이터베이스 설계자, 관리자

1.1) CREATE

- 데이터베이스와 테이블 생성

CREATE TABLE 테이블이름
(
    필드이름1 필드타입1,
    필드이름2 필드타입2,
    ...
)

[캡쳐 2] user 테이블 생성

- 첫번째 값인 studentID는 int형이며, NULL 값을 가질 수 없음(not null). 또한 기본키로 지정(primary key)

- name(성명), pw(비밀번호)는 varchar(가변 자료형)

[캡쳐 3] 구조 확인

1.2) ALTER

- 데이터베이스와 테이블의 내용 수정

ALTER TABLE [테이블명] ADD COLUMN [추가할컬럼명] [컬럼타입] DEFAULT [기본값] [컬럼위치]
 // [컬럽위치] after : 특정 필드 뒤, first : 맨 처음의 필드

필드 삭제 : ALTER TABLE 테이블명 DROP 삭제할 필드명;
필드 타입 수정 : ALTER TABLE 테이블명 MODIFY 필드명 타입;
테이블명 변경 : ALTER TABLE 이전테이블명 RENAME 새테이블명;

[캡쳐 4] user 테이블에 id 칼럼 추가

1.3) DROP

- 데이터베이스와 테이블 삭제

DROP TABLE 테이블명;

[캡쳐 5] 임의 테이블 생성 후 삭제

1.4) TRUNCATE

- 데이터베이스와 테이블 삭제

TRUNCATE TABLE 테이블명;

[캡쳐 6] TRUNCATE 명령 수행 결과

참고

DROP VS TRUNCATE VS DELETE

구분 DROP TRUNCATE DELETE
분류 DDL DDL DML
처리 속도 빠름 빠름 느림
삭제 방식 데이터베이스 또는 테이블 전체
저장되어 있는 데이터도 삭제
데이터베이스 또는 테이블이 아닌
저장되어 있는 데이터를 삭제
WHERE절을 사용해
특정 데이터를 골라서 삭제
복구 자동 COMMIT이 수행되어
복구 불가(ROLLBACK 불가)
자동 COMMIT이 수행되어
복구 불가(ROLLBACK 불가)
삭제한 데이터에 대하여
COMMIT 명령 수행 전이라면
ROLLBACK 명령을 통해 복구 가능

 

- MySQL 설치 참고

 

[Linux] 우분투에 MySQL 설치하기

1. MySQL 설치 전 준비 관리자 계정으로 접속하기 su - 패키지 리스트 업데이트 apt update 2. MySQL 설치 다음 명령어를 통해 데이터베이스 설치하기 apt install mysql-server -y 3. MySQL 설정하기 다음 명..

pinggoopark.tistory.com

'데이터베이스 > SQL 문법' 카테고리의 다른 글

SQL_DCL(Data Control Language)  (0) 2022.09.13
SQL_DML(Data Manipulation Language)  (0) 2022.09.05

1. 데이터베이스(DataBase)

- 여러 사람들이 공유하고 사용할 수 있도록 통합 관리되는 데이터의 집합.

- 자료를 구조화하고, 중복을 제거하여 효율적인 처리가 가능하도록 관리됨.

- 데이터베이스 관리 시스템(DBMS : Databaase Management System_데이터베이스를 관리하고 운영하는 소프트웨어)을 통해 관리됨.

- SQL을 이용해 데이터를 조작함.

- 조직의 운영에 필요한 정보를 저장하고 있기에 보안에서 중요한 요소 중 하나임.

통합된 데이터
(Intergrated Data)
- 데이터가 중복되지 않음
- 효율성 문제로 인해 일부 중복을 허용하기도 함
저장된 데이터
(Stored Data)
- 컴퓨터가 접근할 수 있는 저장매체에 저장된 데이터 집합
운영 데이터
(Operational Data)
- 조직 고유의 기능을 수행하기 위해 반드시 유지해야하는 데이터
공용 데이터
(Shared Data)
- 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료

[캡쳐 1] https://coding-factory.tistory.com/77

2. 특징

실시간 접근성
(Real-Time Accessibility)
- 수시적이고 비정형적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능해야 함.
계속적인 변화
(Continuous Evolution)
- 새로운 데이터의 삽입(Insert),삭제(Delete),갱신(Update)로 항상 최신의 데이터를 유지.
동시공용
(Concurrent Sharing)
- 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유.
내용에 의한 참조
(Content Reference)
- 사용자가 요구하는 데이터 내용으로 데이터를 찾음.

3. SQL (Structured Query Language)

- 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어

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

- DML(Data Manipulation Language) : 데이터 조작어

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

구분 설명 명령어 설명
DDL - 데이터베이스나 테이블 등을 생성, 삭제하거나 그 구조를 변경하기 위한 명령어 CREATE - 데이터베이스와 테이블 생성
ALTER - 데이터베이스와 테이블의 내용 수정
DROP - 데이터베이스와 테이블 삭제
DML - 데이터베이스에 저장된 데이터를 처리하거나 조회, 검색하기 위한 명령어 INSERT - 테이블에 새로운 레코드 추가
UPDATE - 테이블의 레코드 내용 수정
DELETE - 테이블의 레코드 삭제
SELECT - 테이블의 레코드 선택
DCL - 데이터베이스에 저장된 데이터를 관리하기 위하여 데이터의 보안성 및 무결성 등을 제어하기 위한 명령어 GRANT - 권한 부여
REVOKE - 권한 회수

 

- 참고

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

+ Recent posts