본문 바로가기

데이터베이스설계

[데이타베이스설계] SQL (3)

  • 5-1) EXISTS 절
  • 5-2) 삭제 Delete
  • 5-3) 삽입 Insert into
  • 5-4) 수정 Update

 

  • 5-1) EXISTS 절

exists절은 관련된 nested 쿼리의 결과가 empty인지 아닌지 판단할때 사용된다. (True / False 를 반환한다.)

SELECT, UPDATE, INSERT, DELETE절에 사용될 수 있다.

NOT EXISTS
EXISTS with DELETE

 

 

 


 

  • 5-2) 삭제 Deletion

데이터베이스에서의 수정은 Deletion, Insertion, Update로 이루어질 수 있다. 먼저 삽입, Deletion에 대해 살펴본다.

Where절의 조건식을 만족하는 하나 혹은 두개 이상의 레코드를 삭제할 수 있다.

(* 만약, Where절을 생략하고 DELTE절을 사용하면 모든 레코드를 삭제하여 Table이 empty가 된다.)

Delete syntax
Delete all record
Delete example 1

     

 

 


 

  • 5-3) 삽입 Insert into

 

테이블에 새 row를 추가하기 위해 Insert into 절을 사용한다. Insert into를 사용하는 방법은 두 가지가 있다.

 

1) column을 지정해주지 않고 value만 지정

Values만 지정

이때, values(value1, .. value n)에서 넣어준 value의 개수 n이 테이블의 전체 column개수와 다르면 에러가 뜬다.

즉, column을 지정해주지 않으면 value1은 column1로 순차적으로 대응된다.

 

2) column과 value모두 지정

Column과 Values 모두 지정

이 경우 value의 개수 n이 테이블의 전체 column개수와 같을 필요없고 지정해준 column의 개수와 같기만 하면된다.

단, 이때는 지정해준 column에만 values를 넣어주기 때문에 지정해주지 않은 column에는 default 혹은 null이 들어간다.

Example 1

 

 

* Insert into는 SELECT절과 함께 사용될 수도 있다. 이때 Values자리 대신 Select절이 온다.

Insert into table values ( ... ) => Insert into table select (..) from table 2

 

Select로 한 테이블에서 레코드를 읽어오고 이들을 다른 테이블로 insert into하여 복사할때 사용한다.

Select절과 함께 Insert into를 사용하는 방법은 다음과 같다.

        - 한 테이블의 모든 row의 모든 columns을 삽입 (Inserting all columns of a table)

        - 한 테이블에서 모든 row의 특정 columns만 삽입 (Inserting specific columns of a table)

        - 한 테이블에서 특정 row만 삽입 (Copying specific rows from a table)

 

1) 한 테이블의 모든 columns을 삽입 (Inserting all columns of a table)

 

모든 columns 삽입

한 테이블에 있는 모든 data를 다른 테이블로 모조리 복사하여 삽입할때 사용한다.

 

2) 한 테이블에서 모든 row의 특정 columns만 삽입 (Inserting specific columns of a table)

모든 row의 특정 Column만 삽입

Select에 Where condition이 없기 때문에 모든 row를 복사하지만 이때 특정 columns만 삽입한다.

따라서 선택되지 않은 columns들은 위에서 보다시피 Null로 채워진다.

 

3) 한 테이블에서 특정 row만 삽입 (Copying specific rows from a table)

특정 row만 삽입

Select에 Where condition이 있기 때문에 이를 만족하는 해당 row만 삽입한다.

 

 

 


 

  • 5-4) 수정 Update

 

테이블에 하나 혹은 둘 이상의 columns를 선택하여 수정할 수 있다.

수정할 row를 선택하기 위해 Where condition을 사용하고 수정할 column들을 선택하기 위해 SET을 사용한다.

(* Where절이 없으면 모든 row를 수정한다.)

Example 1

Example 1에서 Student 테이블에서 age=20인 레코드들의 Name 속성을 모두 'JONGWOO'로 수정한다.

여러 Columns 수정

이렇게 특정 row의 여러 column들을 수정할 수도 있고 

모든 row 수정

Where 절이 없을때는 모든 row의 SET으로 지정한 column들을 수정한다.

 

UPDATE table SET column1=value1, column2=value2, ... Where (condition) 형태로 사용한다.