Oracle DAY4 - DML

어뮤즈온·2020년 12월 10일
0

Oracle

목록 보기
4/8

DML(Date Manipulation Language)

  • 데이터 조회 및 변형을 위한 명령어
  • SELECT, INSERT, UPDATE, DELETE

SELECT 문

  • 데이터를 조회하는 명령
  • SQL 명령 중 가장 많이 사용되는 명령

(사용형식)

SELECT [DISTINCT] | * | 컬럼명 [AS][ " ]컬러별칭[ " ],
       컬럼명 [AS][ " ]컬러별칭[ " ],
         	:
       컬럼명 [AS][ " ]컬러별칭[ " ]
 FROM 테이블명
[WHERE 조건]
[GROUP BY 컬럼명[, 컬럼명,...]]
[HAVING 조건] --SUM, AVG, COUNT, MAX, MIN 일때만 사용
[ORDER BY 컬럼명|컬럼인덱스[ASC|CESC][,컬럼명|컬럼인덱스[ASC|CESC],...];
  • '[DISTINCT]' : 중복된 자료를 배제할 때 사용
  • '컬럼별칭' : 컬럼에 부여된 또 다른 이름
  • 컬럼명 AS 별칭
  • 컬럼명 별칭
  • 컬럼명 [AS] "별칭" : 별칭에 특수문자(공백포함)가 포함된 경우 반드시 " "로 묶어 사용
  • '컬럼인덱스' : SELECT 절에서 기술된 해당 컬럼의 순번(1부터 COUNTING)
  • 'ASC|DESC' : 정렬방법(ASC : 오름차순으로 기본값, DESC : 내림차순)
  • SELECT 문의 실행 순서 : FROM절 -> WHERE절 이하 -> SELECT절

INSERT 문

테이블에 자료를 삽입할 때 사용

(사용형식)
INSERT INTO 테이블명[(컬럼명1, 컬럼명2,...)]
VALUES(값1, 값2,...);

  • '컬럼명1, 컬럼명2,...'은 생략할 수 있다. 략하는 경우 테이블에 존재하는 모든 컬럼의 갯수와 순서 및 데이터 타입에 맞게 자료를 VALUES 절에 기술해야 한다.
  • '컬럼명1, 컬럼명2,...'을 사용하는 경우는 선택된 컬럼에 자료를 삽입하고자 하는 경우 기술하며, VALUES절에 기술된 값과 컬럼명은 1:1로 대응 되어야 한다.
  • '컬럼명1, 컬럼명2,...' 기술시 NOT NULL 컬럼은 생략 될 수 없다.

예)다음 자료를 EMP 테이블에 저장하시오.
[자료]
사원 ID : C1001
사원명 : 홍길동
주소 : 대전시 중구 대흥동 500
부서명 : 총무기획부

INSERT INTO EMP(EMP_ID, EMP_NAME, ADDR, DEPT_NAME)
	VALIES('C1001', '홍길동', '대전시 중구 대흥동 500', '총무기획부');

[자료]
사원ID : C1002
사원명 : 강감찬
주소 : 서울시 성북구 신장위동 300-10
직책 : 부장
부서명 : IT 개발부

INSERT INTO EMP
	VALUES('C1001', '강감찬', '서울시 성북구 신장위동 300-10', NULL, '부장', 'IT 개발부'); -- NULL 대신 '' 사용 가능

UPDATE 문

저장되어 있는 자료(컬럼의 값)를 수정할 때 사용

(사용형식)
UPDATE 테이블명 SET 컬럼명 = 값 [,컬럼명 = 값,...][WHERE 조건]

  • '컬럼명' : 변경할 자료의 컬럼명
  • 'WHERE'절이 생략되면 모든 자료의 해당 컬럼 값을 수정

예)'홍길동' 사원의 전화번호를 042-222-8202'로 수정하시오.

UPDATE EMP
   SET TEL_NO = '042-222-8202'
 WHERE EMP_ID = 'C1001';

예)'강감찬' 사원의 전화번호를 '010-9876-1234'로 직위를 '차장'으로 수정하시오.

UPDATE EMP
   SET TEL_NO = '010-9876-1234', JOB_GRADE = '차장'
 WHERE EMP_NAME = '강감찬';

[문제] 다음 조건에 맞도록 WORK 테이블 등에 자료를 삽입하시오.
[처리조건]
사원번호 'C1001'인 홍길동 사원이 오늘 날짜로 'DAE00001' 사업장에 발령 받아 출근한다. 'DAE000010'사업장은 '대전 상수도 관리사업'으로 오늘부터 공사가 개시되고 2012년 6월 30일에 완공을 목표로하는 사업장이다.

INSERT INTO SITE(SITE_NO, SITE_NAME, START_DATE, P_COM)
	VALUES('DAE00001','대전 상수도 관리사업',SYSDATE,'2021-06-30');
    
INSERT INTO WORK
	VALUEW('C1001', 'DAE00001', SYSDATE);

DELETE 문

  • 테이블에 저장된 자료를 삭제할 때 사용
  • 관계가 설정된 테이블에서 부모테이블의 행 중 참조되고 있는 자료는 삭제 거절
  • ROLLBACK의 대상

(사용형식)
DELETE 테이블명 [WHERE 조건];

  • 'WHERE'절이 생략되면 테이블의 모든 행이 삭제

예)EMP테이블의 모든 자료를 삭제하시오.

DELETE EMP;
profile
Hello, world!

0개의 댓글