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

MySQL INSERT 문에서 열 이름을 지정하는 방법 – SET 구문 완벽 정리

MySQL INSERT 문에서 열 이름 지정하기

네, 가능합니다. MySQL에서는 일반적인 INSERT INTO ... VALUES 구문 대신 INSERT INTO ... SET 구문을 사용하면 INSERT 문에서 열 이름을 직접 지정할 수 있습니다. 이 방식은 '열이름 = 값' 형태로 각 데이터를 명확하게 매핑하기 때문에 가독성이 뛰어나고, 열 순서를 잘못 지정하는 실수를 예방할 수 있습니다.

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable674(
    StudentId int,
    StudentFirstName varchar(100),
    StudentLastName varchar(100)
 );
Query OK, 0 rows affected (0.82 sec)

SET 구문으로 레코드 삽입하기

이제 insert 명령과 SET 구문을 사용하여 테이블에 레코드를 삽입해 보겠습니다. 각 열의 이름과 값을 한 줄씩 명확하게 지정하고 있습니다.

mysql> insert into DemoTable674 set StudentId=10,StudentFirstName='John',StudentLastName='Smith';
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable674 set StudentId=11,StudentFirstName='Carol',StudentLastName='Taylor';
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable674 set StudentId=12,StudentFirstName='David',StudentLastName='Miller';
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable674 set StudentId=13,StudentFirstName='Chris',StudentLastName='Brown';
Query OK, 1 row affected (0.53 sec)

삽입된 데이터 확인하기

select 문을 사용하여 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable674;

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

+-----------+------------------+-----------------+
| StudentId | StudentFirstName | StudentLastName |
+-----------+------------------+-----------------+
| 10 | John | Smith |
| 11 | Carol | Taylor |
| 12 | David | Miller |
| 13 | Chris | Brown |
+-----------+------------------+-----------------+
4 rows in set (0.00 sec)

INSERT ... SET 구문의 특징과 장단점

장점:

  • 열 이름과 값이 나란히 표시되어 어떤 값이 어느 열에 들어가는지 한눈에 파악할 수 있습니다.
  • 테이블의 열 순서와 무관하게 원하는 열만 선택적으로 삽입할 수 있습니다.
  • 열이 많은 테이블에서도 코드 유지보수가 쉽습니다.

주의사항:

  • INSERT ... SET은 MySQL 전용 확장 구문으로, 표준 SQL이 아니기 때문에 다른 DBMS(MySQL 호환 모드 제외)에서는 작동하지 않습니다.
  • 여러 행을 한 번의 쿼리로 삽입할 때는 INSERT INTO ... VALUES (...), (...) 구문이 더 효율적입니다.

이처럼 MySQL의 SET 구문을 활용하면 열 이름을 명시적으로 지정하면서 안전하고 읽기 쉬운 INSERT 쿼리를 작성할 수 있습니다.