MySQL DML (Data Manipulation Language) 실습!

하하호호훈이·2025년 5월 8일

SQL(MySQL) MUST KNOW

목록 보기
5/23
post-thumbnail

데이터 생성, 읽기, 업데이트, 삭제

이번 포스팅에서는 데이터를 생성(Create)하고, 읽거나 검색하고(Read), 수정(Update)하고, 삭제(Delete)하는 걸 알아보겠습니다! 이걸 줄여서 CRUD라고 해요.

1. 생성 및 입력 (INSERT)

  • 테이블에서 전체 컬럼에 대응하는 값을 모두 넣는 기본 문법:
INSERT INTO 테이블이름 VALUES(1, ...)
  • 테이블에서 특정 컬럼에 대응하는 값을 모두 넣는 기본 문법
INSERT INTO 테이블이름 (컬럼1, ...) VALUES(1, ...)

지정되지 않은 컬럼에는 디폴트로 지정해놓은 값이나 NULL이 들어갑니다.

예시

Amazon라는 DB가 있습니다. 여기에는 customer라는 테이블이 밑에 구조로 만들어져 있습니다.

USE Amazon;
CREATE TABLE customer (
  customer_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  age INT UNSIGNED,
  nationality VARCHAR(50)
);

여기에 두 개의 record를 넣어보겠습니다.

1. 전체 컬럼에 값 넣기:

INSERT INTO customer VALUES (
	100, "Henry", 25, "South Korea"
);

2. 특정 컬럼에만 넣기:

INSERT INTO customer (customer_id, name) VALUES (201, "David");



2. 읽기 및 검색

이 부분은 앞으로 더 복잡하고 다양한게 많으므로, 여기서는 가장 기본적인 문법만 알아봅시다.

2.1. SELECT

  • 테이블 전체 컬럼 데이터 읽기:
SELECT * FROM 테이블이름
  • 테이블 특정 컬럼 데이터 읽기:
SELECT 컬럼1,컬럼2,... FROM 테이블이름

2.2. 조건 달기 (WHERE)

2.2.1. 비교 오퍼레이터:

  • = : 같을 때
  • != 혹은 <> : 같지 않을 때
  • < : 작을 때
  • <= : 작거나 같을 때
  • > : 클 때
  • >= : 크거나 같을 때

예시
customer 테이블에서 name 컬럼값이 "Jason"인 record/row만 출력을 하기

SELECT * FROM customer 
WHERE name = "Jason"

2.2.2. 로직 오퍼레이터

- `AND` : 모든 조건 충족할 때
- `OR` : 하나 이상의 조건 충족할 때

예시
customer 테이블에서 age 컬럼값이 25 이상이면서 nationality가 "South Korea"인 record/row 에서 name이랑 customer_id만 출력하기

SELECT name, customer_id FROM customer 
WHERE age >= 25 AND nationality = "South Korea"

2.2.3. String에 따라 조건 걸기 (LIKE):

  • % : 0개 이상의 문자를 대체합니다
  • _ : 단일 문자를 대체합니다

예시
1) customer 테이블에서 name이 "Ha"로 시작하는 record/row만 출력하기 (e.g. Harry, Hanington, ...)

SELECT * FROM customer 
WHERE name LIKE "Ha%"

2) customer 테이블에서 name에 "rr"이 들어가는 record/row만 출력하기 (e.g. Harry, Laurry, ...)

SELECT * FROM customer 
WHERE name LIKE "%rr%"

3) customer 테이블에서 name이 세 글자인 record/row만 출력하기 (e.g. Joe, Pho, ...)

SELECT * FROM customer 
WHERE name LIKE "___"



3. 데이터 수정 (UPDATE)

특정 조건 충족하는 데이터 수정

UPDATE 테이블이름 
SET 수정컬럼이름 = '새로운값' 
WHERE 조건

참고로 여러 컬럼을 수정할 수도 있답니다

UPDATE 테이블이름 
SET 수정컬럼이름1 = '새로운값1', 수정컬럼이름2 = '새로운값2' 
WHERE 조건

예시
customer 테이블에서 name이 "Jimmy"인 고객의 나이를 33으로 nationality를 "USA"로 바꾸기

UPDATE customer 
SET age = 33, nationality = 'USA' 
WHERE name = 'Jimmy'



4. 데이터 삭제 (DELETE)

DELETE FROM 테이블명 
WHERE 조건




이렇게 이번 포스팅에서는 MySQL의 DML 명령어에서 알아보았습니다. 다음 포스팅에서는 DCL(Data Control Language)에 대해서 알아볼건데요...사실 데이터베이스 관리자가 아니라면 딱히 몰라도 되지만, 이왕 하는거 한번 보고 넘어갑시다! 그럼

To be continued 👋

profile
AI, Data Science/Analysis 리뷰용가리지용 😆

0개의 댓글