데이터 필드 작업

사용자 테이블이 있고 사용자 구조가 다음과 같다고 가정합니다.

mysql> desc user;
 +----------+---------------+------+-----+---------+-------+
 | Field | Type | Null | Key | Default | Extra |
 +----------+---------------+------+-----+---------+-------+
 | username | varchar(10) | YES | | NULL | |
 | password | varchar(32) | YES | | NULL | |
 | createtime | int(10) | YES | | NULL | |
 | createip | int(10) | YES | | NULL | |
 +----------+---------------+------+-----+---------+-------+
 4 rows in set (0.01 sec)

테이블 필드 유형 수정 수정

QQ截图20161009143828.png

실행해 보겠습니다. 결과 보기:

mysql> alter table user modify username varchar(20);
 Query OK, 0 rows affected (0.48 sec)
 Records: 0 Duplicates: 0 Warnings: 0
 mysql> desc user;
 +----------+---------------+------+-----+---------+-------+
 | Field | Type | Null | Key | Default | Extra |
 +----------+---------------+------+-----+---------+-------+
 | username | varchar(20) | YES | | NULL | |
 | password | varchar(32) | YES | | NULL | |
 | createtime | int(10) | YES | | NULL | |
 | createip | int(10) | YES | | NULL | |
 +----------+---------------+------+-----+---------+-------+
 4 rows in set (0.01 sec)

QQ截图20161009143852.png

mysql> alter table emp add column age int(3);
Query OK, 0 rows affected (0.40 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> desc user;
 +----------+---------------+------+-----+---------+-------+
 | Field | Type | Null | Key | Default | Extra |
 +----------+---------------+------+-----+---------+-------+
 | username | varchar(20) | YES | | NULL | |
 | password | varchar(32) | YES | | NULL | |
 | createtime | int(10) | YES | | NULL | |
 | createip | int(10) | YES | | NULL | |
 | age | int(3) | YES | | NULL | |
 +----------+---------------+------+-----+---------+-------+
 5 rows in set (0.00 sec)

필드 추가 시 필드 순서 제어

방금 필드를 추가하는 방법을 배웠습니다. 주의 깊게 실험하여 끝에 추가될 때마다 첫 번째 항목이나 포인팅 필드 뒤에 추가하는 방법을 찾으면 어떻게 해야 할까요?

QQ截图20161009143916.png

ALTER TABLE user ADD email VARCHAR(60) AFTER createip; 
 Query OK, 0 rows affected (0.40 sec)
 Records: 0 Duplicates: 0 Warnings: 0
mysql> desc user;
 +----------+---------------+------+-----+---------+-------+
 | Field | Type | Null | Key | Default | Extra |
 +----------+---------------+------+-----+---------+-------+
 | username | varchar(20) | YES | | NULL | |
 | password | varchar(32) | YES | | NULL | |
 | createtime | int(10) | YES | | NULL | |
 | createip | int(10) | YES | | NULL | |
 | email | varchar(60) | YES | | NULL | |
 | age | int(3) | YES | | NULL | |
 +----------+---------------+------+-----+---------+-------+
 6 rows in set (0.00 sec)

테이블 필드 삭제

QQ截图20161009143936.png

mysql> alter table user drop column age;
 Query OK, 0 rows affected (0.27 sec)
 Records: 0 Duplicates: 0 Warnings: 0
mysql> desc user;
 +----------+---------------+------+-----+---------+-------+
 | Field | Type | Null | Key | Default | Extra |
 +----------+---------------+------+-----+---------+-------+
 | username | varchar(20) | YES | | NULL | |
 | password | varchar(32) | YES | | NULL | |
 | createtime | int(10) | YES | | NULL | |
 | createip | int(10) | YES | | NULL | |
 | email | varchar(60) | YES | | NULL | |
 +----------+---------------+------+-----+---------+-------+
 5 rows in set (0.00 sec)

QQ截图20161009143947.png

alter table user   change email em varchar(60);

설명 예

사용자 테이블에서 em 필드의 이메일 필드 이름을 지정합니다.

자세한 예:

mysql> alter table user change email em varchar(60);
 Query OK, 0 rows affected (0.38 sec)
 Records: 0 Duplicates: 0 Warnings: 0
mysql> desc user;
 +----------+---------------+------+-----+---------+-------+
 | Field | Type | Null | Key | Default | Extra |
 +----------+---------------+------+-----+---------+-------+
 | username | varchar(20) | YES | | NULL | |
 | password | varchar(32) | YES | | NULL | |
 | createtime | int(10) | YES | | NULL | |
 | createip | int(10) | YES | | NULL | |
 | em | varchar(60) | YES | | NULL | |
 +----------+---------------+------+-----+---------+-------+
 5 rows in set (0.00 sec)

테이블 필드 순서 수정

이전 필드 추가 및 수정 문(추가/변경/수정)에서 끝에 선택적 first|after 옵션을 추가할 수 있습니다.

테이블 필드를 추가할 때 순서를 조정하는 방법을 이미 배웠습니다. 이제 또 다른 변경이나 수정이 순서를 어떻게 조정할 수 있는지 살펴보겠습니다.

먼저 작은 실험을 해보겠습니다.

수정을 사용하여 순서 조정

mysql> alter table user modify em varchar(60) first;
 Query OK, 0 rows affected (0.41 sec)
 Records: 0 Duplicates: 0 Warnings: 0
mysql> desc user;
 +----------+---------------+------+-----+---------+-------+
 | Field | Type | Null | Key | Default | Extra |
 +----------+---------------+------+-----+---------+-------+
 | em | varchar(60) | YES | | NULL | |
 | username | varchar(20) | YES | | NULL | |
 | password | varchar(32) | YES | | NULL | |
 | createtime | int(10) | YES | | NULL | |
 | createip | int(10) | YES | | NULL | |
 +----------+---------------+------+-----+---------+-------+
 5 rows in set (0.00 sec)

테이블 이름 수정

QQ截图20161009144055.png

mysql> alter table user rename new_user;
 Query OK, 0 rows affected (0.35 sec)
mysql> desc new_user;
 +----------+---------------+------+-----+---------+-------+
 | Field | Type | Null | Key | Default | Extra |
 +----------+---------------+------+-----+---------+-------+
 | em | varchar(60) | YES | | NULL | |
 | username | varchar(20) | YES | | NULL | |
 | password | varchar(32) | YES | | NULL | |
 | createtime | int(10) | YES | | NULL | |
 | createip | int(10) | YES | | NULL | |
 +----------+---------------+------+-----+---------+-------+
 5 rows in set (0.00 sec)


지속적인 학습
||
<?php echo "Hello Mysql"; ?>
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~