CRUD와 기본 명령어

오늘은 CRUD와 기본적으로 많이 사용되는 SELECT,DELETE,UPDATE,CREATE,INSERT명령어에 대해 알아보려고 합니다.

 

DB툴은 많은 것이 있지만, 저는 ORACLE을 사용하는 SQLDeveloper를 사용하여 예제를 보여드리겠습니다. 문법은 대체로 비슷하지만 다른 SQL과 약간의 차이가 있을 수 있습니다.

 

CRUD란?

CRUD란

C - CREATE : DB를 생성

R - READ : DB를 읽기

U - UPDATE : DB를 최신화(갱신)

D - DELETE : 필요없는 DATA를 삭제

라는 컴퓨터의 데이터 처리 기본기능에 대한 줄임말 입니다.

 

전화번호부를 예로 들면

C - 홍길동의 연락처 생성

R - 홍길동의 전화번호 찾기

U - 홍길동의 바뀐 전화번호 등록

D - 홍길동의 연락처 삭제

이 네 가지로 이해하시면 되겠습니다.

 

CRUD는 기본명령어에서 C는 INSERT, R은 SELECT, U는 UPDATE, D는 DELETE의 명령어로 각 기능을 수행하는데요, 거기에 테이블과 후에 다룰 인덱스, 뷰등을 만들때도 사용하는 CREATE를 통해 예제를 만들어 보겠습니다.

 

 

CREATE 명령어의 문법은 

CREATE TABLE 테이블명 (

                                               필드명1 속성,

                                               필드명2 속성, ..... );

위의 방식으로 만듭니다. 

create명령어로 연락처 phone_book의 테이블을 만들었으며 필드명 name에 varchar2속성의 10자리 필드라고 생각하시면 이해하기 편하실 거라고 생각됩니다.

 

우선 해당 테이블로 SELECT문을 사용하여 데이터를 READ해보겠습니다.

SELECT문은 다음과 같이 사용합니다

SELECT   읽어낼 컬럼명 FROM 테이블명 ;

하지만 테이블의 모든 데이터를 읽을때는 컬럼명의 자리에 *를 넣습니다. 예제로 다시한번 보겠습니다.

phone_book의 모든 데이터를 읽어와라

실행 결과는 다음과 같습니다.

                                         

읽어온 테이블의 데이터

당연히 테이블만 생성하고 아무것도 하지 않았기 때문에 데이터가 비어있는 상태입니다.

그럼 이 테이블에 데이터를 추가(INSERT)해보겠습니다.

I

 

NSERT문의 문법은 아래와 같습니다

INSERT INTO 테이블명(속성1,속성2,속성3....) VALUES(값1,값2,값3...);

이때 속성명은 생략이 가능하나, 속성명을 생략하면 위 사진의 순서대로 값을 입력해주어야 합니다.

두 가지 예제로 값을 넣어보겠습니다.

컬럼 지정 후 지정한 순서대로 값 넣어주기

                               

컬럼을 지정하기 않고 테이블의 모든 컬럼에 값 삽입하기
컬럼 두개의 값만 삽입하기
결과 사진

윗 사진과 같은 결과가 나옵니다. 보통 데이터를 모든 컬럼 값에 입력해야 할때는 2번째와 같은 방식을 많이 사용하고,

1,3번째 방법은 특정 컬럼에만 값을 넣을때 사용합니다.

 

이젠 UPDATE문을 사용해보겠습니다. 기본 구조는

UPDATE 테이블명 set 변경할필드 = '변경할 값' where 조건;

이며 짱구의 전화번호를 010-1111-2222로 변경하겠습니다.

짱구의 전화번호 변경
테이블에서 변경된 짱구의 전화번호

해당 구문으로 데이터를 수정할 수 있으며, WHERE은 일종의 조건문으로 나중에 CASE와 WHEN문을 다룰때 같이 다뤄보겠습니다.

 

마지막 DELETE입니다. 위처럼 WHERE을 이용하여 특정 데이터를 삭제할 수 있습니다. 기본 구조는 

DELETE 테이블명  WHERE 조건;입니다.

성별이 'M'인 데이터를 삭제하겠습니다.

성별이 남자인 데이터 삭제
남자의 데이터가 삭제된 테이블

이로서 CRUD의 의미와 자주 사용되는 4가지 명령어를 알아보았는데요. 모자란 부분이 많겠지만 복기하며 작성한 글이라 좋게 봐주시면 좋을거 같습니다.

+ Recent posts