Developer's Development

3.1.11 [DB] DML 본문

프로그래밍과 데이터 기초/DB

3.1.11 [DB] DML

mylee 2025. 7. 8. 21:49
DML

 

데이터 조작 언어로, 테이블에 값을 삽입/수정/삭제하는(데이터베이스 내의 데이터를 조작하는 데 사용하는) SQL의 한 부분이다.

 

  • INSERT

새로운 행을 추가하는 구문으로, 테이블의 행의 수가 증가한다.

-- INSERT INTO 테이블명 VALUES (컬럼순으로, 들어갈, 데이터, 나열, ...)

-- NULL 허용 가능한 컬럼이나 AUTO_INCREMENT가 있는 컬럼을 제외하고 컬럼을 지정해서 INSERT 가능
-- 컬럼을 명시하면, INSERT 시 데이터의 순서를 바꾸는 것도 가능
INSERT INTO tbl_menu(menu_name, menu_price, orderable_status, category_code)
VALUES ('카페라떼', 4500, 'Y', 7);

-- AUTO_INCREMENT 번호를 임의로 지정해서 INSERT도 가능 (잘 사용하진 않음)
-- 다음 컬럼은 따로 지정해주지 않으면 101부터 시작
INSERT INTO tbl_menu VALUES (100, '한방능이100숙', 1000000, 4, 'Y');

-- MULTI INSERT
INSERT INTO tbl_menu
VALUES
(null, '화이트머쉬룸버거', 12000, 12, 'Y'),
(null, '프렌치프라이', 2500, 12, 'Y');

 

  • UPDATE

테이블에 기록된 컬럼의 값을 수정하는 구문으로, 테이블의 전체 행 갯수는 변화가 없다.

-- UPDATE 테이블명
--    SET 컬럼명1 = 수정할 데이터1,
-- 	   컬럼명2 = 수정할 데이터2,
--        ...
--    [ WHERE 수정 대상 데이터의 조건 ];

UPDATE tbl_menu
   SET menu_name = '100번이었던 음식',
       menu_price = 19000
WHERE menu_code = 100;

 

  • DELETE

테이블의 행을 삭제하는 구문으로, 테이블의 행의 갯수가 줄어든다.

-- DELETE FROM 테이블명 [ WHERE 삭제 조건 ];

DELETE FROM tbl_menu
      WHERE menu_code = 101;
      
-- LIMIT을 활용한 행 삭제
DELETE FROM tbl_menu
   ORDER BY menu_code DESC
	  LIMIT 3;

 

  • REPLACE

INSERT 시 PRIMARY KEY 또는 UNIQUE KEY가 충돌이 발생할 수 있다면, REPLACE를 통해 중복된 데이터를 덮어 쓸 수 있다.

중복값에 대해서는 데이터를 덮어 쓰고, 중복값이 없다면 INSERT

INTO 키워드는 생략 가능

REPLACE INTO tbl_menu VALUES (100, '한방능이100숙', 10000, 4, 'Y');
REPLACE tbl_menu VALUES (120, '새로운120번메뉴!', 20000, 4, 'Y');

 

 

 

'프로그래밍과 데이터 기초 > DB' 카테고리의 다른 글

3.1.13 [Python] MySQL 연동  (0) 2025.07.08
3.1.12 [DB] JOIN, SUBQUERY  (1) 2025.07.08
3.1.10 [DB] SELECT  (1) 2025.07.08
3.1.9 [DB] 데이터 모델링  (3) 2025.07.07
3.1.8 [DB] 데이터베이스  (2) 2025.07.06