테이블만 정의해놓은 상태, 현재는 각 테이블에 아무런 데이터 없음
데이터 추가
- EMPLOYEE table에 데이터 추가
- INSERT INTO table_name VALUES (실제로 넣으려는 값)
- (실제로 넣으려는 값): 순서 중요, 처음 EMPLOYEE table 정의할 때의 attribute 순서대로 값을 넣어줘야 함
- INSERT INTO table_name (attribute 이름 나열)
- (attribute 이름 나열) 해놓으면 값을 넣는 순서에 자유가 생김, 또한 실제로 내가 넣고싶은 attribute만 넣을 수 있음
- 데이터가 제대로 추가되었는지 확인하고 싶을 때, SELECT * FROM (테이블 이름);
<정리> 테이블에 데이터를 추가하는 INSERT statement
1. INSERT INTO table_name VALUES (comma-separated all values);
- 테이블에 하나의 데이터만 넣는 경우
- 데이터를 하나만 추가하는 경우
- 처음 CREATE 할 때의 attribute 순서대로 모든 attribute에 대응하는 값을 넣어주는 Query
2. INSERT INTO table_name (attributes list) VALUES (attributes list 순서와 동일하게 comma-separated values);
- 테이블에 하나의 데이터만 넣는 경우
- 내가 원하는 일부 attribute에 대해서만, 또는 내가 원하는 순서대로 넣고싶은 경우
- (attributes list): 내가 넣으려는 attribute 이름들만 나열, 또는 내가 원하는 순서대로 나열
- (attributes list 순서와 동일하게 comma-separated values): (attributes list)에 나열된 attribute에 대해서만 나열된 순서대로 값 넣어주면 됨
3. INSERT INTO table_name VALUES (.., ..), (.., ..), (.., ..);
- 한번에 한 테이블에 여러 개의 데이터를 넣는 경우
- 넣으려는 여러 tuple들을 괄호와 콤마를 통해 구분
데이터 수정
- employee table에 데이터 추가할 당시, department table에 아무런 값이 없었기에 dept_id의 값 모두 NULL로 처리됨
- 이제는 department table에 데이터 있기에, dept_id 업데이트 해줘야 함
UPDATE statement
- employee ID가 1인 Messi는 개발(development)팀 소속임
- 개발팀 ID는 1003임
- Messi의 소속팀 정보를 업데이트 해주자
- 개발팀 연봉을 두 배로 인상하고 싶음
- 개발팀 ID는 1003
- 프로젝트 ID 2003에 참여한 임직원의 연봉을 두 배로 인상하고 싶음
- 회사의 모든 구성원의 연봉을 두 배로 올리자
<정리> UPDATE statement
UPDATE table_name(s)
SET attribute = value [, attribute = value, ..]
[WHERE condition(s)];
- 하나 이상의 table 이름 적어주어야 하는 경우도 있음
- where절 O: 업데이트 하는 tuple들이 만족해야 하는 조건 작성
- where절 X: table에 있는 모든 tuple들이 업데이트
데이터 삭제
DELETE statement
- John이 퇴사를 하게 되면서 employee 테이블에서 John 정보를 삭제해야 함
- John의 employee ID는 8
- 현재 John은 project 2001에 참여하고 있었음
- Jane이 휴직을 떠나게 되면서 현재 진행 중인 프로젝트에서 중도하차하게 됐다
- Jane의 ID는 2
- 현재 Dingyo가 두 개의 프로젝트에 참여하고 있었는데 프로젝트 2001에 선택과 집중을 하기로 하고 프로젝트 2002에서는 빠지기로 했음
- Dingyo의 ID는 5
- 회사에 큰 문제가 생겨서 진행중인 모든 프로젝트들이 중단됐다
UPDATE, DELETE가 where절 없이도 동작할 수도 있기에 조심해야 함!
where절이 없다면 그 테이블의 모든 데이터를 바꾸거나 삭제하는 것이기에 조심스럽게 사용해야 함
- 현업에서 개발할 때, 서비스 중인 DB에서 특정 tuple만 삭제하거나 업데이트 해야하는 상황이 생김
- 실수로 where절 적지 않으면 굉장히 큰일남
<정리> DELETE statement
DELETE FROM table_name [WHERE condition(s)];
데이터 추가, 수정, 삭제하기
- INSERT INTO
- UPDATE
- DELETE FROM