INSERT INTO VALUES() 문
테이블을 만드는 방법을 알아냈으니 이제 SQL 쿼리를 사용하여 테이블에 데이터를 추가하는 방법을 자세히 살펴보겠습니다.
실제로 이렇게하는 것은 매우 간단하지만 몇 가지 뉘앙스가 있습니다. 테이블에 데이터를 삽입하는 가장 간단한 옵션은 다음 두 가지를 지정해야 합니다.
- 열 이름
- 열 값(데이터)
열에는 데이터를 삽입할 때 지정되지 않은 기본값이 있는 경우가 매우 많으므로 열 이름을 지정해야 합니다. 그리고 일반적으로 모든 테이블에는 행 ID와 같은 열이 하나 이상 있습니다.
테이블에 데이터를 삽입하기 위한 일반적인 쿼리 형식은 다음과 같습니다.
INSERT INTO table (column1, column2, column3) VALUES
(value1, value2, value3),
(value1, value2, value3),
(value1, value2, value3);
예를 들어 사용자 테이블에 새 레코드를 삽입하려는 경우 쿼리는 다음과 같습니다.
INSERT INTO user (name, level, created_time) VALUES
('Rabinovich', 5, ‘2022-06-06’);
INSERT INTO SELECT 문
데이터를 테이블에 삽입하는 또 다른 일반적인 시나리오는 데이터를 다른 테이블, 스키마 또는 DBMS에서 가져오는 것입니다.
이를 위해 VALUES 부분 대신 데이터를 선택하는 쿼리를 지정할 수 있는 또 다른 INSERT INTO 쿼리 형식이 있습니다.
이러한 요청의 일반적인 형식은 다음과 같습니다.
INSERT INTO table (column1, column2, column3)
SELECT-request;
직원 테이블의 모든 사용자를 사용자 테이블에 추가하는 쿼리를 작성해 보겠습니다.
INSERT INTO user (name, created_time)
SELECT employee.name, employee.join_date
FROM employee;
직원 테이블에는 다양한 데이터가 있지만 그중에서 이름과 회사 도착 시간이라는 두 개의 필드만 선택합니다.
또한 사용자 테이블은 사용자 수준 - 수준을 지정해야 합니다. 직원은 직원 테이블에 수준이 없으므로 사용자 테이블에 수준 필드에 대한 기본값이 있다는 사실을 사용합니다. 수준을 지정하지 않으면 SQL이 기본값을 설정합니다.
기본값에 만족하지 않고 레벨을 99로 설정하고 user.created_time을 오늘 날짜로 바꾸면 다음과 같이 작성할 수 있습니다.
INSERT INTO user (name, level, created_time)
SELECT employee.name, 99, CURDATE()
FROM employee;
할 수 있는 일이 더 많지만 지금은 이 정도면 충분할 것 같습니다. 자세한 내용은 공식 MySQL 페이지에서 확인할 수 있습니다.
GO TO FULL VERSION