클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

데이터를 추가, 수정, 삭제하는 데이터 조작어 1 - 테이블에 데이터 추가하기 본문

알고리즘 및 자료 관리/데이터베이스

데이터를 추가, 수정, 삭제하는 데이터 조작어 1 - 테이블에 데이터 추가하기

huenuri 2024. 8. 21. 17:38

저녁을 먹고 다시 공부를 시작하는 건 정말 어려운 일 같다. 수많은 유혹과 하기 싫은 마음과 싸우면서 8시 반이 넘어 겨우 자리에 앉아보았다. 오늘도 3시간 이상 공부를 하려고 한다. 오늘의 목표는 DML과 트랜젝션까지 학습하는 건데 가능할지 모르겠다.
정처기 공부도 할 게 많으니 겨우 DML을 빠듯하게 마칠 수도 있겠지만 일단 시작해보기로 하자!

이제부터 배우게 될 단원은 조금 전에 정처기 공부를 할때 학습했던 부분이다. 이론을 먼저 학습하고 실습에 들어가니 더 잘 이해가 될 것 같다.

 

학습 내용

테이블에 데이터 추가하기

학습 시간

저녁 8시 40분 ~ 10시 20분 <1시간 40분 소요>


 

 

테이블에 데이터 추가하기

 

DDL이란?

 

 

 

 

 

 

 

 

 

 

 

테이블 생성하기

회원가입, 새 글쓰기, 새로운 이체 내역 등 새로운 데이터가 발생하는 기능은 관련 테이블에 새 데이터를 추가해 줌으로써 구현할 수 있다. 이처럼 특정 테이블에 데이터를 새로 추가할 때 INSERT문을 사용한다.

 

 

 

 

 

 

 

 

 

 

 

 

여기서 단축키를 눌러 수강생 정보를 볼 수 있다. 그리고 수강생정보 테이블도 만들어졌다.

 

 

 

 

 

 

실습 문제 1

 

TEST_성적표 테이블을 만든 다음에 정보를 불러올 수 있다. 전의 쿼리문과 달리 FROM절을 실행해도 아무것도 출력되지 않는다.

 

 

테이블은 이 정보를 보면서 세부내용을 작성해주면된다. VARCHAR2로 학생 ID는 9, 과목은 30이라는 공간이 만들어진 것이다.

 

 

 

 

실습 문제 2

 

 

 

 

 

 

 

 

 

 

 

테이블을 한번 생성한 후 같은 이름으로 중복해서 만들 수 없다. 현재 창을 끄고 다시 열더라도 이전의 내용이 저장되기 때문에 중복은 적용이 되지 않는다. 이제 책에 있는 내용을 살펴보며 학습을 이어가기로 하자.

 

 

 

 

 

 

테이블 만들기

 

 

 

 

하지만 테이블을 생성한 후 조회는 되지 않는다. 조회하는 건 다른 명령어를 사용하는 거였다. 전에 SELECT문에서처럼 FROM절을 클릭하면 무조건 조회가 되는 게 아니었다.

 

 

 

 

 

 

 

테이블 전체 열 조회하기

AS는 이것과 동일한 테이블을 만들겠다는 일종의 선언이었다.


 

 

 

 

 

테이블에 데이터를 추가하는 INSERT문

 

한 행을 추가하여 테이블이 삽입되었다. 하지만 INSERT문에서 다음과 같은 경우 오류가 날 수 있다.

 

  1. 지정한 열 개 수와 각 열에 입력할 데이터 개수가 일치하지 않을 때
  2. 자료형이 맞지 않는 경우
  3. 일 길이를 초과하는 데이터를 지정한 경우

 

 

 

 

 

 

INSERT문에 열 지정 없이 데이터 추가하기

60 번호가 추가되었다.


 

 

 

 

테이블에 NULL 데이터 입력하기

INSERT문으로 새로운 데이터를 추가할 때 특정 열에 들어갈 데이터가 확정되지 않았거나 굳이 넣을 필요가 없는 데이터인 경우에는 NULL을 사용한다. NULL을 INSERT문에 지정하는 방법은 NULL을 직접 명시적으로 입력해주는 방법과 대상 열을 생략하여 암시적으로 NULL이 입력되도록 유도하는 방법이 있다.

 

NULL의 명시적 입력

 

NULL 문자가 아닌 '' 공백을 사용하여 표시할 수 있다.

 

 

 

 

 

 

NULL의 암시적 입력

암시적 입력 방법은 INSERT문에 NULL이 들어가야 할 열 이름을 아예 입력하지 않는 것이다.


 

 

 

 

테이블에 날짜 데이터 입력하기

EMP 테이블을 복사하여 테이블 만들기

아직은 아무것도 출력된 것이 없다. WHERE절의 조건이 1<>1이기 때문에 항상 false가 되어 행은 만들어지지 않는다.

 

 

 

 

INSERT문으로 날짜 데이터 입력하기

 

 

 

 

서브쿼리를 사용하여 한번에 여러 데이터 추가하기


 

 

 

학습을 마치고

이 공부를 하다가 갑자기 알아보고 싶은 게 있어서 몇 가지 찾아보느라 시간이 생각보다 많이 걸렸다. 그리고 집중도 잘 되지 않아서 공부하는 게 조금 힘들었다.
다음 장에 수정과 삭제 기능이 있지만 분량이 많으므로 다음 포스트에 이어서 정리해볼 것이다.

오늘 내가 정처기 공부를 했던 내용들이 모두 조금씩 들어있었다. 이 다음 장에도 12장까지도 살펴보니 오늘 배웠던 용어들이 많이 등장했다.