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

MySQL에서 열 이름을 지정하지 않고 값을 삽입하는 방법

MySQL에서 열 이름 없이 값 삽입하기

네, 가능합니다. MySQL에서는 INSERT 문 작성 시 열(컬럼) 이름을 생략하고 테이블에 정의된 순서대로 값만 나열하여 데이터를 삽입할 수 있습니다.

기본 문법은 다음과 같습니다.

INSERT INTO yourTableName VALUES(yourValue1, yourValue2, yourValue3, .....N);

이때 주의할 점은 VALUES 뒤에 오는 값의 개수와 순서가 반드시 테이블의 열 구조와 일치해야 한다는 것입니다.

예제 테이블 생성

먼저 실습용 테이블을 생성해 보겠습니다. 여기서는 Id 열을 NOT NULL로 설정했습니다.

mysql> create table DemoTable862(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName varchar(100),
    Age int
);
Query OK, 0 rows affected (0.68 sec)

레코드 삽입

이제 INSERT 명령어를 사용해 몇 개의 레코드를 삽입해 보겠습니다. 열 이름을 명시하지 않았으며, Id 자리에는 NULL을 전달합니다.

mysql> insert into DemoTable862 values(NULL,'Chris',23);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable862 values(NULL,'Robert',21);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable862 values(NULL,'Mike',24);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable862 values(NULL,'Sam',25);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable862 values(NULL,'Bob',26);
Query OK, 1 row affected (0.14 sec)

결과 확인

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable862;

위 쿼리는 다음과 같은 결과를 출력합니다.

+----+-----------+------+
| Id | FirstName | Age  |
+----+-----------+------+
| 1  | Chris     |   23 |
| 2  | Robert    |   21 |
| 3  | Mike      |   24 |
| 4  | Sam       |   25 |
| 5  | Bob       |   26 |
+----+-----------+------+
5 rows in set (0.00 sec)

AUTO_INCREMENT의 역할

삽입 시 Id에 NULL을 전달했음에도 불구하고 결과를 보면 1부터 5까지의 값이 자동으로 저장되어 있습니다. 그 이유는 다음과 같습니다.

Id 열은 NOT NULL 제약 조건과 함께 AUTO_INCREMENT 속성이 설정되어 있습니다. 따라서 NULL 값이 전달되더라도 이를 무시하고 MySQL이 자동으로 순차적인 고유 번호를 생성해 할당합니다.

만약 AUTO_INCREMENT가 설정되지 않은 NOT NULL 열에 NULL을 삽입하려고 하면 에러가 발생하므로, 이 방식을 사용할 때는 각 열의 제약 조건을 반드시 확인해야 합니다.