오늘보다 더 나은 내일의 나에게_
Oracle 12/12/29 본문
연습문제
29. 이름이 DAVIES 인 사람보다 후에 고용된 사원들의 이름 및 고용 일자를 출력 / 고용 일자를 역순으로 출력
더보기날짜 역순 > DESC
=> 최근 날짜가 상단으로(역순)
30. King을 매니저로 두고 있는 모든 사원들의 이름 및 급여를 출력
더보기X
31. 회사 전체 평균 급여보다 더 많이 받는 사원들 중 이름에 u가 있는 사원들이 근무하는 부서에서 근무하는 사원들의 사번, 이름 및 급여를 출력
더보기X
우선순위를 먼저 정해야 한다(작성 시 문제 뒷부분부터 읽으면서 작성하면 수월)
데이터 조작(DML)
-새 행 추가
-기존 행 수정
-기존 행 삭제
데이터 처리
->일괄처리 : 한 번에 모아서 한꺼번에 처리(안정적이 만 느림)
->실시간 처리 : 고객의 요청을 실시간으로 반영
->분산처리
트랜잭션(자동/수동) : 일괄처리를 하기 위한 작업의 단위
수동(COMMIT, ROLLBAFCK) => TCL
COMMIT : 트랜잭션이 정상적으로 수행이 되었을 때 트랜잭션의 의해 작업내용이 한 번에 데이터베이스에 영구히 저장(트랜잭션에 의해 변경된 내용을 물리적으로 DB에 저장)
ROLLBACK : 트랜잭션이 비정상 작업이 진행되었을 때 트랜잭션 시작 이전 시점으로 취소
(트랜잭션이 진행 중인 상태에서 사용 가능/ 커밋이 되면 사용불가)
트랜잭션 단위
1.DML 문장 전체(연속된 문장 포함) = 1T
(DML명령어 다음에 새로운 트랜잭션이 실행될 때 종료)
EX) INSERT, INSERT, CREATE 실행 시 (INSERT두개의 명령어 종료 시 자동으로 COMMIT)
2.DDL, DCL 명령문 한 개가 = 1T
(시작과 동시에 AUTO COMMIT)
DML
INSERT-행 단위 작업 진행
새로운 행이 추가가 되면 테이블의 마지막에 추가가 된다.
DELETE-행 단위 작업 진행
UPDATE-열 단위 작업 진행
INSERT문
-한 번에 한 행만 추가할 수 있음
-INTO 절에 명시된 컬럼의 순서, 개수, DATATYPE, 길이에 맞게 VALUES절의 데이터가 1:1로 알맞아야 함
-데이터 삽입 전 무결성 점검을 한다(COLUMN 무결성 순서, 길이, 타입 / 제약조건(PK FK) 무결성)
-서브 쿼리 사용 가능
방법 1
INSERT INTO TALBE명
VALUES 컬럼별로 입력할 데이터(값)를 명시
=> 모든 컬럼에 데이터 값을 삽입
방법 2
INSERT INTO TALBE명(컬럼이름)
VALUES 컬럼별로 입력할 데이터(값)를 명시
=> 명시된 컬럼에만 데이터 값을 삽입
NULL 값 삽입 방법
INTO 자동 => 컬럼이름 삭제
VALUES 수동 => NULL 명시 (많이 사용됨)
DUAL 테이블
가상의 테이블, 알려지지 않은 작업을 할 때 사용
SYSDATE -> 시스템의 날짜 출력
UPDATE
테이블의 내용 수정 (열 단위 작업 진행)
SET에서 조건이 두 개 이상시 , (콤마)로 구분
UPDATE 테이블명
SET (변경시킬 값)
WHERE(선택사항, 하지만 생략 시 모든 테이블이 수정된다)
DELETE
테이블에서 행 제거
DELETE FROM 테이블명
WHERE (선택사항, 생략 시 테이블 삭제)
부모 자식 관계 테이블
부모 테이블
INSERT - PK값 중 중복된 값을 추가 X
UPDATE, DELETE - 참조 값이 없으면 수정 가능
**데이터베이스 읽기일관성 현상**
다른 트랜잭션에 의해 변경된 내용은 다른 어떤 누구도 볼 수 없다.
커밋이 되어야만 변경된 데이터 값을 볼 수 있다.
**데이터베이스 대기상태**
트랜잭션이 진행 중인 상태에 LOCK이 걸림 => 다른 계정으로 수정할 수 없다.
**병행제어**
하나의 테이블에 여러 개의 트랜잭션이 동시에 실행되는데 그 트랜잭션에 LOCK이라는 자원을 설치함으로써 다른 트랜잭션에 의해 피해가 일어나지 않도록 동시에 일어나는 트랜잭션을 관리해주는 기법
LOCK으로 제한되어있다.
트랜잭션의 크기는 작을수록 좋다 => LOCK수가 많음
LOCK수가 적으면 동시성도 줄어듬!
트랜잭션의 크기가 크면 ROLLBACK 상황 시 데이터 손실량이 커짐
트랜잭션의 크기가 너무 작으면 과부하가 걸릴 수 있음(적절한 크기가 필요)
명령문 저장방법
SAVE ___. SQL
. SQL => 스크립트 파일
저장된 경로 => C:\oraclexe\app\oracle\product\11.2.0\server\bin (오라클 설치경로)
ED(에디터) - 버퍼 메모리를 이용
. SQL파일 - 파일 저장(여러 개의 명령문 저장 가능)
실행방법 @파일명(___. SQL)
오류 내용 정리
ERROR
ORA-00001: unique constraint () violated
=> 무결성 제약조건 에러
해결방법 - 중복된 PK값 제거 / INSERT, UPDATE문 시도
'Oracle' 카테고리의 다른 글
Oracle 21/12/31 (0) | 2022.01.12 |
---|---|
Oracle 21/12/30 (0) | 2022.01.12 |
Oracle 21/12/28 (0) | 2022.01.12 |
Oracle 21/12/27 (0) | 2022.01.12 |
Oracle 21/12/24 (0) | 2022.01.12 |