반응형

DML

  • 데이터베이스의 데이터를 조작하는 명령어들을 의미한다.
  • 조작하려는 테이블을 메모리 버퍼에 올려놓고 작업을 하기 때문에 실시간으로 테이블에 영향을 미치는 것은 아니다.
    • 여러 회원이 동일한 데이터베이스에 접근하여 작업을 할 때, 한 명의 회원(세션 A)이 부서 테이블의 10번째 행을 삭제했다고하여 다른 회원(세션 A 이외)이 부서 테이블을 조회했을 떄 10번째 행이 삭제 된 것으로는 보이지는 않는다.(COMMIT 전 상태)
  • 버퍼에서 처리한 DML 명령어가 실제 테이블에 반영되기 위해서는 COMMIT 명령어를 통해 트랜잭션을 종료해야 한다.
  • DML 종류
    • SELECT
    • INSERT
    • UPDATE
    • DELETE

 

SELECT(Oracle)

  • 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어(RETRIEVE)
  • 테이블의 데이터 조회 방법
    • SELECT [ALL/DISTINCT] 칼럼, 칼럼, ...
    • FROM 테이블명;

 

  • SELECT 검색 옵션
    • ALL : 중복된 데이터가 있어도 모두 출력한다.(Default 옵션)
    • DISTINCT : 중복된 데이터가 있는 경우 1개의 행으로 처리해서 출력한다.
    • *(WILDCARD) : 해당 테이블의 모든 컬럼을 의미한다.
    • ALIAS : 조회 결과로 표시될 컬럼 레이블을 변경할 수 있다.(별명)
    • (), *, /, +, -(산술 연산자) : NUMBER와 DATE 자료형에 대해 적용된다.
    • || (합성 연산자) : 문자와 문자를 연결하는 경우 사용할 수 있다. 합성 연산자 대신 CONCAT 함수를 사용할 수도 있다.

 

INSERT(Oracle)

  • 데이터베이스의 테이블에 새로운 행을 추가하기 위한 명령어
  • 테이블에 데이터를 입력하는 두 가지 방법
    • INSERT INTO 테이블명 (컬럼 목록) VALUES (컬럼 목록 각각의 항목에 해당하는 값 목록);
      • (컬럼 목록)으로 정의하지 않은 컬럼은 Default로 NULL 값이 입력된다.
      • Primary Key나 Not NULL로 지정된 컬럼은 NULL 값이 허용되지 않는다. (해당 컬럼에 NULL이 들어갈 경우 에러 발생)
    • INSERT INTO 테이블명 VALUES (전체 컬럼에 각각의 항목에 해당하는 값 목록);
      • 테이블의 컬럼 목록 순서대로 값을 입력해야한다.
  • 데이터 유형이 문자 유형인 경우
    • '(SINGLE QUOTATION)으로 값을 둘러 싼다. 예) 'history'
  • 데이터 유형이 숫자 유형인 경우
    • '(SINGLE QUOTATION)을 사용하지않고 그냥 입력한다. 예) 61

 

UPDATE(Oracle)

  • 데이터베이스의 테이블에 존재하는 행을 수정하기 위한 명령어
  • 테이블의 데이터를 수정하는 방법
    • UPDATE 테이블명
    • SET 수정대상 컬럼명 = 수정 하려는 값;

 

DELETE(Oracle)

  • 데이터베이스의 테이블에 존재하는 행을 삭제하기 위한 명령어
  • 테이블의 데이터를 삭제하는 방법
    • DELETE [FROM] 삭제를 원하는 정보가 들어있는 테이블명
  • 테이블의 전체 데이터를 삭제하는 경우, 시스템 활용 측면에서는 삭제된 데이터를 로그로 저장하는 DELETE TABLE 보다는 시스템 부하가 적은 TRUNCATE TABLE을 권고한다.
  • 단, TRUNCATE TABLE의 경우 삭제된 데이터의 로그가 없으므로 ROLLBACK이 불가능하므로 주의해야 한다.

 

반응형

+ Recent posts