데이터를 insert 할 때 value들의 값은 처음에 설정했던 attribute 순서대로 괄호 안에 지정해주어야함.
다만, 사진 두번째 줄 처럼 insert할 attribute list를 먼저 table_name옆에 적어준다면 그 값들만 VALUES 옆에 적어주면 됨.
(안 적은 attribute들의 값은 NULL이나 default 값으로 자동으로 들어감. NOT NULL인데 값을 안 적어주면 에러나겠죠?)
SELECT뒤에 * 를 붙여주면 전체 attribute에 대한 값들을 가져오라는 의미
SELECT * FROM employee; -> employee table의 전체 attribute 값을 보여줌
한 번에 많은 튜플들 추가 가능함.
insert into employee values
(4, 'BROWN', '1996-03-13', 'M', 'CEO', 120000000, null),
(5, 'DINGYO', '1990-11-05', 'M', 'CTO', 120000000, null),
...
(12, 'CURRY', '1998-01-15', 'M', 'PLN', 85000000, null);
조건문을 WHERE 라는 문법으로 처리함.
WHERE 조건문 없이 update나 delete를 사용하게 되면, 그 table의 전체 데이터 값이 수정되거나 삭제될 수 있음. (큰일남)
UPDATE employee SET dept_id = 1003 WHERE id = 1;
-> employee table에서 id가 1인 직원의 dept_id(부서id)를 1003으로 업데이트 해라.
UPDATE employee, works_on
SET salary = salary * 2
WHERE id = empl_id and proj_id = 2003;
-> 프로젝트 ID 2003에 참여한 임직원의 연봉을 두 배로 인상해라.
연봉값을 업데이트하기 위해선 employee table이 필요하고, 프로젝트 ID를 참조하기 위해선 works_on table이 필요하기 때문에 두 table 모두 써서 참조하는 문법
좀더 직관적으로 쓰고 싶다면
WHERE id = empl_id and proj_id = 2003; -> WHERE employee.id = works_on.empl_id and proj_id = 2003; 로 표현가능
- 현재 Dingyo가 여러 프로젝트에 참여하고 있었는데 프로젝트 2001에 선택과 집중을 하기로 하고 나머지에서 빠졌다.
- Dingyo의 ID는 5다
DELETE FROM works_on WHERE impl_id = 5 and proj_id != 2001
(프젝 id가 2001이 아닌 다른 것들은 모두 삭제. != 로 쓸수도 있고, <>라고 쓸수도 있음. != 이게 더 익숙하니까 이거쓰자)
WHERE 절을 실수로 안쓰고 DELETE를 한다면 table의 데이터가 전부 날아간다. 조심하자
'DB' 카테고리의 다른 글
6. MySQL 데이터 조회 - 2 (subquery) (0) | 2023.04.29 |
---|---|
5. MySQL 데이터 조회 - 1 (SELECT) (0) | 2023.04.27 |
3. SQL 기본개념과 기본문법 (0) | 2023.04.27 |
2. relational data model의 기본개념과 ralational database의 의미 (1) | 2023.04.26 |
1. 데이터베이스 기본개념 (0) | 2023.04.26 |
댓글