DML / DDL
메인에 오라클 이미지만 떠서 그만 보고싶다...
DML
● 데이터 조작 언어
● 데이터를 실질적으로 관리
● 데이터 베이스 사용자와 관리 시스템간의 인터페이스 제공
INSERT : 생성 된 테이블에 튜플을 삽입
● 기본 형태 : INSERT INTO table_name VALUES(data1, dat2, ...);
● 입력한 데이터 값은 속성의 개수보다 적어야 한다
● 기본형태 2 : INSERT INTO table_name (속성명1, 속성명2, ...) VALUES (data1,dat2, ...);
UPDATE : 데이터 갱신
● 기본형태 : UPDATE tabe_name
SET 속성명1 = 바꿀 데이터 값, 속성명2 = 바꿀 데이터 값, ...
WHERE 조건;
DELETE : 데이터 삭제
● 기본형태 : DELETE FROM table_name WHERE 조건;
● 조건을 쓰지 않으면 모든 데이터들이 삭제 된다
● 삭제 할 내용을 복구하기 위해서는 커밋을 꼭, 해야한다
NULL 값을 삽입하는 다양한 방법
● 데이터를 입력하는 시점에서 해당 컬럼 값을 모르거나 확정되지 않았을 경우에는 NULL 값을 입력해야 한다.
● NULL 값 삽입은 암시적인 방법과 명시적인 방법이 있다.
● 암시적 방법 : 컬럼명 리스트에 칼럼을 생략 하는 것 즉, 다른 칼럼은 값을 입력 하지만 이렇게 생략한 칼럼에는 암시적으로 NULL 값이 할당 되는 것
● 명시적 방법 : VALUES 리스트에 명시적으로 NULL을 입력한다.
● NULL 값을 갖는 칼럼을 추가하기 위해서 NULL 대신 ''을 대신 사용할 수 있다.
서브쿼리로 데이터 삽입하기
● INSERT INTO 다음에 VALUES 절을 사용하는 대신에 서브쿼리를 사용 할 수 있다.
● 기존의 테이블에 있던 여러 행을 복사해서 다른 테이블에 삽입도 가능하다.
● 주의점 : INSERT 명령문에서 지정한 컬럼의 개수나 데이터 타입이 서브쿼리를 수행한 결과와 동일해야 한다.
DDL
● DB 객체들을 생성, 변경, 제거 할 때 사용한다. (테이블 기준)
CREATE : 테이블 생성
● 기본형태 : CREATE TABLE table_name(칼럼 이름 타입(), 칼럼이름 타입());
테이블 복사
● 기본 형태 : CREATE TABLE 복사할 테이블명 AS SELECT *FROM 기존 테이블 명;
ALTER : 테이블 구조 변경
● 기본 형태 : ALTER TABLE table_name ADD(칼럼명 데이터타입);
기존 칼럼 수정
# 해당 칼럼에 자료가 없는 경우
● 칼럼의 데이터 타입 변경 가능
● 칼럼의 크기 변경 가능
# 해당 칼럼에 자료가 있는 경우
● 칼럼의 데이터 타입 변경 불가
● 현재 가지고 있는 데이터 크기보다 큰 크기로 늘리는 것만 가능
기존 칼럼 삭제
● 기본 형태 : ALTER TABLE table_name DROP COLUMN 칼럼명;
DROP : 테이블 삭제
● 기존 테이블 제거시, 테이블에 저장 되어있는 데이터도 함께 제거 된다.
● 한번 제거한 테이블은 다시 복구 불가하다
RENAME : 테이블 이름 변경
● 기본 형태 : RENAME 기존 테이블명 TO 바꾸고 싶은 테이블명;
TURNCATE : 테이블의 모든 내용 제거
● 기본 형태 : TURNCATE table_name;
'DATABASE > ORACLE' 카테고리의 다른 글
[Oracle] 무결성 제약조건 (3) | 2018.04.22 |
---|---|
[Oracle] Transaction (3) | 2018.04.21 |
[Oracle] SQL 서브쿼리 (2) | 2018.04.21 |
[Oracle] SQL Outer Join / ANSI Join (1) | 2018.04.20 |
[Oracle] SQL Self Join (0) | 2018.04.20 |