반응형
250x250
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Yeonee's Story

[취업/면접] SQL - DDL, DML, DCL의 역할과 종류 (+ 예시) 본문

。*:・゚☆・゚schedule・゚*:・゚★・:*:・☆ *:・゚★/나의 면접 준비 자료 ✿˘◡˘✿

[취업/면접] SQL - DDL, DML, DCL의 역할과 종류 (+ 예시)

yeonee 여니 2023. 10. 4. 19:19
728x90
반응형
SMALL

안녕하세요.
https://blog.naver.com/sysysy0302 여니입니다 :)

 

 

SQL(Structured Query Language)의 종류

SQL(Structured Query Language)의 종류에는 데이터 정의(DDL), 데이터 조작(DML), 데이터 제어(DCL)가 있습니다.

 

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

데이터의 구조를 정의하기 위한 테이블 생성, 수정,삭제 같은 데이터의 전체 골격을 결정하는 역할의 언어를 말합니다.

CREATE : 데이터베이스, 테이블 등을 생성

DROP : 데이터베이스, 테이블을 삭제

ALTER : 테이블 수정

TRUNCATE : 테이블에 있는 모든 데이터 삭제

// 테이블 생성(CREATE)
CREATE TABLE SAMPLE

(    
     TEST_VARCHER VARCHAR(10),
     TEST_INT INT
);
// 테이블 수정(ALTER)
SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH 
FROM USER_TAB_COLUMNS 
WHERE TABLE_NAME = 'SAMPLE';
1. 컬럼추가
ALTER TABLE SAMPLE ADD TEST_VARCHAR2 VARCHAR(15);
// 테이블 정보를 조회 하면 TEST_VARCHER2 컬럼이 생성 된 것을 확인 할 수 있다.

2. 컬럼수정
ALTER TABLE SAMPLE MODIFY TEST_VARCHAR2 VARCHAR(5);
// 테이블 정보를 조회 하면 TEST_VARCHER2 컬럼의 사이즈가 5로 변경 된것을 확인 할 수 있다.

3. 컬럼삭제
ALTER TABLE SAMPLE DROP COLUMN TEST_VARCHAR2;
// 테이블 정보를 조회 하면 TEST_VARCHER2 컬럼이 제거 된 것을 확인 할 수 있다.
// 테이블 제거(DROP)
DROP TABLE SAMPLE;
// 테이블 정보 조회시 조회 결과가 출력 되지 않는다.

 

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

데이터 조회 및 변형을 위한 명령어

SELECT : 데이터 조회

INSERT : 데이터 입력

UPDATE : 데이터 수정

DELETE : 데이터 삭제

간단한 예시 코드들로 알아보겠습니다.
우선 데이터를 담을 테이블이 존재해야 데이터를 조작 할 수 있으므로 테이블을 생성해줍니다.

// 테이블 생성
CREATE TABLE TB_MEMBER
(    
     ID		INT,
     NAME 	VARCHAR(10),
     AGE	INT
);
// 데이터 입력( INSERT )
INSERT INTO 테이블명( 컬럼1, 컬럼2, 컬럼3... ) VALUES ( '값1', '값2', '값3'.... );

INSERT INTO TB_MEMBER( ID, NAME, AGE ) 
       VALUES ( '1', 'JACK', '35' );

INSERT INTO TB_MEMBER( ID, NAME, AGE )
       VALUES ( '2', 'SUJAN', '34' );
// 데이터 조회( SELECT )
// 1. 데이터 전체 조회
SELECT * FROM 테이블명 ; 

SELECT * FROM TB_MEMBER;


// 2. 데이터를 모두 조회 하고 싶지 않고 특정한 조건에 맞는 데이터를 조회 하고 싶을때 WHERE를 사용하여 데이터를 조회 할 수 있다.
SELECT * FROM 테이블명 WHERE 컬럼1 = '값1' ; 

SELECT * FROM TB_MEMBER
         WHERE ID = '1';
// ID가 1인 데이터 하나만 조회 되는 것을 확인 할 수 있다.        
        
        
// 3. 데이터에서 특정한 컬럼 값만 보고 싶으면 * 대신 컬럼명을 사용한다.
SELECT 컬럼1, 컬럼2 FROM 테이블명 WHERE 컬럼1 = '값1' ; 

SELECT NAME FROM TB_MEMBER 
 	        WHERE ID = '1';     
// ID가 1인 데이터 하나의 NAME만 조회되는 것을 확인 할 수 있다.
// 데이터 수정( UPDATE )
UPDATE 테이블명 SET 컬럼2 = '수정할 값1'  WHERE 컬럼1 = '값1'

UPDATE TB_MEMBER 
SET NAME = 'HERA' 
WHERE ID = '1';
// 데이터 삭제( DELETE )
DELETE 테이블명 WHERE 컬럼1 = '값1'

DELETE TB_MEMBER WHERE ID = '1';

 

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

사용자에게 권한 생성 혹은 권한 삭제 같은 명령어

GRANT : 권한 생성

REVOKE : 권한 삭제

// GRANT

1. 권한을 생성 하기 위해서는 우선 DBA로 접속을 해야 한다.
CONN SYS/ORACLE AS SYSDBA

2. 이후 권한을 부여해 줄 사용자를 생성 한다.
CREATE USER SAMPLE_USER IDENTIFIED BY PASSWORD;

3. 생성된 사용자에게 CONNECT 권한 및 RESOURCE 권한을 준다.

 - CONNECT는 접속 권한
 - RESOURCE는 객체(생성, 수정, 삭제), 데이터(입력, 수정, 조회, 삭제) 권한 
 - RESOURCE로 권한을 주지 않고 테이블 생성 데이터 입력만 가능하도록 일부 권한만 줄 수도 있다.

   GRANT 권한 종류1, 권한 종류2 TO 권한을 줄 사용자

GRANT CONNECT, RESOURCE TO SAMPLE_USER;

* 관리자계정에서 실행
728x90
반응형
LIST