(1) INSERT
(2) INSERT 문법
mysql> INSERT INTO tablename (columnl, column2, … )
VALUES (valuel, value2, ...);
Query OK, 1 rows affected (0.03 sec)
INSERT 구문은 SQL에서 새로운 데이터를 데이터베이스 테이블에 추가하는 명령어로 사용된다.
예를 들어 한글이나 워드에서 친구들의 연락처를 저장하는 표(테이블)를 만든다고 상상해보자. 이 표(테이블)의 이름은 friends이고, 이 표에는 name (이름), age (나이), phone (전화번호) 가 있고 새로운 친구의 전화번호 및 정보를 추가하고 싶은 상황이 있다 치면 INSERT 구문을 활용해 FRIENDS라는 표(테이블)에 정보를 추가하면 된다.
mysql> INSERT INTO person (id, name, age, sex)
VALUES (1, `이효리`, 43, 'F');
Query OK, 1 row affected (0.03 sec)
mysql>select * from person;
+----+-------+----+-----+
| id | name | age| sex |
+----+-------+----+-----+
| 1 | 이효리 | 43 | F |
+----+-------+----+-----+
1 row in set (0.03 sec)
INSERT 구문을 사용할 때 지정한 열의 순서와 개수가 VALUES 에 제공된 값의 순서와 개수가 일치해야 하며 제공하는 VALUES 값의 데이터 타입이 열의 데이터 타입과 맞아야 한다. 예를 들어, age 열이 숫자형이라면 문자열 값을 제공하면 오류가 발생한다.
INSERT INTO tablename: tablename은 데이터를 추가하려는 테이블의 이름이다.
(column1, column2, ...): column1, column2, ...은 데이터를 삽입할 테이블의 열(column) 이름이다. 이 부분은 생략 가능하지만, 생략하면 VALUES의 값이 테이블의 모든 열에 순서에 따라 그대로 나열되어야 한다.
VALUES (value1, value2, ...): value1, value2, ...은 각 열(column)에 삽입할 값(VALUES) 이다. 이 값들은 열 이름에 지정된 순서대로 들어가도록 주의해야 한다
✏ INSERT 문법 모든 열(컬럼)에 삽입할 값을 추가하는 경우
mysql> INSERT INTO person (id, name, age, sex)
VALUES (2, `이상순`, 48, 'M`);
Query OK, 1 row affected (0.03 sec)
mysql>select * from person;
+----+-------+----+-----+
| id | name | age| sex |
+----+-------+----+-----+
| 1 | 이효리 | 43 | F |
| 2 | 이상순 | 48 | M |
+----+-------+----+-----+
1 row in set (0.03 sec)
SQL에서 INSERT 구문을 사용할 때, 열(column) 이름을 지정하지 않아도 되는 경우가 있다.
이는 모든 열의 값을 삽입할 때에만 가능하다. 이 경우에도 마찬가지로 입력하는 값(values)의 순서가 테이블의 이전에 생성했던 열(column) 순서와 일치해야 한다.
그래서 VALUES (2, '이상순', 48, 'M'); '2'은 person(테이블)의 'id' 열에, '이상순'은 name 열에, 48은 age 열에, 'M'는 SEX 열에 삽입되게 된다.