Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

기분좋음

국비 24 일차 본문

IT 포트폴리오/국비지원교육 Diary

국비 24 일차

기분좋음:) 2022. 1. 14. 22:13
반응형

08강 데이터 조작과 트랜젝션

• DML(데이터 조작어) – 데이터를 추가하고, 삭제하고 변경하는 명령어 쿼리의 집합체

• 데이터 추가 : insert

• 데이터 변경 : update

• 데이터 삭제 : delete

 

데이터 추가 - INSERT

• Insert는 테이블에 데이터를 삽입할 때 사용하는 명령어이다.

• 기본 사용법 - insert into 테이블명 (컬럼명1,컬럼명2…) values (데이터1, 데이터2…);

테이블의 모든 컬럼을 채우면 컬럼명을 생략가능.

- insert into 테이블명 values (데이터1, 데이터2…); 이때 데이터 순서는 테이블에 명시된 순서여야 한다

 

• 어떤 값을 넣어야 할지 모를 때 - NULL

• 컬럼을 생략하고 데이터로 생략하면 NULL값으로 입력이 된다.

• 명시적으로 NULL이라고 입력해도 NULL값으로 입력이 된다.

• 테이블 만들 때 NOT NULL 선언하면 NULL 입력 시 에러 발생

• 날짜 입력 시 형식에 맞게 입력해야 한다.(YYYY/MM/DD) -TO_DATE함수를 이용할 수도 있다.

 

데이터 복사

• 서브쿼리를 사용해서 다중 행을 입력할 수 있다.

• 테스트로 사용할 테이블 복제를 진행한다.

CREATE TABLE practice  AS SELECT * FROM employee where 0=1;   

• 다중행 입력 기능으로 원래 테이블의 데이터를 가져온다.

insert into practice select * from employee; 데이터 가져오기

 

데이터 변경 - UPDATE

• UPDATE는 기존 데이터를 변경할 때 사용하는 명령어이다.

기본 사용법 - update 테이블명 set 컬럼명1=데이터1 ,컬럼명2=데이터2…where 조건; 조건절을 생략하면 해당 컬럼의 모든 데이터가 변경된다.

•서브 쿼리를 이용해서 데이터를 변경할 수도 있다.

 

데이터 삭제 - DELETE

• DELETE는 기존 데이터를 삭제할 때 사용하는 명령어이다.

• 기본 사용법 - delete from 테이블명 where 조건;

조건에 해당을 레코드를 삭제한다.

조건절을 생략하면 모든 레코드가 삭제된다.

• 서브 쿼리로 나온 값을 기준으로 레코드를 삭제할 수 있다

 

트랜젝션(Transaction)

• 트랜젝션이란 데이터 처리를 위한 논리적인 작업의 단위를 의미 (commit부터 commit)

• 오라클은 이런 트랜젝션을 기반으로 데이터의 일관성을 보장

• SQL 기본 명령어 중에서 DDL,DCL은 하나의 명령어가 하나의 트랜젝션을 이루고

  DML은 하나 이상의 명령으로 트랜젝션을 구성한다.

• 오라클의 트랜젝션은 데이터의 일관성을 위해서 ALL-or Nothing 방식으로 처리한다.

• 즉, 여러 개의 명령어중 하나만 잘못되어도 모든 명령을 취소시켜서 데이터의 일관성을 유지한다.

• 트랜젝션 관리를 위해 제공하는 명령어는 두가지인데. COMMIT와 ROLLBACK이다.

 

트랜젝션(Transaction) - COMMIT

• COMMIT 명령은 모든 작업을 정상 처리 완료하고 처리의 모든 과정을 확정하는 명령

• 모든 트랜젝션의 처리과정을 데이터베이스에 반영하고 변경된 모든 내용을 영구 저장을 한다.

COMMIT 명령어를 수행하면 하나의 트랜젝션 과정을 종료한다.

 

트랜젝션(Transaction) - ROLLBACK

• ROLLBACK 명령은 작업중 문제가 발생해서 트랜젝션 처리 과정 에 발생한 변경 내용을 취소하는 명령이다.

• ROLLBACK은 트랜젝션으로 인한 하나의 묶음 처리가 시작되기 이전 상태로 되돌린다.

 

09강 테이블 제어(생성, 수정,삭제)

• DDL(데이터 정의어) – 테이블의 구조 자체를 생성하거나 변경, 제거를 하기 위한 명령어의 집합체

• 테이블 생성 : CREATE

• 테이블 변경 : ALTER

• 테이블 제거 : DROP

 

테이블 생성 - CREATE

• CREATE는 테이블의 구조를 생성할 때 사용하는 쿼리문이다.

• 테이블을 만들기 위해서 여러가지 조건을 생성해야 한다.

• 테이블명 ,컬럼의 이름과 타입 , 무결성 제약조건

 

테이블 생성 - CREATE

• CREATE는 테이블의 구조를 생성할 때 사용하는 쿼리문이다.

• 기본 사용법 - CREATE TABLE 테이블명( 컬럼명1 타입, 컬럼명2 타입,… );

 

• 서브 쿼리를 통해서 새로운 테이블을 생성할 수도 있다.

• 이 경우 기존의 테이블의 구조를 복사해 올수 있다

• 다만 NOT NULL을 제외한 제약조건을 복사 해올수 없다.

- CREATE TABLE 테이블명[컬럼 순서...] AS 서브쿼리   

 

• 테이블 구조만 복사(레코드 제외)해 올 수 있다.

CREATE TABLE dept_second
AS

SELECT * FROM department;
WHERE 1=0;

where절 뒤 : true값 반환-구조,데이터 전체복사 false값 구조만 복사

• 또한 서브 쿼리를 생성되는 모든 형태를 테이블로 작성가능하지만,

  컬럼에 수식이 들어간 형태는 반드시 별칭을 지정해야한 다.

CREATE TABLE dept5 AS
SELECT eno,salary*12 AS "ani_sal"
from employee
where dno = 20;

 

테이블 변경 - ALTER

• ALTER는 컬럼을 추가하거나, 컬럼의 정보를 변경하거나, 컬럼을 삭제함으로

테이블의 구조를 변경하기 위해 사용하는 쿼리문이다.

• 기본 사용법 -

-컬럼 생성 : ALTER TABLE 테이블명 ADD(컬럼명 타입(크기)) -타입에 date도 가능

-컬럼 변경 : ALTER TABLE 테이블명 MODIFY 컬럼명 타입(크기) 

  단순히 칼럼 이름만 변경시 

ALTER TABLE dept20 RENAME COLUMN school TO education

-컬럼 삭제 : ALTER TABLE 테이블명 DROP COLUMN 컬럼명

 

테이블 변경 - UNUSED 

• 컬럼 삭제 : 실제 테이블에서 컬럼을 삭제하는 것이 아닌 사용하지 않는다고 명령을 내릴 수 있다

• 실제 삭제하는 것보다 빠르게 삭제한 것과 같은 효과를 낼 수 있다

• 삭제의 효율성을 위한 것으로 복원이 불가능하다.

ALTER TABLE dept 20 SET UNUSED (birth);

• 숨겨진 UNUSED를 테이블로부터 완전히 삭제

ALTER TABLE dept20 DROP UNUSED COLUMNS

 

테이블이름 변경 - RENAME

• RENAME는 테이블의 이름을 변경할 때 사용하는 쿼리문 이다.

기본 사용법 • RENAME 구 테이블명 TO 신규 테이블명

 

테이블 삭제 - DROP

• DROP는 테이블의 구조를 제거할 때 사용하는 쿼리문

• 기본 사용법 • DROP TABLE 테이블 명

 

[경고] 테이블 삭제하면 내부에 포함된 모든 레코드가 삭제되어서 복원 불가능하므로

  테이블 삭제는 신중해야 하며 가급적 하지 않는 것을 권장한다

 

테이블속 데이터 삭제 - TRUNCATE

• TRUNCATE는 테이블의 구조는 남겨두고 모든 레코드를 삭제할 때 사용하는 쿼리문이다.

• 기본 사용법 • TRUNCATE TABLE 테이블 명;

 

데이터 사전

• 데이터 사전이란 데이터베이스를 효율적으로 관리하기 위해 다양한 정보를 저장하는 시스템 테이블의 집합체

USER_ 자신의 계정이 소유한 객체 등에 관한 정보 조회

ALL_ 자신 계정 소유 또는 권한을 부여 받는 객체 등에 관한 정보 조회

DBA_ 데이터베이스 관리자만 접근 가능한 객체 등의 정보 조회

 

• USER_SEQUENCES : 사용자가 소유한 시퀀스 정보

• USER_INDEXES : 사용자가 소유한 인덱스정보

• USER_VIEWS : 사용자가 소유한 뷰 정보

10강 데이터 무결성과 제약조건

• 무결성은 데이터의 정확성, 일관성, 유효성이 유지되는 것을 말 하며 데이터베이스 관리 시스템의 중요한 기능이다

• 개체 무결성 : 모든 테이블은 기본키로 선택된 필드를 가져야 한다.

• 참조 무결성 : 참조관계에 해당하는 두 테이블의 데이터를 항상 일관된 값을 가져야 한다.

• 도메인 무결성 : 테이블에 존재하는 필드의 무결성을 보장하기 위한 것 NOY NULL,필드 타입등이 있다

 

제약조건

• 데이터 무결성 제약 조건이란 테이블에 적절하지 않는 값이 입력되는 것을 방지하기 위해

  테이블을 생성할 때 각 컬럼에 정의 하는 여러 가지 규칙을 말한다.

 

NOT NULL 칼럼에 NULL 값을 포함하지 못하도록 지정한다.

UNIQUE 테이블의 모든 로우에 대해서 유일한 값을 갖도록 한다.

PRIMARY KEY 테이블의 각 레코드를 식별하기 위해 사용되는 키로

                    NULL과 중복된 값을 모두 허용하지 않는다 (NOT NULL + UNIQUE)

FOREIGN KEY 참조되는 테이블에 컬럼의 값이 항상 존재해야 한다.

CHECK 저장 가능한 데이터 값의 범위나 조건을 지정하여 설정한 값 만을 허용한다.

 

제약조건 – NOT NULL

• NOT NULL 제약조건을 사용하면 해당 칼럼은 NULL값을 가질 수 없게 된다.

• 반드시 값을 입력해야 하는 칼럼에 지정한다.

 

제약조건 – UNIQUE

• UNIQUE 제약조건을 사용하면 해당 칼럼은 고유한 값을 가지게 할수 있다 – 중복데이터 입력시 오류 발생

• 단 NULL값을 허용한다

• UNIQUE 제약조건은 이름을 명시하지 않으면 자동으로 제약조건의 이름을 부여한다.

• 테이블 생성시 직접 제약조건의 이름을 부여 할 수 있다.

   사용법  : CONSTRAINT 제약조건명 제약조건 -제약조건명 사용자가 명시

제약조건(Constraint)은 테이블에 잘못된 데이터의 입력을 막기위해 일정한 규칙을 지정

 

제약조건 – PRIMARY KEY

• PRIMARY KEY 제약조건은 테이블에 기본 키를 생성합니다.

• 테이블에는 반드시 기본키가 존재해야 하며 기본키는 두가지 특성을 가진다.

   NULL값을 가질 수 없고, 고유해야 한다. (NOT NULL + UNIQUE)

• 기본키는 특정 레코드를 고유하게 구분(식별)할 수 있어야 한다.(개체 무결성)

 

제약조건 – FOREIGN KEY

• FOREIGN KEY : 참조 무결성을 위한 외래키 제약조건을 생성한다.

- 외래키 제약 조건을 생성하면 두 테이블 간의 관계가 형성된다.

- 이때 외래키가 생성되는 테이블을 참조테이블 또는 자식테이블이라고 부른다.

- 외래키가 가르키는 대상이 되는 테이블을 기준 테이블 또는 부모 테이블 이라고 부른다.

- 참조의 대상이 되는 키는 반드시 기본키나 유니크 제약조건이 있어야 한다.

 

• 자식 테이블의 외래키는 부모 테이블의 기본키를 참조하고 있다.

• 외래키 제약조건에 걸린 해당 컬럼에 데이터를 입력하기 위해서는 부모의 해당 데이터에 존재 해야한다

부모에 존재하지 않는 (동일 속성중 같은 데이터 있어야 함)데이터 입력시 오류를 발생 시킨다

 

제약조건 – CHECK

• CHECK 제약조건은 컬럼에 저장 가능한 데이터의 범위나 조건을 정의한다.

            해당 범위나 조건에 벗어나는 값이 들어오면 오류를 발생 시킨다. 

 

제약조건 – DEFAULT

• DEFAULT 제약조건은 아무런 값을 입력하지 않았을 때 디폴트 값으로 입력되게 만든다.

 

제약조건 변경하기

• 이미 만들어진 제약조건을 중간에 변경할 수 있다

• 제약조건을 변경하는 것은 테이블의 구조를 변경하는 것과 같다.

ALTER TABLE~~

• 제약 조건 추가 : add

• 제약 조건 변경 : modity

• 제약 조건 제거 : drop

 

제약조건 활성화 비활성화

쿼리를 삽입하기 위해 외래키를 잠시 비활성화 한다.

ALTER TABLE registration DISABLE CONSTRAINT registration_stuno_fk;

활성화 ENABLE

반응형

'IT 포트폴리오 > 국비지원교육 Diary' 카테고리의 다른 글

국비 26 일차  (0) 2022.01.18
국비 25 일차  (0) 2022.01.17
국비 23 일차  (0) 2022.01.13
국비 22 일차  (0) 2022.01.12
국비 21 일차  (0) 2022.01.11