MySQL INSERT INTO 쿼리: 테이블에 행을 추가하는 방법(예제)

⚡ 스마트 요약

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

  • 📥 핵심 구문: `INSERT INTO `table_name`(column_1,column_2) VALUES (value_1,value_2)`는 지정된 테이블에 새 행 하나를 생성합니다.
  • 🔤 인용 규칙: 문자열 및 날짜 값에는 작은따옴표를 사용해야 하며, 숫자 값은 따옴표 없이 입력해야 합니다.
  • 0️⃣ 제로 함정의 선두주자: 따옴표로 묶지 않은 전화번호는 숫자로 읽히므로 맨 앞의 0은 자동으로 생략됩니다.
  • 🔀 열 순서: 쿼리 내 열 순서는 각 값이 해당 열에 매핑되는 한 중요하지 않습니다.
  • 🕳️ 생략된 열: 구문에서 생략된 열은 NULL 또는 선언된 기본값을 받습니다.
  • 📑 테이블에서 테이블로: INSERT INTO … SELECT는 열 구조가 일치할 때 테이블 간에 행을 복사합니다.

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);
}

자주 묻는 질문

MySQL 중복 항목 오류로 인해 거부됩니다. 행을 건너뛰려면 INSERT IGNORE를 사용하고, 기존 행을 업데이트하려면 INSERT … ON DUPLICATE KEY UPDATE를 사용하십시오.

삽입 직후에 SELECT LAST_INSERT_ID()를 실행하거나 PHP에서 mysqli_insert_id($conn)를 호출하십시오. 그러면 사용자의 연결에서 최신 행에 대해 생성된 AUTO_INCREMENT 키가 반환됩니다.

사용자 입력을 쿼리 문자열에 직접 연결하지 마십시오. 바인딩된 매개변수를 사용하는 준비된 문을 사용하여 값이 쿼리 문자열과 별도로 전달되도록 하십시오. SQL 명령으로 실행할 수 없습니다.

네. AI 비서는 스프레드시트나 일반 설명을 INSERT 문으로 변환합니다. MySQL 워크 벤치 실행할 수 있습니다. 모델이 스키마를 추측할 수 있으므로 열 순서와 따옴표 사용 여부를 확인하세요.

먼저 개발 환경에 삽입하세요. AI가 생성한 행은 외래 키를 손상시키거나, 열 길이를 초과하거나, 유효하지 않은 날짜를 생성할 수 있습니다. 롤백이 가능하도록 일괄 처리를 트랜잭션 내에서 실행하세요.

이 게시물을 요약하면 다음과 같습니다.