[MySQL] DML(2) UPDATE / DELETE

Hunie_07·3일 전

SQL

목록 보기
7/10
post-thumbnail

데이터베이스 생성

# 데이터베이스 생성 / 사용
DROP DATABASE IF EXISTS bookshopdb;
CREATE DATABASE bookshopdb;
USE bookshopdb;

# 테이블 생성
CREATE TABLE publisher(
	pubNo VARCHAR(10) NOT NULL PRIMARY KEY,
    pubName VARCHAR(30) NOT NULL
);

CREATE TABLE book(
	bookNo VARCHAR(10) NOT NULL PRIMARY KEY,
    bookName VARCHAR(30) NOT NULL,
    bookPrice INT DEFAULT 10000 CHECK (bookPrice > 1000),
    bookDate DATE,
    pubNo VARCHAR(10) NOT NULL,
    CONSTRAINT FK_book_pubNo FOREIGN KEY (pubNo)
		REFERENCES publisher (pubNo)
);

# 데이터 삽입
INSERT INTO publisher (pubNo, pubName) VALUES ('1', '서울출판사');
INSERT INTO publisher (pubNo, pubName) VALUES ('2', '강남출판사');
INSERT INTO publisher (pubNo, pubName) VALUES ('3', '종로출판사');

INSERT INTO book (bookNo, bookName, bookPrice, bookDate, pubNo)
	VALUES ('1', '자바', 20000, '2021-05-17', '1');
INSERT INTO book 
	VALUES ('2', '자바스크립트', 23000, '2019-05-17', '3'); 
INSERT INTO book (bookNo, bookName, bookPrice, bookDate, pubNo)
	VALUES ('3', '데이터베이스', 35000, '2021-07-11', '2'),
		   ('4', '알고리즘', 18000, '2021-01-15', '3'),
           ('5', '웹프로그래밍', 22000, '2019-09-15', '2');
INSERT INTO book
	VALUES ('6', '데이터베이스', 35000, '2021-08-11', '2'),
		   ('7', '알고리즘', 18000, '2020-01-15', '3'),
           ('8', '웹프로그래밍', 22000, '2023-02-15', '2');

📌 UPDATE

1️⃣ 데이터 갱신

  • 특정 컬럼(열)의 값을 수정하는 명령어
  • 조건에 맞는 행을 찾아서 열의 값 수정
    UPDATE 테이블명 컬럼명=변경값 SET WHERE 조건;
# 도서번호가 1인 도서의 가격을 25000으로 수정
UPDATE book SET bookPrice=25000 WHERE bookNo='1';

# 출판사 번호가 1인 출판사의 이름을 '좋은출판사'로 변경
UPDATE publisher SET pubName='좋은출판사' WHERE pubNo='1';

📌 DELETE

2️⃣ 데이터 삭제

  • 테이블에 있는 기존 행(레코드)을 삭제하는 명령어
    DELETE FROM 테이블명 WHERE 조건;
# 도서명이 '웹프로그래밍'인 행들을 삭제
DELETE FROM book WHERE bookName='웹프로그래밍';

# book 테이블에서 발행일이 2019년도인 행을 삭제
DELETE FROM book
	WHERE bookDate >= '2019-01-01' AND bookDate <= '2019-12-31';

0개의 댓글