[Oracle/SQL] DML, 데이터 조작 언어

yuseon Lim·2021년 5월 11일
0

Oracle SQL

목록 보기
4/5
post-custom-banner

데이터 조작 언어 (DML: Data Manipulation Language)

  • 레코드 삽입
  • 레코드 수정
  • 레코드 삭제
  • 레코드 검색

레코드 삽입

형식

insert into <테이블 이름>(<필드 리스트>) values(값리스트)
  • <필드 리스트>: 삽입에 사용될 테이블의 필드들
  • <값 리스트>: <필드리스트>의 순서에 맞춰 삽입될 값

특징

  • <필드리스트>에 나열되지 않은 필드에 대해서는 널값이 입력됨
    • 단, not null로 설정 했을 경우 생략 불가.
  • <필드리스트>를 생략할 경우 <값 리스트>에는 테이블을 생성할 때 나열한 필드의 순서에 맞춰서 값을 나열
  • <필드리스트> 의 순서는 테이블을 생성 할 때의 순서와 꼭 일치할 필요는 없음
  • <필드리스트> 생략 가능 (아래와 같이)
insert into department
values ('101', '컴퓨터공학과', '100호')
  • 외래키로 사용되는 필드에 데이터를 삽입할 때는 부모 테이블에 그 값을 먼저 삽입한 다음에 자식테이블의 외래키를 나중에 할당해주어야 한다.

예시

image

레코드 수정

형식

update <테이블 이름>
set <수정 내역>
where <조건>
  • <수정내역>

    • 대상 테이블의 필드에 들어가는 값을 수정하기 위한 산술식
    • ','를 이용해서 여러필드에 대한 수정 내역을 지정
  • <조건>

    • 대상이 되는 레코드에 대한 조건을 기술
    • 관계대수에서 선택 연산 조건식과 같은 의미
    • 테이블의 모든 레코드에 대해 수정을 적용하려면 where절을 생략
  • 외래키를 수정할때 그 값이 부모 테이블에 없으면 안된다.

레코드 삭제

형식

delete from <테이블 이름>
where <조건>
  • where 절에 지정된 조건을 만족하는 레코드 삭제

  • where절 생략하면 모든 레코드 삭제

    • drop 하면 테이블이 삭제되지만
    • delete 는 레코드만 삭제되고 테이블은 삭제 안됨
  • 외래키로 참조하는 필드를 가지고 있는 부모 테이블에서 레코드 삭제 시도하면 안된다. 자식 테이블에 대한 외래키를 해제하거나 삭제한 뒤에 해야 함

레코드 검색

은 중요하고 복잡한 파트이므로 따로 다루겠다.

참고자료

profile
🔥https://devyuseon.github.io/ 로 이사중 입니다!!!!!🔥
post-custom-banner

0개의 댓글