일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #홍콩여행 #홍콩국가 #홍콩지도 #홍콩날씨
- JSP #액션태그 #
- Servlet #JSP #GET #POST #클라이언트
- forward #include #param
- 블로그 태그 #국비 #국비학원 #IT #개발자 #프로그래머 #신입 #코딩 #안드로이드 #자바 #JAVA #오라클 #Oracle #SQL #MYSQL #HTML #CSS #JAVASCRIPT #자바스크립트 #서블릿 #SERVLET #JSP #자바스프링 #데이터베이스 #
- #홍콩 #홍콩여행 #홍콩한달살기 #옥토퍼스카드
- #홍콩 #홍콩한달살기 #홍콩버스 #버스어플 #홍콩음식 #홍콩여행 #kmb #lwb#홍
- #라이브러리 #개발자 #REACT #Bootstrap
- #홍콩 #홍콩여애 #홍콩한달살기 #베트남식당 #viet'schoice #외식 #카레 #양지머리카레 #양지머리 #고기쌀국수 #육수존맛 #레몬차 #밀크티 #shatin #홍콩쇼핑 #asus노트북 #어댑터 #홍콩돼지코
- #라이브러리 #개발자 #REACT #Bootstrap #Visual Studio
- JSP #표현언어 #page #include #taglib
- #홍콩 #홍콩여행 #홍콩한달살기 #홍콩사이언스파크 #홍콩산책 #홍콩야경 #홍콩턱돌이
- #홍콩 #홍콩여행 #홍콩한달살기 #홍콩집밥 #홍콩생활 #홍콩베이징구스 #홍콩산책 #홍콩조깅 #홍콩우편함
- #홍콩쌀국수 #탐차이
- #국비 #국비학원 #IT #개발자 #프로그래머 #신입 #코딩 #안드로이드 #자바 #JAVA #오라클 #Oracle #SQL #MYSQL #HTML #CSS #JAVASCRIPT #자바스크립트 #서블릿 #SERVLET #JSP #자바스프링 #데이터베이스 #프레임워크
- #라이브러리 #개발자 #REACT #Bootstrap #REST API
- #라이브러리
- 백엔드개념 #WAS
- #홍콩2층버스
- 서블릿 #Servlet #Request #Response #개발자
- #라이브러리 #개발자 #REACT #Bootstrap #REST API #웹 디자인 #디자인 툴
- Today
- Total
기분좋음
국비 24 일차 본문
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