성장 일기/쌍용교육센터 / / 2023. 1. 16. 12:52

0117/insert, transaction, select

쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는 https://github.com/2jaehoon/ssangyonng.git에 올려두었습니다.

 

insert

  - DML (조작어)
  - 테이블에 record를 생성할 때 사용하는 SQL문
  - 추가되는 데이터는 순서대로 들어가지 않을 수도 있다.
  - transaction 대상 쿼리문( insert, update, delete )
  - 컬럼을 생략하고 추가

    ( insert 할 때 컬럼의 순서 대로만 입력 가능, 컬럼의 값이 없는 경우 추가할 수 없다. 
      값이 어떤 컬럼으로 들어가는 지 알기 어렵다. )

insert into 테이블명 values( 값... );
/*
  values 안의 값 형태
  숫자 : 2023, 1, 1.17
  문자열 :  '문자열'
  날짜 : 시스템의 현재 날짜 : sysdate
          다른 날짜 : 'yyyy-mm-dd' 년월일 형식의 문자열을 입력
          다른 날짜 : to_date()
          */

 

  - 컬럼을 명시하고 추가
    ( insert 할 때 컬럼 순서를 바꿔서 입력 가능, 컬럼의 값이 없는 경우도 추가할 수 있다.
      값이 어떤 컬럼으로 들어가는지 명확하게 알 수 있다. )

insert into 테이블명( 컬럼명, ... ) values ( 값, ... );
/*
  values 안의 값 형태
  숫자 : 2023, 1, 1.17
  문자열 :  '문자열'
  날짜 : 시스템의 현재 날짜 : sysdate
          다른 날짜 : 'yyyy-mm-dd' 년월일 형식의 문자열을 입력
          다른 날짜 : to_date()
          */

 

 

null

  - 값이 있기는 하나 숫자도 문자열도 아닌 사용할 수 없는 값
  - null 아무것도 출력되지 않는다.
  - null은 연산되면 null이 나온다.

transaction

  - DB작업의 단위
  - 대상쿼리문 : insert, update, delete
  - 쿼리문 하나로 transaction이 구성될 수도 있고, 쿼리문 여러 개로 transaction이
    구성될 수 있다.
  - 트랜잭션 완료 : commit, 트랜잭션 취소 : rollback

     DCL( Data Control Language )

 

* commit

  - 접속자 session에서 작업된 내용을 File 영역에 기록하고, 변경된 내역을 모든 
    접속자 session에 통지하는 일

     session에서 memory : 일시적  HDD : 영속적

  -  commit 트랜잭션이 정상적으로 완료되어야 할 때 사용하는 명령어
  -  commit 되기 전의 데이터는 다른 접속자 클라이언트에서 변경, 삭제를 할 수 없다.
  -  commit된 데이터는 rollback될 수 없다.

* 여러 개의 쿼리문이 하나의 트랜잭션을 구성할 수 도 있다.

  - 송금, 이체

    내계좌 update => 내친구 계좌 update

 

* rollback

  - transaction은 구성된 모든 쿼리문이 성공한 후 작업이 종료 되어야 한다.

    구성된 작업 중 하나라도 실패하면 트랜잭션에 모든 작업이 취소되어야 한다.

  - 작업 취소를 할려면 rollback을 사용한다.( commit 된 레코드는 rollback 될 수 없다. )
  - savepoint와 함께 사용되면 특정 지점까지의 작업을 취소할 수 있다.
  - 바로 전 commit 이후까지 모든 작업 취소한다. 

 

* savepoint( 저장점 )

  - rollback이 될 지점을 설정하는 것
  - commit이 되면 저장점은 사라진다, 저장점 이전으로 rollback이 되면 사라진다.
  - 같은 이름의 저장점이 만들어지면 이전의 저장점은 사라진다. 
  - transaction 대상 쿼리문 전에 설정한다. 

savepoint 저장점명;
트랜잭션 대상 쿼리문

rollback to 저장점명;

savepoint a;
insert ...

savepoint b;
insert...

savepoint c;
insert...

rollback to b; //c와 b까지 취소된다.

 

 

select

  - 특정 테이블에서 선택된 컬럼의 모든 레코드를 조회할 때 사용
  - DML, DQL( Data Query Language )

select 컬럼명, 컬럼명 연산자, 함수( 컬럼명 ), 컬럼명 alias
from 테이블명
where 절 – 검색 조건
group by 절 – 그룹으로 묶을 컬럼명
having  절 – 그룹으로 묶일 조건
order by 절 - 정렬 설정


연산자

  - 연산에 사용되는 예약된 부호들
  - select 컬럼, where절, having절에서 사용된다.
  - update에 set에서 사용된다. 
  - 산술연산자 : +, -, *, /, mod()
  - 관계연산자 : >, <, >=, <= , =, != ( <> )
  - 논리연산자 : and, or, not
  - 문자열 붙임 연산자 :  ||
  - 문자열 연산자 :  like, %, _

  - 범위 비교: between  and
  - null비교 : is null, is not null

 

 

'성장 일기 > 쌍용교육센터' 카테고리의 다른 글

0119/group by, order by, 함수  (0) 2023.01.19
0118/update, delete, select  (0) 2023.01.18
0116/DBMS  (0) 2023.01.16
0113/다 대 다 채팅  (0) 2023.01.16
0112/Socket, Thread  (0) 2023.01.12
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유