데이터 엔지니어링

패스트캠퍼스 환급챌린지 57일차: 데이터엔지니어링 초격차 강의 후기

Big Byte 2025. 5. 28. 22:06

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

 

SQL 기초: 데이터 조작 언어(DML) - INSERT, SELECT, UPDATE, DELETE 활용법 ⌨️

안녕하세요! 🌟

 

오늘은 데이터베이스의 핵심 기능 중 하나인 DML(Data Manipulation Language)에 대해 자세히 알아보겠습니다. DML은 데이터베이스 내의 데이터를 실제로 조작하고 관리하는 데 사용되는 명령어들입니다. 이를 통해 우리는 데이터베이스에 정보를 입력하고, 필요한 데이터를 조회하며, 기존 정보를 수정하거나 삭제할 수 있습니다.

 

데이터 관리의 기본이 되는 네 가지 핵심 작업, Create(INSERT), Read(SELECT), Update(UPDATE), Delete(DELETE) – 흔히 CRUD라고 불리는 이 기능들을 MySQL 예시와 함께 살펴보겠습니다. 준비되셨나요? 시작하겠습니다! 🚀

 

 


참고: 모든 예시는 MySQL 설치 시 함께 제공되는 world 데이터베이스의 country 테이블을 기준으로 합니다. country 테이블의 주요 컬럼 구조는 다음과 같습니다 (전체 컬럼은 더 많습니다):

-- country 테이블의 주요 컬럼 예시 (실제 world.country 테이블 구조 참고)
-- Code CHAR(3)          -- 국가 코드 (Primary Key)
-- Name CHAR(52)         -- 국가 이름
-- Continent ENUM(...)   -- 대륙
-- Region CHAR(26)       -- 지역
-- SurfaceArea DECIMAL(10,2) -- 표면적
-- IndepYear SMALLINT    -- 독립 연도 (NULL 가능)
-- Population INT        -- 인구
-- LifeExpectancy DECIMAL(3,1) -- 기대 수명 (NULL 가능)
-- GNP DECIMAL(10,2)     -- 국민 총생산 (NULL 가능)
-- HeadOfState CHAR(60)  -- 국가 원수 (NULL 가능)
-- ... (등등)

(실제 테이블을 DESC country; 명령어로 확인하시면 더 정확한 정보를 얻을 수 있습니다.)


데이터 생성: INSERT로 새로운 정보 추가하기

INSERT 문은 테이블에 새로운 데이터 행(레코드)을 추가할 때 사용합니다. country 테이블에 새로운 국가 정보를 추가하는 상황을 가정해봅시다.

📌 기본 문법:

INSERT INTO 테이블명 (컬럼1, 컬럼2, ...)
VALUES (값1, 값2, ...);

MySQL 예시 (country 테이블에 데이터 추가):

  1. 새로운 가상 국가 'DevNation' (코드: DEV) 정보 추가:
    (모든 NOT NULL 컬럼 및 주요 컬럼에 값을 제공해야 합니다.)
    • Capitalcity 테이블의 ID를 참조하는 외래 키일 수 있으므로, 실제론 유효한 city.ID를 넣거나 NULL (해당 컬럼이 NULL을 허용한다면)을 넣어야 합니다. 예시에서는 NULL로 처리했습니다.
      INSERT INTO country 
          (Code, Name, Continent, Region, SurfaceArea, IndepYear, Population, LifeExpectancy, GNP, LocalName, GovernmentForm, HeadOfState, Capital, Code2)
      VALUES 
          ('DEV', 'DevNation', 'Asia', 'Southeastern Asia', 5000.00, 2023, 100000, 80.5, 12000.00, 'DevNara', 'Republic', 'The Developer', NULL, 'DV');
  2. 필수 컬럼 위주로 'TestLand' (코드: TST) 정보 추가 (일부 컬럼은 기본값 또는 NULL로 자동 처리되도록):
    만약 IndepYear, LifeExpectancy, GNP, HeadOfState, Capital 컬럼이 NULL을 허용한다면, 다음과 같이 명시하지 않아도 됩니다.위 명령을 실행하면 country 테이블에 'DevNation'과 'TestLand'의 정보가 각각 새로운 행으로 추가됩니다.
    INSERT INTO country 
        (Code, Name, Continent, Region, SurfaceArea, Population, LocalName, GovernmentForm, Code2)
    VALUES 
        ('TST', 'TestLand', 'Europe', 'Western Europe', 1250.75, 50000, 'TestLandia', 'Constitutional Monarchy', 'TL');

📊 데이터 조회: SELECT로 필요한 정보 가져오기

SELECT 문은 DML에서 가장 빈번하게 사용되며, 테이블에 저장된 데이터를 조회하고 원하는 형태로 가져오는 데 핵심적인 역할을 합니다.

📌 기본 문법:

SELECT 컬럼1, 컬럼2, ...  -- 특정 컬럼 조회
FROM 테이블명;

SELECT *  -- 모든 컬럼 조회
FROM 테이블명;

특정 조건을 만족하는 데이터만 필터링하려면 WHERE 절을 사용합니다.

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

MySQL 예시 (country 테이블에서 데이터 조회):

  1. 대한민국(Code: KOR)의 모든 정보 조회:
    SELECT * FROM country WHERE Code = 'KOR';
  2. 유럽(Continent: Europe) 대륙 국가들의 이름(Name)과 인구(Population) 조회:
    SELECT Name, Population FROM country WHERE Continent = 'Europe';
  3. 인구가 1억 명 이상인 국가들의 이름(Name), 대륙(Continent), 인구(Population)를 인구 많은 순으로 정렬하여 조회: SELECT 문을 통해 country 테이블에 저장된 방대한 국가 정보 중에서 필요한 부분만 효과적으로 추출할 수 있습니다.
    SELECT Name, Continent, Population 
    FROM country 
    WHERE Population > 100000000
    ORDER BY Population DESC;

🔄 데이터 수정: UPDATE로 기존 정보 변경하기

UPDATE 문은 테이블에 이미 저장된 데이터의 내용을 수정할 때 사용합니다. 국가의 인구나 GNP가 변경되었을 때 유용합니다.

 

⚠️ 매우 중요: UPDATE 문 사용 시 WHERE 절을 생략하면 테이블 내 모든 행의 데이터가 지정된 값으로 변경됩니다. 이는 데이터 손실로 이어질 수 있으므로, 반드시 WHERE 절로 수정 대상 행을 명확히 지정해야 합니다.

 

📌 기본 문법:

UPDATE 테이블명
SET 컬럼1 = 새로운값1, 컬럼2 = 새로운값2, ...
WHERE 조건; -- 수정할 행을 특정하는 조건. 누락 시 매우 위험!

MySQL 예시 (country 테이블 데이터 수정):

  1. 대한민국(Code: KOR)의 국가원수(HeadOfState) 정보를 'New Leader Yoon' (예시)으로 변경:
    UPDATE country
    SET HeadOfState = 'New Leader Yoon'
    WHERE Code = 'KOR';
  2. 미국(Code: USA)의 인구(Population)를 3억 3천만으로, GNP를 21조로 수정:UPDATE를 통해 데이터는 항상 최신 상태를 유지할 수 있게 됩니다.
    UPDATE country
    SET Population = 330000000, GNP = 21000000.00
    WHERE Code = 'USA';

데이터 삭제: DELETE로 불필요한 정보 제거하기

DELETE 문은 테이블에서 특정 데이터 행을 삭제할 때 사용합니다. 앞서 추가했던 가상 국가 정보를 삭제하는 경우를 생각해봅시다.

⚠️ 매우 중요: DELETE 문 역시 WHERE 절 없이 실행하면 테이블의 모든 데이터가 삭제됩니다. 이는 심각한 데이터 유실을 초래하므로, 삭제할 데이터를 정확히 명시하는 WHERE 절 사용이 필수적입니다.

📌 기본 문법:

      DELETE FROM 테이블명
WHERE 조건; -- 삭제할 행을 특정하는 조건. 누락 시 데이터 전체 삭제!
    

MySQL 예시 (country 테이블 데이터 삭제):

  1. 앞서 추가했던 가상 국가 'DevNation' (Code: DEV) 정보 삭제:
    DELETE FROM country
    WHERE Code = 'DEV';
  2. 마찬가지로 'TestLand' (Code: TST) 정보 삭제:
    DELETE FROM country
    WHERE Code = 'TST';
  3. 🚨 주의! (테스트 환경 외 사용 금지) WHERE 절 없는 DELETE:
    아래 명령은 country 테이블의 모든 데이터를 삭제합니다. 복구가 어려울 수 있으므로 실제 운영 환경에서는 절대 사용하지 마십시오.DELETE는 강력한 명령어인 만큼, 사용 시 각별한 주의가 필요합니다.
    -- DELETE FROM country; -- (실행 시 모든 데이터가 삭제되므로 극히 주의해야 합니다!)

🏁 정리하며: DML, 데이터 관리의 기본기!

오늘은 SQL의 DML을 통해 데이터를 다루는 네 가지 기본 명령어, INSERT, SELECT, UPDATE, DELETE에 대해 world 데이터베이스의 country 테이블을 예시로 학습했습니다.

  • INSERT: 새로운 데이터를 테이블에 추가합니다.
  • SELECT: 테이블에서 원하는 데이터를 조회합니다.
  • UPDATE: 테이블의 기존 데이터를 수정합니다.
  • DELETE: 테이블에서 데이터를 삭제합니다.

이 명령어들은 데이터베이스를 활용하는 데 있어 가장 기본적이면서도 중요한 기능들입니다. 특히 UPDATEDELETE 문을 사용할 때는 WHERE 절의 정확한 사용이 데이터의 안전성을 보장하는 핵심이라는 점을 반드시 기억하시기 바랍니다.

 

오늘도 새로운 SQL 지식을 습득하시느라 정말 수고 많으셨습니다! 👍 이 DML 명령어들은 데이터를 효과적으로 관리하고 활용하는 데 있어 여러분의 중요한 기술이 될 것입니다.

 

 

그럼 다음 시간에는 더욱 유용한 내용으로 다시 찾아뵙겠습니다! 👋

https://abit.ly/lisbva