반응형
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이 불가능하므로 주의해야 한다.
반응형