![article thumbnail image](https://blog.kakaocdn.net/dn/Lp7TN/btrMJQqJWsX/w28sUZO1i8R40GGjrP5DX0/img.png)
DML언어 -> DB운영 => 삽입(insert), 수정(update), 삭제(delete)
트랜잭션 ->DB에서 일어나는 작업들의 모음(집합), DB작업을 처리하는 기준 => 일괄처리
성능보장과 무결성보장을 위해 트랜잭션을 사용
작업을 시작을 해서 종료가 되기 전까지의 작업들
commit -> 트랜잭션에서 수행한 작업들을 한번에 DB에 영구히 저장
rollback -> 비정상적인 트랜잭션이 수행이 되었을때, 트랜잭션이 이전 시점으로 취소
insert delete : 행단위 작업
update : 열단위 작업
■ insert : 행이 추가가 되면 맨 마지막에 저장이 된다.
insert into table_name ->모든 컬럼에 값을 삽입 하겠다
values( 삽입을 할 값을 명시하는절 )
insert into table_name(a,b,c) ->명시한 컬럼에만 데이터삽입을 하겟다
values( 삽입을 할 값을 명시하는절 a,b,c )
1. into절에 명시된 컬럼의 갯수와 순서, 데이터 타입과 길이(크기)에 맞도록 values의 입력데이터들을 반드시 1:1로 매칭
insert 문 은 두가지 무결성을 본다
*column무결성 -> 구조(길이)에 맞는 데이터인가?
*제약조건 -> pk,fk (조건에 맞는지?)
1. into 절에 널값을 제외하고 입력하는방법
2. values 절에 null값을 입력하는 방법(현업은 이방법을 더 선호)
■ update 명령문 => 열단위 작업을 한다
■ delete절
※db테이블에 동시에 여러개의 작업이 진행 될때 한쪽에서 작업을 하더라도
병행제어 : 하나의 테이블에 여러개의 트랜잭션이 실행됬을때 제어(Lock)를 하는 기법
하나 작업이 되고 다른유저가 같은 테이블에 작업을하면 처음작업이 끝나야 실행이된다.
■ DDL data definition language
생성
수정
삭제
테이블을 만들 때 이름 규칙
●create table 문
DB구현 순서
1. create table -> 생성
2. insert -> data 삽입
3. commit -> data저장
멀티미디어 데이터는 경로주소만 입력하는것이 좋다.
char(5) 고정길이 : 사이즈를 먼저 만들고 입력값을 넣는다.
=> 데이터 확장성으로 기존 크기보다 20% 크게 잡아야 한다.
varchar2(5) 가변길이 : 입력값의 크기에 맞게 맞춰서 공간을 만든다.
성능 | 공간활용도 | |
char() | O | X |
varchar() | X | O |
number : -,o,+
number(p) : 정수값만
number(p,s) : p 정수, s 소숫점
add -> column 추가 (테이블 오른쪽에)
modify -> 수정
drop -> 삭제
DML 은 행에 Lock을 걸지만
DDL 은 table 전체에 Lock 이 걸려버린다 == 동시성이 떨어진다.
(DROP은 auto commit이 된다)
delete (DML) data 삭제, 공간O ,복구는 rollback
truncate (DDL) data+ data와 관련된 정보 삭제, 공간 X, 복구 불가
drop (DDL) data+data와 관련된 정보+ table정보 삭제, 공간X, 복구 불가
PS. SQLD 과정에서 중요한 부분이므로 다시한번 읽고 이해하자!
'Study > DataBase' 카테고리의 다른 글
Database기초 8일차 <제약 조건, 시퀀스, DCL> (1) | 2022.09.23 |
---|---|
Database기초 6일차 <서브쿼리> (1) | 2022.09.21 |
Database기초 6일차 <서브쿼리> (0) | 2022.09.20 |
Database기초 5일차 <Group by, Having> (2) | 2022.09.19 |
Database기초 4일차 <예제 및 JOIN> (0) | 2022.09.17 |