DML(INSERT,UPDATE,DELETE), DDL(CREATE,ALTER,DROP) 이론

Liberte Koo·2022년 12월 26일
1

Database

목록 보기
7/12

계정생성화면 admin

DML(Data Manipulation Language)

  • 데이터 조작 언어
  • 테이블에 값을 삽입, 수정, 삭제하는 역할
  • INSERT, UPDATE, DELETE

INSERT

  • 테이블에 새로운 행을 추가하는 구문
  • 추가할 때마다 테이블의 행 개수가 증가

표현식
1. INSERT INTO 테이블명(컬럼명1, 컬럼명2,...)
2. INSERT INTO VALUES (값1, 값2,...);

UPDATE

  • 테이블에 기록된 컬럼의 값을 수정하는 구문. 테이블 전체 행 개수 변화 없음

표현식
1. UPDATE 테이블명 SET 컬럼명1 = 변경값2, 컬럼명2 = 변경값2 WHERE 조건식(조건식을 적지 않으면 테이블 전체 데이터 일괄 변경이므로 주의)

DELETE

  • 테이블의 행을 삭제하는 구문. 전체 행 개수 감소

표현식
1. DELETE FROM 테이블명 WHERE 조건식(조건식을 적지 않으면 테이블 전체 데이터가 삭제되므로 주의)
2. FOREIGN KEY 제약조건이 설정되어 있는 경우 삭제 불가능(ON DELETE RESTRICTED인 경우) - 제약조건을 비활성화 후 삭제 가능
* 제약조건으로 인한 삭제 불가시 강제 삭제
1) 제약조건 비활성화
ALTER TABLE TEST01
DISABLE CONSTRAINT SY

DDL

데이터 정의 언어.
객체를 만들고 CREATE 수정하고 ALTER 삭제하는 DROP 구문

CREATE

DDL의 한 종류로 테이블이나 인덱스, 유저 등 다양한 데이터베이스 객체를 생성하는 주문

관리자 계정과 사용자 계정
관리자 계정(Admin) : 데이터베이스의 생성과 관리를 담당. 모든 권한과 책임을 가진다
사용자 계정(User) : 데이터베이스에 대하여 질의, 갱신, 보고서 작성 등을 수행할 수 있는 계정으로 업무에 필요한 최소한의 권한만 가지는 것을 원칙으로 함

텍스트CREATE - 사용자 만들기

  • 관리자 계정에서 USER을 생성하게 되면 계정은 생성되었지만 권한이 없어서 접속 불가
  • 그렇기때문에 권한을 부여하거나 회수함으로서 DATABASE에 접근을 제어함.
  • USER 생성은 관리자 계정으로만 가능
  • DCL(Data Control Language)로 GRANT(권한부여), REVOKE(권한해제)가 존재

<권한 부여>
GRANT 부여할ROLE TO 사용자이름;

<권한 회수>

REVOKE 회수할ROLE FROM 사용자이름;

표현식
CREATE USER 사용자이름 IDENTIFIED BY 비밀번호;
1) CREATE USER

제약조건

NOT NULL

데이터에 NULL을 허용하지 않는다

UNIQUE

중복된 값을 허용하지 않는다

PRIMARY KEY

NULL을 허용하지 않고, 중복을 허용하지 않는다
컬럼의 고유 식별자로 사용한다

  • 테이블에서 한 행의 정보를 구분하기 위한 고유 식별자(Identifier) 역할
  • NOT NULL의 의미와 UNIQUE를 둘 다 가지고 있음
  • 한 테이블 당 한 개만 설정 가능
  • 컬럼레벨과 테이블레벨에서 설정 가능

FOREIGN KEY

참조되는 테이블의 컬럼 값이 존재하면 허용한다

  • RESTRICTED : 아무것도 지정하지 않는 경우 설정되는 기본 삭제 옵션으로 자식테이블에서 부모테이블의 데이터를 참조하고 있는 경우 데이터 삭제가 불가능함
  • ON DELETE SET NULL : 부모 테이블의 데이터 삭제 시 해당 데이터를 참조하고 있던 자식 테이블의 컬럼 값을 NULL로 변경하는 옵션
  • ON DELETE CASCADE : 부모 테이블의 데이터 삭제 시 해당 데이터를 참조하고 있던 자식 테이블의 데이터까지 모두 삭제하는 옵션

CHECK

저장 가능한 데이터 값의 범위나 조건을 지정하여 설정한 값만 허용한다

profile
A previous generalist who strives to become a genuine Specialist.

0개의 댓글