데이터 추가 하기
데이터 추가
- create table EMPLOYEE데이터를 추가하고 싶은 table;
- VALUES [(테이블의 attribute(s) 순서대로 값을 넣기)];
- 유의사항 : attribute(s)의 순서!, 모든 attribute(s) 넣기! 값이 없더라도 null을 넣어야함!
데이터 추가할 때 볼수 있는 에러들
- PRIMARY Key 충돌
- Constraints CHECK
- SHOW CREATE TABLE employee[확인하고싶은 table]; (어떤 Constraints인지 확인)
- FOREIGN Key 실패
원하는 순서로 데이터 추가
- INSERT INTO employee[table] (name, birth_date, sex, position, id)
전체 데이터 조회
- SELECT * FROM employee[table];
INSERT statement
- INSERT INTO [tabel_name] VALUES (comma-separated all values);
- INSERT INTO [table_name] (attributes list)
VALUES (attributes list 순서와 동일하게 comma-separated values);
- INSERT INTO [table_name] VALUES (..., ...)(..., ...)(..., ...)(..., ...);
employee
department
project
works_on
데이터 수정 하기
UPDATE statement 1
- employee ID가 1인 Messi는 개발(development)팀 소속이다.
- 개발팀 ID는 1003이다.
- Messi의 소속팀 정보를 업데이트 해주자
데이터 수정
- UPDATE employee[수정하고 싶은 table_name] SET dept_id = 1003[수정하고 싶은 attribute와 값] WHERE id = 1;[수정하려는 attribute를 한정할 수 있는 조건]
해당 데이터가 수정되었는지 확인
- SELECT * FROM employee[확인하려는 table_name] WHERE id = 1;[확인하려는 attribute를 한정할 수 있는 조건]
UPDATE statement 2
- 개발팀 연봉을 두 배로 인상하고 싶다.
- 개발팀 ID는 1003이다.
데이터 수정
- UPDATE employee[수정하고 싶은 table_name]
SET salary = salary * 2[수정하고 싶은 attribute와 값]
WHERE dept_id = 1003;[수정하려는 attribute를 한정할 수 있는 조건]
UPDATE statement 3
- 프로젝트 ID 2003에 참여한 임직원의 연봉을 두 배로 인상하고 싶다.
데이터 수정
- UPDATE employee, works_on[수정하고 싶은 table_name]
SET salary = salary * 2[수정하고 싶은 attribute와 값]
WHERE id = empl_id and proj_id = 2003;[수정하려는 attribute를 한정할 수 있는 조건]
WHERE employee.id = works_on.empl_id and works_on.proj_id = 2003;
(WHERE 조건은 간단하게 쓰면 가독성이 떨어지기 때문에 직관적으로 써도 됌! 둘다 똑같음!)
UPDATE statement 4
- 회사의 모든 구성원의 연봉을 두 배로 올리자!
데이터 수정
- UPDATE employee[수정하고 싶은 table_name]
SET salary = salary * 2[수정하고 싶은 attribute와 값]
(모든 구성원이므로 조건절 없음!)
UPDATE statement
- UPDATE [table_name(s)]
- SET [attribute = value, attribute = value, attribute = value]
- [WHERE [condition(s)];]
데이터 삭제하기
DELETE statement 1
- John이 퇴사를 하게 되면서 employee 테이블에서 John 정보를 삭제해야 한다.
- John의 employee ID는 8이다.
- 현재 John은 project 2001에 참여하고 있었다.
데이터 삭제
- DELETE FROM employee[삭제하고싶은 data가 있는 table_name] WHERE id = 8;[삭제하려는 attribute를 한정할 수 있는 조건]
- DB를 구성할 때 이미 on delete CASCADE 설정 때문에 자동으로 WORKS_ON에서도 삭제가 됨.
DELETE statement 2
- Jane이 휴직을 떠나게 되면서 현재 진행 중인 프로젝트에서 중도하차하게 됐다.
- Jane의 ID는 2다
데이터 삭제
- DELETE FROM works_on[삭제하고싶은 data가 있는 table_name] WHERE id = 2;[삭제하려는 attribute를 한정할 수 있는 조건]
DELETE statement 3
- 현재 Dingyo가 두 개의 프로젝트에 참여하고 있었는데 프로젝트 2001에 선택과 집중을 하기로 하고 프로젝트 2002에서는 빠지기로 했다.
- Dingyo의 ID는 5다.
데이터 삭제
- DELETE FROM works_on[삭제하고싶은 data가 있는 table_name] WHERE impl_id = 5 and proj_id = 2002;[삭제하려는 attribute를 한정할 수 있는 조건]
- 만약 프로젝트를 여러개 참여하고 있다면? 저 위에 삭제를 조건만 바꿔서 반복해도 되지만 생산성이 너무 떨어진다.
- DELETE FROM works_on[삭제하고싶은 data가 있는 table_name] WHERE impl_id = 5 and proj_id <> 2001;[삭제하려는 attribute를 한정할 수 있는 조건]
- proj_id <> 2001 = proj_id != 2001, 둘 다 사용 가능!
DELETE statement 4
- 회사에 큰 문제가 생겨서 진행중인 모든 프로젝트들이 중단됐다.
데이터 삭제
- DELETE FROM project;[삭제하고싶은 data가프로젝트 table_name]
(모든 프로젝트이므로 조건절 없음!)
DELETE statement
- DELETE FROM [table_name];
- [WHERE condition(s);]
출처 : 쉬운코드
이렇게 열심하 하셔서 모하게요?