MySQL INSERT INTO 쿼리: 테이블에 행을 추가하는 방법(예제)
⚡ 스마트 요약
MySQL `INSERT INTO Query` 문은 대상 열을 명시적으로 지정하거나 각 열에 값을 제공하여 테이블에 새 행을 추가합니다. 문자열, 숫자 및 날짜를 올바르게 따옴표로 묶는 것이 저장된 데이터가 손상되지 않고 유지되는 데 중요합니다.

INSERT INTO란 무엇인가요?
삽입 데이터베이스에는 데이터를 저장하는 데 사용됩니다. INSERT 명령은 데이터베이스에 새 행을 생성하여 데이터를 저장합니다. 데이터는 일반적으로 데이터베이스 위에서 실행되는 응용 프로그램에서 제공됩니다.
기본 구문
INSERT INTO의 기본 구문을 살펴보겠습니다. MySQL 명령:
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
여기를 클릭하십시오.
- INSERT INTO `table_name`은 다음을 알려주는 명령입니다. MySQL 서버는 'table_name'이라는 테이블에 새 행을 추가합니다.
- (column_1,column_2,…)는 새 항목에서 업데이트할 열을 지정합니다. MySQL 열
- VALUES(value_1,value_2,…)는 새 행에 추가할 값을 지정합니다.
새 테이블에 삽입할 데이터 값을 제공할 때 다음 사항을 고려해야 합니다.
- 문자열 데이터 유형 – 모든 문자열 값은 작은따옴표로 묶어야 합니다.
- 숫자 데이터 유형 – 모든 숫자 값은 작은따옴표나 큰따옴표로 묶지 않고 직접 입력해야 합니다.
- 날짜 데이터 유형 – 'YYYY-MM-DD' 형식으로 날짜 값을 작은따옴표로 묶습니다.
여러 행을 한 번에 삽입하기
하나의 INSERT 문으로 여러 행을 전송할 수 있습니다. 각 값 집합은 쉼표로 구분하십시오. 인덱스가 한 번만 업데이트되므로 여러 개의 문을 실행하는 것보다 하나의 문으로 처리하는 것이 더 빠릅니다.
INSERT INTO `categories`(`category_name`,`remarks`) VALUES ('Documentary', 'Factual films'), ('Musical', 'Song driven films');
MySQL INSERT INTO 쿼리 예시
데이터베이스에 추가해야 할 새로운 도서관 회원 목록이 다음과 같다고 가정해 보겠습니다.
| 성명 | 생년월일 | 성별 | 실제 주소 | 우편 주소 | 연락 전화 번호 | 이메일 주소 |
|---|---|---|---|---|---|---|
| 레너드 호프스타터 | 남성 | 우드크레스트 | 0845738767 | |||
| 셀던 쿠퍼 | 남성 | 우드크레스트 | 0976736763 | |||
| 라제시 쿠트라팔리 | 남성 | 우드크레스트 | 0938867763 | |||
| 레슬리 윙클 | 14/02/1984 | 남성 | 우드크레스트 | 0987636553 | ||
| 하워드 왈로위츠 | 24/08/1981 | 남성 | 남쪽 공원 | P.O. Box 4563 | 0987786553 | lwolowitz@email.me |
이제 Leonard Hofstadter부터 시작하여 데이터를 한 행씩 삽입해 보겠습니다. 연락처 번호는 숫자 데이터 유형으로 처리하고 작은따옴표로 묶지 않겠습니다.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
위 스크립트를 실행하면 레너드의 연락처 번호에서 0이 제거됩니다. 해당 값이 숫자로 처리되고 앞에 있는 0은 의미가 없기 때문입니다.
이러한 문제를 방지하려면 아래와 같이 값을 작은따옴표로 묶어야 합니다.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
⚠️ 팁: 전화번호, 우편번호 및 유사한 식별자는 VARCHAR와 같은 텍스트 열에 저장하십시오. 숫자 열에는 앞에 0을 붙일 수 없습니다.
열 순서 변경
열 순서를 변경해도 INSERT 쿼리에는 아무런 영향이 없습니다. MySQL올바른 값이 올바른 열에 매핑된 경우입니다. 아래 쿼리는 이 점을 보여줍니다.
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');
위 쿼리에서는 생년월일 열을 건너뛰었습니다. 기본적으로, MySQL INSERT 쿼리에서 생략된 열에 NULL 값을 삽입합니다.
이제 생년월일이 입력된 레슬리의 기록을 삽입해 보겠습니다. 생년월일 값은 'YYYY-MM-DD' 형식으로 작은따옴표로 묶어야 합니다.
INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');
열 목록 생략
위의 모든 쿼리는 열 이름을 지정하고 해당 열에 값을 매핑했습니다. 테이블의 모든 열에 값을 제공하면 열 목록을 생략할 수 있습니다. MySQL 쿼리를 삽입하세요.
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');
이제 SELECT 문 멤버 테이블의 모든 행을 보려면.
SELECT * FROM `members`;
| 회원_번호 | 전체 이름 | 성별 | 생일 | 물리적_주소 | 우편 주소 | 연락처_번호 | 이메일 |
|---|---|---|---|---|---|---|---|
| 1 | 자넷 존스 | 여성 | 21-07-1980 | 첫 번째 거리 플롯 번호 4 | 전용 가방 | + 0759 253 542 | janetjones@yagoo.cm |
| 2 | 자넷 스미스 존스 | 여성 | 23-06-1980 | 멜로즈 123 | NULL | NULL | jj@fstreet.com |
| 3 | 로버트 필 | 남성 | 12-07-1989 | 3번가 34 | NULL | 12345 | rm@tstreet.com |
| 4 | 글로리아 윌리엄스 | 여성 | 14-02-1984 | 2번가 23 | NULL | NULL | NULL |
| 5 | 레너드 호프스타터 | 남성 | NULL | 우드크레스트 | NULL | 845738767 | NULL |
| 6 | 셀던 쿠퍼 | 남성 | NULL | 우드크레스트 | NULL | 0976736763 | NULL |
| 7 | 라제시 쿠트라팔리 | 남성 | NULL | 우드크레스트 | NULL | 0938867763 | NULL |
| 8 | 레슬리 윙클 | 남성 | 14-02-1984 | 우드크레스트 | NULL | 0987636553 | NULL |
| 9 | 하워드 왈로위츠 | 남성 | 24-08-1981 | 남쪽 공원 | P.O. Box 4563 | 0987786553 | lwolowitz@email.me |
레너드 호프스태터의 연락처 번호에서 예상대로 맨 앞의 0이 없어진 것을 확인할 수 있습니다. 인용된 번호는 0을 그대로 유지합니다.
다른 테이블에서 테이블에 삽입
INSERT 명령을 사용하여 다른 테이블의 데이터를 테이블에 삽입할 수도 있습니다. 기본 구문은 아래와 같습니다.
INSERT INTO table_1 SELECT * FROM table_2;
이제 categories_archive라는 이름의 영화 카테고리용 더미 테이블을 생성하겠습니다. 아래 스크립트를 사용하세요. 테이블을 생성합니다.
CREATE TABLE `categories_archive` ( `category_id` int(11) AUTO_INCREMENT, `category_name` varchar(150) DEFAULT NULL, `remarks` varchar(500) DEFAULT NULL, PRIMARY KEY (`category_id`))
위 스크립트를 실행하여 테이블을 생성하세요. 이제 categories 테이블의 모든 행을 categories archive 테이블에 삽입해 보겠습니다.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
해당 스크립트가 작동하려면 테이블 구조가 동일해야 합니다. 보다 안정적인 스크립트는 아래와 같이 대상 테이블의 열 이름을 데이터가 포함된 테이블의 열 이름에 매핑합니다.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
아래 SELECT 쿼리를 실행하면 다음과 같은 결과가 나타납니다.
SELECT * FROM `categories_archive`;
| 카테고리_ID | CATEGORY_NAME | 발언 |
|---|---|---|
| 1 | 희극 | 유머가 있는 영화 |
| 2 | 낭만주의 | 사랑 이야기 |
| 3 | Epic | 스토리 고대 영화 |
| 4 | 공포 | NULL |
| 5 | 공상 과학 소설 | NULL |
| 6 | 스릴러 | NULL |
| 7 | 동작 | NULL |
| 8 | 로맨틱 코미디 | NULL |
| 9 | 만화 | NULL |
| 10 | 만화 | NULL |
PHP 예: 삽입 대상 MySQL 작업대
mysqli_query 함수는 다음을 실행하는 데 사용됩니다. SQL PHP에서 쿼리를 실행합니다. 삽입, 선택, 업데이트 및 삭제 문을 모두 실행하며 다음과 같은 구문을 사용합니다.
mysqli_query($db_handle,$query);
이리,
- “mysqli_query(…)”는 SQL 쿼리를 실행하는 함수입니다.
- “$query”는 실행할 SQL 쿼리입니다.
- "$db_handle"은 mysqli_connect 함수가 반환하는 서버 연결 링크입니다.
예시
$servername = "localhost"; $username = "alex"; $password = "yPXuPT"; $dbname = "afmznf"; // Create connection $conn = mysqli_connect($servername, $username, $password, $dbname); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql = "INSERT INTO addkeyworddata(link, keyword) VALUES ('https://www.guru99.com/','1000')"; if (mysqli_query($conn, $sql)) { echo "New record created successfully" . '<br>'; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); }
