본문 바로가기
STUDY/[정보처리기사] 필기&실기

[SQL 응용] SQL 명령어의 분류 및 사용

by 하루디 2022. 4. 10.

이기적 환상의 콤보 교재 내용을 기반으로 작성되었습니다

 

1. 데이터 정의어(DDL)

DATA DEFINITION LANGUAGE

- 논리적, 물리적 데이터 베이스를 정의하거나 수정할 목적으로 사용하는 명령어이다

- 데이터베이스 관리자가 사용하는 언어이다.

- 명령어가 수행되면 이전 상태로 복귀할 수 없다.

구분 DDL명령어 설명
생성 CREATE DB 오브젝트를 생성
변경 ALTER DB 오브젝트를 변경
삭제 DROP DB 오브젝트를 삭제
TRUNCATE DB 오브젝트의 내용을 삭제

 

😎 DDL 사용방법 ! 

1) CREATE

  • 데이터베이스 생성, 테이블 생성
  • CREATE DATABASE 데이터베이스 이름;

2) ALTER

  • 필드 추가 
  • ALTER TABLE 테이블명 ADD 필드명 데이터타입 [위치옵션];
  • 데이터 타입변경 MODIFY 필드이름 데이터 타입; 
  • 데이터 변경 RENAME COLUMN 원래이름 TO 바꿀이름;  
  • 필드 삭제 ALTER TABLE 테이블명 DROP 필드이름; 
  • 제약조건 추가 ADD CONSTRAINT 제약조건명 제약조건
  • 제약조건 활성화 ENABLE CONSTRAINT 제약조건명;
  • 제약조건 삭제 DROP CONSTRAINT 제약조건명;
  • 제약조건 비활성화 DISABLE CONSTRAINT 제약조건명;

3) DROP

  • DB삭제 :  DROP DATABASE 데이터베이스 이름;
  • 테이블 삭제 : DROP TABLE 테이블 이름 [삭제옵션];  
    • 삭제옵션*
    • CASCADE : 관련된 모든 테이블 삭제 
    • RESTRICT : 관련된 테이블이 있다면 명령취소

4)  TRUNCATE 

  • 테이블의 모든 튜플을 삭제
  • TRUNCATE TABLE 테이블명;

 

 

2. 데이터 조작어(DML)

   DATA MANIPULATION LANGUAGE

- 데이터를 검색, 삽입, 갱신, 삭제할 수 있도록 지원하는 명령어이다. 

- 사용자와 DBMS간의 인터페이스를 제공한다.

- 트랜잭션 제어어를 활용하여 실행 전 상태로 복귀 가능한 명령어이다. 

구분 DML명령어 설명
데이터 삽입 INSERT 신규 데이터를 테이블에 삽입
데이터 수정 UPDATE 테이블의 내용을 수정
데이터 삭제 DELETE 테이블의 내용을 삭제
데이터 조회 SELECT 테이블의 내용을 조회

 

😎 DML 사용방법!

1) INSERT

  • 각각의 필드에 대응되는 값 삽입
  • INSERT INTO 테이블명(필드) VALUES (값);

 

 

2) UPDATE

  • 조건식에 대응되는 튜플들의 값을 갱신
  • UPDATE 테이블명 SET 필드 =값[ ] WHERE 조건식;

3) DELETE

  • 조건식에 대응되는 튜플을 삭제
  • DELETE FROM 테이블명 WHERE 조건식;

4) 🤞SELECT🤞

  • 가장 많이 사용됨 
  • SELECT [DISTINCT] 필드 [] FROM 테이블명
    • [WHERE 조건식 | GROUP BY 필드 [HAVING 조건식]]
    • [ORDER BY 필드 [ASC | DESC]];

 

 

3. 데이터 제어어(DCL)

   DATA CONTROL LANGUAGE

- 여러 사용자가 데이터를 공유할 수 있도록 병행제어를 수행하는 명령어이다.

- 데이터 무결성을 유지하면서 여러 규정이나 제약조건 등을 기술하기 위한 명령어이다.

- 사용자별로 DB에 접근할 수 있는 권한을 부여하거나 회수하여 데이터 보안을 유지한다.

형식 권한 설명 
GRANT PUBLIC/WITH GRANT(ADMIN) OPTION 옵션
  CREATE 시스템 권한
  DROP 시스템 권한
REVOKE TO 권한 부여
  FROM 권한 회수

 

DCL 사용방법! 

😎: GRANT [권한|ROLE ] TO [사용자 | PUBLIC| ROLE] [WITH GRANT/ADMIN OPTION]; 

😊: REVOKE [권한 | ROLE] FROM/TO [사용자|ROLE|PUBLIC];