MySQL, 데이터 추가/수정/삭제

paikpaik·2023년 7월 14일
1

DB, SQL(MySQL)

목록 보기
4/9
post-thumbnail

데이터 추가 하기

데이터 추가

  • create table EMPLOYEE데이터를 추가하고 싶은 table;
  • VALUES [(테이블의 attribute(s) 순서대로 값을 넣기)];
  • 유의사항 : attribute(s)의 순서!, 모든 attribute(s) 넣기! 값이 없더라도 null을 넣어야함!

데이터 추가할 때 볼수 있는 에러들

    1. PRIMARY Key 충돌
    1. Constraints CHECK
  • SHOW CREATE TABLE employee[확인하고싶은 table]; (어떤 Constraints인지 확인)
    1. 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);]
출처 : 쉬운코드
profile
매일 앞으로 나아가는 개발자

2개의 댓글

comment-user-thumbnail
2023년 7월 14일

이렇게 열심하 하셔서 모하게요?

1개의 답글