본문 바로가기

정보처리기사/필기

과목3 - 데이터베이스 언어(DDL, DML, DCL)

  • DDL - 데이터베이스 전체구조 정의
    • 특징
      • 논리적, 물리적 데이터 구조 정의 
      • 자동적으로 커밋됨 - (AUTO COMMIT)
        • 즉, 여부 묻지 않고 엔터 누르면 바로 반영
        • 복원시 안됨
      • CREATE - 테이블 생성 및 정의라고도 함
        • 물리적 데이터 구조 정의 
        • 객체를 만듬
        • 제약조건
          • pk
          • fk
          • unique
          • not null
          • check
            • 성별이 M/F만 주고 싶어...
          • default
        • 단, VIEW는 ALTER로 재정의 할 수 없고, DROP후 CREATE로 다시 만들어 줘야 함
      • ALTER - 생성, 삭제
        • ADD
          • ADD COLUMN 부서명 VACAHER(50)
        • DROP
          • DROP COLUMN 부서명
        • RENAME
          • RENAME COLUMN 장소 TO 가용성
      • DROP - 테이블, 뷰, 데이터베이스 등 삭제
        • 옵션
          • CASCADE - 관련된 것을 다 삭제시 케이스케이드 옵션
            • 종속적인 객체나 권한을 함께 삭제하거나 취소시
      • TRUNCATE - 테이블은 남아 있고, 데이터만 삭제함
  • DML
    • SELECT
      • select distinct 컬럼 from 테이블명 where 조건 group by having order by 
      • 옵션
        • BETWEEN 값 AND 값
          • AND연산자로 이상/이하 이다.
        • GROUP BY
          • 특정 속성의 그룹을 만듬
            • 경남, 전남 등...
        • HAVING
          • GROUP BY의 WHERE절
      • 서브쿼리(SUB QUERY)
        • 기존 테이블에서 한 번더 SELECT함
      • JOIN
        • SELECT E.이름, A.지역 FROM 학생 E, 지역 A WHERE A.지역번호 = B.지역번호
        • 별칭(Alias)
      • EXISTS
        • 서브 쿼리랑 같이 사용된다.
        • 참, 거짓으로 반환한다.
    • INSERT
      • 튜플(행)에 집어넣기 위함, 즉 데이터 추가함
      • INSERT INTO 테이블명 VALUES 값
      • INSERT INTO 테이블명 컬럼명 VALUES 값
        • 특정 컬럼을 입력하고 그외 컬럼의 입력할 값을 모르면 NULL값으로 들어감
    • UPDATE
      • UPDATE 테이블명 SET 컬럼=값 WHERE 컬럼=값
    • DELETE
      • ROLLBAKC, COMMIT 사용가능함
      • DELETE FROM 테이블 WHERE 컬럼=값
  • DCL
    • 데이터 보안, 권한, 무결성 유지, 접근, 병행수행 제어에 관한 것
    • 명령어
      • GRANT
        • GRANT 권한 ON 객체 TO 사용자 WITH GRANT OPTION
          • 권한 : DML 권한
            • DML뿐만 아니라 DDL도 있다. 그 중에... CREATE TABLE TO
          • 객체 : 테이블, 뷰 등
          • 사용자 : 아이디
          • WITH GRANT OPTION : A라는 사용자가 곡 마스터나 ROOT가 아니더라도 다른 B사용자에게 권한을 줄 수 있음
          • TO : ~에게
      • REVOKE
        • REVOKE 권한 ON 객체 FROM 사용자
          • 권한 취소
          • CASCADE
            • 루트나 관리자가 A라는 사용자의 권한을 뺏으면, WITH GRANT OPTION으로 B사용자에게 주었던 권한도 뺏는다.
            • 테이블 생성 권한을 뺏을 때는 CREATE TABLE FROM
            • FROM : ~로부터