hyperskill - Updating selected rows 원문
테이블의 모든 줄들에 있는 데이터를 바꿀 수 있게 되는 것은 인상적입니다.
하지만 현실세게에서는, 드물게 일어나는 일 입니다.
몇 개의 줄만 업데이트하는 일이 훨씬 더 빈번합니다.
필요로 하지 않는 줄을 필터링하는 것은 WHERE
절에서 완료 할 수 있습니다.
WHERE clause - WHERE 절
평소처럼, WHERE
절의 논리적 표현식은 몇 개의 간단한 표현식으로 결합 할 수 있습니다.
필요한 요구사항은 밑과 같습니다. :
- 표현식은 테이블의 각각의 줄에 대해
BOOLEAN
값을 생산해야 한다. - 표현식에서
TRUE
를 생산하는 줄들만 업데이트됩니다.
예를 들어, groups
라는 테이블이 있다고 가정하겠습니다.
이 테이블은 North-Western Country 대학의 학생 그룹들에 대한 정보를 저장하고 있습니다.
group_id | tutor | course | capacity |
---|---|---|---|
12 | William Meier | Algebra 201 | 50 |
14 | Martha Jacobson | Nuclear physics 101 | 25 |
22 | Laura Gibbs | Renaissance literature 360 | 30 |
36 | Donald Meier | Algebra 301 | 40 |
38 | Becky Stout | Information retrieval 450 | 30 |
대학 행정으로부터 최신 정책이 업데이트 되었기 때문에,
algebra 에 속한 모든 그룹 학생들의 수가 40까지 줄여야 합니다.
같은 시간, Ms. Gibbs 는 그녀의 literature (문학) 수업이 생각보다 인기가 많다는 것을 인지했습니다.
따라서, 그녀의 수업을 듣는 학생들의 수를 40까지 증가시키고 싶어합니다.
함께 테이블에 이러한 변화들을 반영 해 봅시다 :
UPDATE groups
SET capacity = 40
WHERE
course = '%Algebra%'
OR tutor = 'Laura Gibbs';
변화한 테이블의 결과는 이렇습니다 :
group_id | tutor | course | capacity |
---|---|---|---|
12 | William Meier | Algebra 201 | 40 |
14 | Martha Jacobson | Nuclear physics 101 | 25 |
22 | Laura Gibbs | Renaissance literature 360 | 40 |
36 | Donald Meier | Algebra 301 | 40 |
38 | Becky Stout | Information retrieval 450 | 30 |
WHERE
절은 기초적인 UPDATE
쿼리에서 많은 변화가 일어나지 않았지만, 중대한 역할을 합니다.
당신은 데이터에서 불필요한 변화를 도입하고 싶지 않으며, 나중에 그것을 고치고 싶지 않습니다.
쿼리 작성의 첫 번째 단계로서, WHERE
절에서 어떤 정확한 줄들이 업데이트, 혹은 작성이 필요한지 생각 해 보세요.
당신이 원하는 어떤 방향이던 데이터를 바꾸는 데 자유를 느낄 것 입니다.
Conclusion - 결론
여기 UPDATE
문법의 일반적인 템플릿이 있습니다. :
UPDATE table_name
SET
col1 = expr1,
col2 = expr2,
...,
colN = exprN
WHERE
logical_expression;
UPDATE
연산자 내부에서의 WHERE
을 사용하는 것은 쉽습니다.
다른 SQL 연산자들이 동작하는 것과 같이 똑같은 규칙을 따릅니다.
이제, 당신의 지식을 확인 할 시간입니다.
'Hyperskill - 컴퓨터 CS 및 영어 독해 > Introducing to SQL' 카테고리의 다른 글
Aggregate functions - 집계 함수들 (0) | 2024.04.27 |
---|---|
Inserting selected rows - 선택된 줄 삽입하기 (0) | 2024.04.26 |
Basic UPDATE statement - 기초적인 UPDATE 문법 (0) | 2024.04.25 |
Types of JOINs - JOIN의 종류들 (0) | 2024.04.24 |
Results ordering - 결과 정렬하기 (1) | 2024.04.22 |