본문 바로가기
DATABASE/ORACLE

[Oracle] SQL DML / DDL

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