
이번 포스팅에서는 데이터를 생성(Create)하고, 읽거나 검색하고(Read), 수정(Update)하고, 삭제(Delete)하는 걸 알아보겠습니다! 이걸 줄여서 CRUD라고 해요.
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");
이 부분은 앞으로 더 복잡하고 다양한게 많으므로, 여기서는 가장 기본적인 문법만 알아봅시다.
SELECT * FROM 테이블이름
SELECT 컬럼1,컬럼2,... FROM 테이블이름
= : 같을 때!= 혹은 <> : 같지 않을 때 < : 작을 때<= : 작거나 같을 때> : 클 때>= : 크거나 같을 때예시
customer 테이블에서 name 컬럼값이 "Jason"인 record/row만 출력을 하기
SELECT * FROM customer
WHERE name = "Jason"
- `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"
% : 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 "___"
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'
DELETE FROM 테이블명
WHERE 조건
이렇게 이번 포스팅에서는 MySQL의 DML 명령어에서 알아보았습니다. 다음 포스팅에서는 DCL(Data Control Language)에 대해서 알아볼건데요...사실 데이터베이스 관리자가 아니라면 딱히 몰라도 되지만, 이왕 하는거 한번 보고 넘어갑시다! 그럼
To be continued 👋