10 데이터 조작어 데이터 조작어 데이터 입력 데이터 수정 데이터 삭제 MERGE 트랜잭션 관리 시퀀스.

Slides:



Advertisements
Similar presentations
출석수업 과제 – 총 5문제, 10월 25일 제출 정보통계학과 장영재 교수.
Advertisements

12 데이터 무결성 제약조건 데이터 무결성 제약조건의 개념 데이터 무결성 제약조건의 종류 무결성 제약조건의 생성 방법.
02 SQL 언어 SQL 명령문의 종류와 사용 방법 오라클 오류 메시지.
02 SQL 언어 SQL 명령문의 종류와 사용 방법 오라클 오류 메시지.
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
16 분석함수 분석 함수의 개념 분석 함수의 종류 계층적 질의문.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
06 SQL 함수 SQL 함수의 개념 문자 함수 숫자 함수 날짜 함수 데이터 타입의 변환 일반 함수.
데이터 베이스 설계 및 실습 #1 - 오라클 설치 및 SQL 기본.
제 9 장 구조체와 공용체.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
8장 서브 쿼리.
12장 데이터 읽기 일관성과 락.
6장 Mysql 명령어 한빛미디어(주).
MySQL 및 Workbench 설치 데이터 베이스.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Windows Server 장. 사고를 대비한 데이터 백업.
11 테이블 관리와 데이터 딕셔너리 데이터베이스 응용 프로젝트 개발 테이블 구조 변경 데이터 딕셔너리.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
5장 Mysql 데이터베이스 한빛미디어(주).
6장 그룹 함수.
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
제 3장. C보다 나은 C++ II.
07. 디바이스 드라이버의 초기화와 종료 김진홍
09 서브쿼리(Subquery) 서브쿼리의 개념 서브쿼리의 종류 데이터베이스 실무에서 서브쿼리 사용시 주의 사항.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
19장. 트랜잭션과 락(LOCK) 트랜잭션이란? MySQL의 트랜잭션 락(LOCK) 쉽게 배우는 MySQL 5.x
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
MYSQL 설치 SQL언어 SQL언어의 활용 웹과 SQL언어와의 연동
KHS JDBC Programming 4 KHS
PySpark Review 박영택.
5장 Mysql 데이터베이스 한빛미디어(주).
KIM HEESANG PL/SQL 2 KIM HEESANG
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
You YoungSEok Oracle 설치 You YoungSEok
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
04 데이터 타입 데이터 타입의 종류 데이터 타입의 특성 데이터 타입의 결정 전략.
JDBC Lecture 004 By MINIO.
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
뇌를 자극하는 Windows Server 2012 R2
03 SQL*Plus SQL*Plus 개요 SQL*Plus 명령어 SQL*Plus 사용 환경 명령어
테이블 만들기 실습 목표 입력할 tableDB <실습1> SSMS에서 테이블 생성
2장. 변수와 타입.
기말 프로젝트 계획 MVC 패턴 기반 웹 애플리케이션 개발 프로젝트명 : 팀명 : 팀원 :
데이터 베이스 DB2 관계형 데이터 모델 권준영.
CHAP 21. 전화, SMS, 주소록.
문성우 SQL 실습 Part Ⅰ 문성우.
데이터 동적 할당 Collection class.
10 데이터 조작어 데이터 조작어 데이터 입력 데이터 수정 데이터 삭제 MERGE 트랜잭션 관리 시퀀스.
SPL3D Printer If 조건문.
14 뷰(View) 뷰의 개념 뷰 관리.
제 23 장 오라클에서 보안 기능.
Chapter 10 데이터 검색1.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
10주 MariaDB에서 트랜잭션 지원 및 동시성 제어 기능
Mariadb 트랜잭션과 동시성 제어 장종원
14 뷰(View) 뷰의 개념 뷰 관리.
 6장. SQL 쿼리.
임시테이블과 테이블변수 SQLWorld Study Group - 최명환 -.
11장. 보안과 권한 관리 보안 권한 관리. 11장. 보안과 권한 관리 보안 권한 관리.
7 생성자 함수.
6 객체.
교과서 78쪽 학습 목표 정보 관리의 필요성을 이해할 수 있다. 데이터베이스의 개념과 필요성을 이해할 수 있다.
Ⅰ. 데이터베이스 정의 Ⅱ. MS SQL 서버 Ⅲ. 데이터베이스 인터페이스
Presentation transcript:

10 데이터 조작어 데이터 조작어 데이터 입력 데이터 수정 데이터 삭제 MERGE 트랜잭션 관리 시퀀스

데이터 조작어 데이터 조작어 (DML:Data Manipulation Language)란? 종류 트랜잭션 테이블에 새로운 데이터를 입력하거나 기존 데이터를 수정 또는 삭제하기 위한 명령어 종류 INSERT : 새로운 데이터 입력 명령어 UPDATE : 기존 데이터 수정 명령어 DELETE : 기존 데이터 삭제 명령어 MERGE : 두개의 테이블을 하나의 테이블로 병합하는 명령어 트랜잭션 여러 개의 명령문을 하나의 논리적인 작업단위로 처리하는 기능 트랜잭션 관리 명령어 COMMIT : 트랜잭션의 정상적인 종료를 위한 명령어 ROLLBACK : 트랜잭션의 비정상적인 중단을 위한 명령어 10장. 데이터 조작어

데이터 입력 개요 테이블에 데이터를 입력하기 위한 명령어 INSERT 명령문 사용 데이터 입력 방법 단일 행 입력 : 한번에 하나의 행을 테이블에 입력하는 방법 다중 행 입력 : 서브쿼리를 이용하여 한번에 여러 행을 동시에 입력하는 방법 10장. 데이터 조작어

단일 행 입력 단일 행 입력 방법 INTO 절에 명시한 칼럼에 VALUES 절에서 지정한 칼럼 값을 입력 입력되는 데이터 타입은 칼럼의 데이터 타입과 동일해야 함 입력되는 데이터의 크기는 칼럼의 크기보다 작거나 동일해야 함 CHAR, VARCHAR2, DATE 타입의 입력 데이터는 단일인용부호(‘’)로 묶어서 입력 10장. 데이터 조작어

단일 행 입력 예 10장. 데이터 조작어

단일 행 입력 예 10장. 데이터 조작어

NULL 입력 NULL 입력 NULL 입력 방법 NULL : 미확인 값 또는 아직 적용되지 않은 값 묵시적인 방법 INSERT INTO 절에 해당 칼럼 이름과 값을 생략 예외 : 해당 칼럼에 NOT NULL 제약조건이 지정된 경우 불가능 명시적 방법 VALUES 절의 칼럼 값에 NULL , ‘ ’ 사용 10장. 데이터 조작어

명시적으로 NULL을 입력하는 예 10장. 데이터 조작어

날짜 데이터 입력 방법 날짜 형식 입력 해당 시스템에서 요구하는 기본 날짜 형식으로 입력 UNIX 기본 날짜 형식 : ‘DD-MON-YY’, ‘01-Mar-08’ 퍼스널 오라클 : ‘YY/MM/DD’, ‘08/03/01’ 필요에 따라서 TO_DATE 함수 사용 : TO_DATE(‘2005/01/01’, ‘YYYY/MM/DD’) 10장. 데이터 조작어

날짜 형식 입력하는 예 10장. 데이터 조작어

SYSDATE 함수를 이용한 현재 날짜 입력 SYSDATE 함수 시스템에 저장된 현재 날짜 데이터를 반환하는 함수 현재 시점의 날짜 값을 자동적으로 입력 10장. 데이터 조작어

다중 행 입력 다중 행 입력 방법 INSERT 명령문에서 서브쿼리 절을 이용 unconditiional INSERT ALL conditional INSERT ALL conditional FIRST INSERT pivoting INSERT지원 10장. 데이터 조작어

단일 테이블에 다중 행 입력 단일 테이블에 다중 행 입력 방법 INSERT 명령문에서 서브쿼리 절을 이용하여 자신이나 다른 테이블에 데이터를 복사하여 여러 행 동시 입력 INSERT 명령문의 VALUES절 대신 서브쿼리에서 검색된 결과 집합을 한꺼번에 입력 서브쿼리의 결과 집합은 INSERT 명령문에 지정된 칼럼 개수와 데이터 타입이 일치해야 함 서브쿼리를 이용한 다중 행 입력시 테이블에 기본 키, 고유 키 제약조건이 중복되지 않도록 주의 제약 조건을 위반할 경우 입력되지 않고 오류 발생 10장. 데이터 조작어

다중 행 입력 : subquery 사용예 10장. 데이터 조작어

다중 행 입력 - INSERT ALL INSERT ALL(unconditional INSERT ALL) 명령문 서브쿼리의 결과 집합을 조건 없이 여러 테이블에 동시에 입력 서브쿼리의 칼럼 이름과 데이터가 입력되는 테이블의 칼럼이 반드시 동일해야 함 ALL : 서브쿼리의 결과 집합을 해당하는 INSERT절에 모두 입력 FIRST : 서브쿼리의 결과 집합을 해당하는 첫번째 INSERT절에 입력 subquery : 입력 데이터 집합을 정의하기 위한 서브쿼리 10장. 데이터 조작어

height_info, weight_info 테이블 생성 10장. 데이터 조작어

다중 행 입력 - INSERT ALL 예 10장. 데이터 조작어

다중 행 입력 - Conditional INSERT ALL 서브쿼리의 결과 집합에 대해 WHEN 조건절에서 지정한 조건을 만족하는 행을 해당되는 테이블에 각각 입력 서브쿼리에서 검색된 행을 만족하는 조건이 여러 개일 경우 해당 테이블에 모두 입력 10장. 데이터 조작어

다중 행 입력 - Conditional INSERT ALL ALL : WHEN~THEN~ELSE의 조건을 만족하는 서브쿼리의 모든 검색 결과를 입력하기 위한 옵션 WHEN 조건절 THEN : 서브쿼리의 결과 집합에 대한 비교 조건 서브쿼리의 결과 집합 중에서 조건절1을 만족하는 결과 행은 table1에 입력, 조건절 2을 만족하는 결과 행은 table2에 입력, 그리고 어느 조건절도 만족하지 않는 행은 table3에 입력 10장. 데이터 조작어

다중 행 입력 - Conditional INSERT ALL 예 10장. 데이터 조작어

다중 행 입력 – Conditional-First INSERT 서브쿼리의 결과 집합에 대해 WHEN 조건절에서 지정한 조건을 만족하는 첫번째 테이블에 우선적으로 입력하기 위한 명령문 서브쿼리의 결과 집합 중에서 조건을 만족하는 첫 번째 WHEN절 에서 지정한 테이블에만 입력하고 나머지 WHEN절 무시 10장. 데이터 조작어

다중 행 입력 – Conditional-First INSERT 예 10장. 데이터 조작어

다중 행 입력 – PIVOTING INSERT OLTP(OnLine Transaction Processing) 업무에서 사용되는 데이터를 데이터 웨어하우스 업무에서 사용되는 분석용 데이터로 변환하는 경우에 유용 하나의 행을 여러 개의 행으로 나누어서 입력하는 기능 Unconditional INSERT ALL 명령문과 거의 동일 INTO 절에서 하나의 테이블만 지정 예 : 5개의 칼럼으로 구성된 요일별 판매 실적 데이터를 하나의 칼럼으로 통합할 때 하나의 칼럼으로 통합된 판매 데이터의 요일을 구분하기 위하여 요일 구분 칼럼을 추가 10장. 데이터 조작어

다중 행 입력 – PIVOTING INSERT 10장. 데이터 조작어

다중 행 입력 – PIVOTING INSERT 10장. 데이터 조작어

다중 행 입력 – PIVOTING INSERT 10장. 데이터 조작어

데이터 수정 데이터 수정 개요 UPDATE 명령문은 테이블에 저장된 데이터 수정을 위한 조작어 데이터 수정 방법 한번에 하나의 행을 수정하는 방법 WHERE 절의 검색 조건을 만족하는 모든 행에 대하여 집합 단위로 수정하는 방법 10장. 데이터 조작어

데이터 수정 예 10장. 데이터 조작어

서브쿼리를 이용한 데이터 수정 서브쿼리를 이용한 데이터 수정 개요 UPDATE 명령문의 SET 절에서 서브쿼리를 이용 다른 테이블에 저장된 데이터 검색하여 한꺼번에 여러 칼럼 수정 SET 절의 칼럼 이름은 서브쿼리의 칼럼 이름과 달라도 됨 데이터 타입과 칼럼 수는 반드시 일치 10장. 데이터 조작어

서브쿼리를 이용한 데이터 수정 예 10장. 데이터 조작어

서브쿼리를 이용한 데이터 수정 10장. 데이터 조작어

서브쿼리를 이용한 데이터 수정 10장. 데이터 조작어

데이터 삭제 데이터 삭제 개요 DELETE 명령문은 테이블에 저장된 데이터 삭제를 위한 조작어 WHERE 절을 생략하면 테이블의 모든 행 삭제 10장. 데이터 조작어

단일 행 삭제 예 10장. 데이터 조작어

서브쿼리를 이용한 데이터 삭제 서브쿼리를 이용한 데이터 삭제 개요 WHERE 절에서 서브쿼리 이용 다른 테이블에 저장된 데이터를 검색하여 한꺼번에 여러행의 내용을 삭제함 WHERE 절의 칼럼 이름은 서브쿼리의 칼럼 이름과 달라도 됨 데이터 타입과 칼럼 수는 일치 10장. 데이터 조작어

서브쿼리를 이용한 데이터 삭제 예 10장. 데이터 조작어

MERGE MERGE 개요 구조가 같은 두개의 테이블을 비교하여 하나의 테이블로 합치기 위한 데이터 조작어 구조가 같은 두개의 테이블을 비교하여 하나의 테이블로 합치기 위한 데이터 조작어 WHEN 절의 조건절에서 결과 테이블에 해당 행이 존재하면 UPDATE 명령문에 의해 새로운 값으로 수정,그렇지 않으면 INSERT 명령문으로 새로운 행을 삽입 대량의 데이터를 분석하기 위한 업무에 유용 예를 들면, 전자상거래 회사에서 하루 수만건의 데이터를 평소에는 판매 데이터를 월 단위로 분리하여 별도의 테이블에서 관리하다가 연말에 판매 실적 분석을 위해 하나의 테이블로 합치는 경우 10장. 데이터 조작어

MERGE 사용법 10장. 데이터 조작어

MERGE 사용 예 10장. 데이터 조작어

MERGE 사용 예 10장. 데이터 조작어

트랜잭션 관리 트랜잭션 개요 관계형 데이터베이스에서 실행되는 여러 개의 SQL명령문을 하나의 논리적 작업 단위로 처리하는 개념 COMMIT : 트랜잭션의 정상적인 종료 ROLLBACK : 트랜잭션의 전체 취소 10장. 데이터 조작어

COMMIT COMMIT 개요 하나의 트랜잭션에서 실행되는 모든 SQL 명령문의 처리 결과가 디스크에 안전하게 보장되는 것을 보장 처리 결과를 디스크에 영구적으로 저장 해당 트랜잭션에 할당된 CPU, 메모리 같은 자원이 해제 서로 다른 트랜잭션을 구분하는 기준 COMMIT 명령문을 실행하기 전에 하나의 트랜잭션에서 변경한 결과를 다른 트랜잭션에서 접근할 수 없도록 방지하여 일관성 유지 10장. 데이터 조작어

COMMIT 예 time 10장. 데이터 조작어

ROLLBACK ROLLBACK 개요 하나의 트랜잭션에서 실행된 SQL 명령문의 처리결과를 취소 CPU,메모리 같은 해당 트랜잭션에 할당된 자원을 해제 트랜잭션을 강제 종료 10장. 데이터 조작어

ROLLBACK 예 10장. 데이터 조작어

ROLLBACK 예 10장. 데이터 조작어

시퀀스 시퀀스 개요 유일한 식별자 기본 키 값을 자동 생성하기 위하여 일련번호 생성하기 위한 객체 예를 들면, 웹 게시판에서 글이 등록되는 순서대로 번호를 하나씩 할당하여 기본키로 지정하고자 할때 시퀀스를 편리하게 이용 여러 테이블에서 공유 가능 10장. 데이터 조작어

시퀀스 생성 INCREMENT BY n : 시퀀스 번호의 증가치로 기본은 1, 일반적으로 –1 사용 START WITH n : 시퀀스 시작번호, 기본값은 1 MAXVALUE n : 생성 가능한 시퀀스의 최대값 MAXVALUE n : 시퀀스 번호를 순환적으로 사용하는 cycle로 지정한 경우, MAXVALUE에 도달한 후 새로 시작하는 시퀀스값 CYCLE | NOCYCLE : MAXVALUE 또는 MINVALUE에 도달한 후 시퀀스의 순환적인 시퀀스 번호의 생성 여부 지정 CACHE n | NOCACHE : 시퀀스 생성 속도 개선을 위해 메모리에 캐쉬하는 시퀀스 개수, 기본값은 20 26 10장. 데이터 조작어

시퀀스 생성 예 10장. 데이터 조작어

CURRVAL 과 NEXTVALUE 함수 CURVAL NEXTVAL CURVAL, NEXTVAL 시퀀스에서 생성된 현재 번호를 확인 NEXTVAL 시퀀스에서 다음 번호 생성 CURVAL, NEXTVAL INSERT, UPDATE 문에서 사용 서브쿼리, GROUP BY, HAVING, ORDER BY, DISTINCT와 함께 사용할 수 없으며, 칼럼의 기본값으로 사용할 수 없음 10장. 데이터 조작어

CURRVAL 과 NEXTVALUE 함수 예 10장. 데이터 조작어

CURRVAL 과 NEXTVALUE 함수 예 10장. 데이터 조작어

시퀀스를 이용한 기본 키 생성 개요 기본키로 사용할 수 있는 적절한 칼럼이 없거나 다수의 칼럼을 결합해야 식별이 가능한 경우에는 시퀀스를 이용 NEXTVAL 함수를 사용 10장. 데이터 조작어

시퀀스를 이용한 기본 키 생성 예 10장. 데이터 조작어

시퀀스 정의 변경 시퀀스 정의 변경 시퀀스 생성후 증가치, 최소 값, 최대 값 등의 정의를 수정 변경된 시퀀스 정의는 새로 생성되는 시퀀스 값부터 적용 ALTER SEQUENCE 명령문을 사용하여 변경 START WITH절은 생성 직후의 시작 값을 의미, 변경 불가 10장. 데이터 조작어

시퀀스 삭제 시퀀스 삭제시 DROP SEQUENCE 명령문 사용 10장. 데이터 조작어