[kakao x goorm] 생성 AI 응용 서비스 개발자 양성 과정/회고록

[kakao x goorm] SQL 데이터 수정, 삭제, 필터링

Hoonia 2025. 3. 26. 13:19

오늘은 SQL에서 데이터를 수정하고 삭제하는 방법, 그리고 원하는 데이터만 추출하는 필터링 방법을 학습했다. 개념뿐만 아니라 직접 실습을 통해 이해도를 높였다.

데이터 수정하기 (UPDATE)

테이블의 데이터를 수정할 때는 UPDATE 문을 사용한다.

UPDATE 테이블명
SET 컬럼명 = 입력값
WHERE 조건;

WHERE 절을 생략하면 모든 행이 수정되므로 주의해야 한다. 특정 튜플만 수정하려면 기본키를 조건으로 사용해야 한다.

실습

학생 테이블에서 특정 학생의 점수를 수정해보았다.

UPDATE students
SET math = 95
WHERE id = 1;

이렇게 하면 id가 1인 학생의 수학 점수가 95점으로 변경된다.

데이터 삭제하기 (DELETE, DROP)

DELETE 문

특정 행을 삭제할 때는 DELETE 문을 사용한다.

DELETE FROM 테이블명
WHERE 조건;

WHERE 절을 생략하면 테이블의 모든 데이터가 삭제되므로 신중하게 사용해야 한다.

실습

DELETE FROM students
WHERE id = 3;

이 명령을 실행하면 id가 3인 학생이 삭제된다.

테이블 삭제하기 - DROP TABLE

테이블 자체를 삭제할 때는 DROP TABLE을 사용한다.

DROP TABLE 테이블명;

이 명령은 테이블의 구조와 데이터를 완전히 삭제하며, 복구할 수 없으므로 매우 신중해야 한다.

MySQL에서 테이블 데이터 백업하기

테이블을 실수로 삭제하는 상황을 대비해 백업하는 방법도 배웠다.

 

테이블 구조와 데이터를 함께 복사

 

 

CREATE TABLE students_backup AS SELECT * FROM students;

 

 

테이블 구조만 복사한 후 데이터 삽입

  • 구조 복사:
CREATE TABLE students_backup LIKE students;
  • 데이터 복사:
INSERT INTO students_backup SELECT * FROM students;

이 방법을 활용하면 중요한 데이터를 보호할 수 있다.

데이터 필터링하기 (WHERE)

WHERE 절을 사용하면 원하는 데이터만 조회할 수 있다.

SELECT 컬럼명1, 컬럼2, ...
FROM 테이블명
WHERE 조건;

비교 연산자

두 값을 비교하는 연산자

연산자 의미 예시
= 같음 WHERE price = 1000
!= 같지 않음 WHERE price != 1000
> 크다 WHERE price > 1000
>= 크거나 같다 WHERE price >= 1000
< 작다 WHERE price < 1000
<= 작거나 같다 WHERE price <= 1000

 

논리 연산자

두 조건의 조합해 새로운 조건을 만드는 연산자

연산자 의미 예시
AND 두 조건이 모두 참 WHERE math >= 90 AND english >= 90
OR 하나라도 참이면 참 WHERE math >= 90 OR english >= 90
NOT 조건의 반대 WHERE NOT math >= 90

연산자 우선순위

어떤 연산자를 먼저 수행할지 그 우선순위를 정한 것

실습: 조건에 따른 데이터 조회

실습을 위해 학생 테이블을 만들고 데이터를 삽입했다.

CREATE TABLE students (
    id INT PRIMARY KEY,
    nickname VARCHAR(50),
    math INT,
    english INT,
    programming INT
);

INSERT INTO students (id, nickname, math, english, programming) VALUES 
    (1, 'Sparkles', 98, 96, 93),
    (2, 'Soldier', 82, 66, 98),
    (3, 'Lapooheart', 84, 70, 82),
    (4, 'Slick', 87, 99, 98),
    (5, 'Smile', 75, 73, 70),
    (6, 'Jellyboo', 84, 82, 70),
    (7, 'Bagel', 97, 91, 87),
    (8, 'Queen', 99, 100, 88);

모든 과목이 90점 이상인 학생 조회

SELECT * FROM students
WHERE math >= 90 AND english >= 90 AND programming >= 90;

특정 점수 미만을 받은 모든 학생 조회

SELECT * FROM students 
WHERE math < 75 OR english < 75 OR programming < 75;

총점이 270점 이상인 학생 조회

SELECT * FROM students
WHERE (math + english + programming) >= 270;

실습을 통해 다양한 조건을 조합하여 데이터를 필터링하는 방법을 익혔다.

AS 키워드 활용 (별칭 지정)

출력 결과를 더 보기 쉽게 하기 위해 AS 키워드를 사용하여 컬럼이나 테이블에 별칭을 부여할 수 있다.

SELECT nickname AS 닉네임,
       (math + english + programming) AS 총점,
       ROUND((math + english + programming) / 3, 2) AS 평균
FROM students;

이렇게 하면 컬럼명이 직관적으로 변경되어 가독성이 향상된다.

회고

오늘 배운 내용을 정리하면서 SQL의 기본적인 데이터 수정, 삭제, 필터링 방법을 확실히 이해할 수 있었다. 특히 실습을 통해 직접 데이터를 다뤄보면서 UPDATE, DELETE, WHERE 절의 중요성을 실감했다. 또한, 백업의 필요성도 깨닫게 되었고, 다양한 조건을 활용하여 데이터를 필터링하는 것이 실제 데이터 분석에서 유용하다는 것을 느꼈다. 앞으로 더 복잡한 SQL 쿼리도 익혀봐야겠다!