DML을 적용하기에 앞서 DDL을 사용하여 실습해볼 테이블 생성하기
CREATE TABLE users (
user_id INTEGER PRIMARY KEY AUTO_INCREMENT,
username TEXT NOT NULL,
email TEXT NOT NULL,
age INTEGER
)
INSERT INTO(데이터 삽입)
기본적인 INSERT INTO : 모든 컬럼에 값을 지정하여 레코드를 추가한다.
INSERT INTO users (username, email, age) VALUES ('jane_doe', 'aaaa123@naver.com', 26);모든 컬럼에 값을 지정하지 않는 경우
: 일부 컬럼에만 값을 지정하고 나머지는 기본값 또는 NULL 값을 가지도록 할 수 있다.INSERT INTO users (username, email) VALUES ('David', 'asd234@naver.com');다수의 레코드 한번에 추가
: VALUES 또는 SET을 사용해서 여러 레코드를 동시에 추가할 수 있다.INSERT INTO users (username, email, age) VALUES ('elice', 'alice@example.com', 30), ('bob', 'bob@example.com', 28), ('charlie', 'charlie@example.com', 25);컬럼의 일부만 선택하여 추가
INSERT INTO users (username, email) VALUES ('mande','mande@example.com'), ('clena','clena@example.com');중복된 레코드 피하기
: 중복된 값이 있는 경우 레코드에 추가하지 않고 에러를 방지INSERT IGNORE INTO users (username, email, age) VALUES ('John_Doe', 'aaaa123@naver.com', 26);위의 IGNORE를 사용하여 INSERT 문을 실행시키면 중복을 무시하고 정상적으로 레코드에 추가되지만 에러를 방지하기위해 테이블에서 삭제해주는 것이 좋다.
중복된 레코드 업데이트
: 중복된 값이 있는 경우 해당 레코드를 업데이트 한다. 조건에 만족하는 값이 있으면 업데이트를 한다.INSERT INTO users (username, email, age) VALUES ('John_Doe', 'John_Doe@naver.com', 27) ON DUPLICATE KEY UPDATE age = 26; // age = 26 이면 업데이트를 한다.AUTO_INCREMENT 컬럼 다루기
: AUTO_INCREMENT를 가진 컬럼은 자동으로 증가하는 값을 가지며, 명시적으로 값을 지정하지 않는다.INSERT INTO users (username, email) VALUES ('frank', 'frank@example.com);테이블을 생성할 때 user_id 값을 AUTO_INCREMENT로 지정해주었기 때문에 따로 추가하지 않아도 데이터 삽입이 된다.
SET 문을 사용한 추가
: SET을 사용하면 컬럼에 여러 값들을 설정할 수 있다.INSERT INTO users SET username = 'john', email = 'john@example.com', age = 29;
'Database' 카테고리의 다른 글
| Database. 2일차 - DML 기초(데이터 업데이트 - UPDATE SET) (0) | 2024.02.19 |
|---|---|
| Database. 2일차 - DML 기초(데이터 조회 - SELECT FROM) (0) | 2024.02.19 |
| Database. 1일차 - MySQL 데이터 타입 (2) | 2024.01.24 |
| Database. 1일차 - MySQL User 데이터 관리하기 (0) | 2024.01.24 |
| Database. 1일차 - 스키마(Schema) 구성(DDL) (0) | 2024.01.24 |