Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL INSERT INTO 문에서 열 이름을 생략하고 값을 삽입하는 방법

INSERT INTO 문에서 열(컬럼) 이름을 지정하지 않고 값을 삽입하려면, 테이블에 정의된 열의 순서 그대로 값들을 나열해야 합니다. 이때 반드시 테이블의 열 개수와 동일한 개수의 값을 제공해야 하며, 각 값의 데이터 타입도 해당 열과 일치하도록 주의해야 합니다.

기본 예제

아래 예제에서는 열 이름을 명시하지 않고 student 테이블에 값을 삽입했습니다.

mysql> Insert into student values(100,'Gaurav','Ph.D');
Query OK, 1 row affected (0.08 sec)

mysql> Select * from student;
+--------+--------+--------+
| RollNO | Name   | Class  |
+--------+--------+--------+
| 100    | Gaurav | Ph.D   |
+--------+--------+--------+

1 row in set (0.00 sec)

여러 행을 한 번에 삽입할 수도 있습니다. VALUES 절 뒤에 괄호로 묶인 값 목록을 쉼표로 구분하여 나열하면 됩니다.

mysql> Insert into student values(200,'Rahul','Ph.D'),(300,'Aarav','B.tech');
Query OK, 2 rows affected (0.12 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> Select * from student;
+--------+--------+--------+
| RollNO | Name   | Class  |
+--------+--------+--------+
| 100    | Gaurav | Ph.D   |
| 200    | Rahul  | Ph.D   |
| 300    | Aarav  | B.tech |
+--------+--------+--------+

3 rows in set (0.00 sec)

주의 사항: 발생할 수 있는 오류

열 이름을 생략한 INSERT INTO 문은 간편하지만, 열의 총 개수나 데이터 타입을 맞추지 않으면 MySQL은 다음과 같은 오류를 발생시킵니다.

mysql> Insert into student values(400,'Raman',M.Tech);
ERROR 1054 (42S22): Unknown column 'M.Tech' in 'field list'

위 오류는 문자열 값 'M.Tech'를 작은따옴표로 감싸지 않아 발생했습니다. 따옴표가 없으면 MySQL은 이를 삽입할 값이 아니라 열 이름으로 인식하기 때문입니다.

mysql> Insert into student values(400,'Raman');
ERROR 1136 (21S01): Column count doesn't match value count at row 1

이 오류는 테이블에는 3개의 열(RollNO, Name, Class)이 정의되어 있는데 값은 2개만 제공되어 열 개수가 일치하지 않을 때 발생합니다. 따라서 열 이름을 생략할 경우에는 모든 열에 해당하는 값을 빠짐없이 정확한 순서대로 입력해야 합니다.