MySQL은 여러 필드 위치를 늘리기 위해 추가를 변경합니까? modify column 문의 사용법에 대한 자세한 설명

MySQL의 여러 필드 위치를 늘리기 위해 추가를 변경하시겠습니까? modify column 문의 사용법에 대한 자세한 설명

MySQL의 ALTER 명령

데이터 테이블 이름을 수정하거나 데이터 테이블 필드를 수정해야 하는 경우 MySQL ALTER 명령을 사용해야 합니다.

이 자습서를 시작하기 전에 testalter_tbl이라는 테이블을 생성해 보겠습니다.

root@host# mysql -u root -p password;
Enter password:*******
mysql> use chenweiliang;
Database changed
mysql> create table testalter_tbl
    -> (
    -> i INT,
    -> c CHAR(1)
    -> );
Query OK, 0 rows affected (0.05 sec)
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| i     | int(11) | YES  |     | NULL    |       |
| c     | char(1) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

테이블 필드 삭제, 추가 또는 수정

다음 명령은 위에서 만든 테이블의 i 열을 삭제하기 위해 DROP 절과 함께 ALTER 명령을 사용합니다.

mysql> ALTER TABLE testalter_tbl  DROP i;

데이터 테이블에 필드가 하나만 남아 있는 경우 DROP을 사용하여 필드를 삭제할 수 없습니다.

ADD 절은 MySQL에서 데이터 테이블에 열을 추가하는 데 사용됩니다. 다음 예제에서는 testalter_tbl 테이블에 i 필드를 추가하고 데이터 유형을 정의합니다.

mysql> ALTER TABLE testalter_tbl ADD i INT;

위의 명령을 실행하면 i 필드가 자동으로 데이터 테이블 필드의 끝에 추가됩니다.

mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c     | char(1) | YES  |     | NULL    |       |
| i     | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

새 필드의 위치를 ​​지정해야 하는 경우 MySQL에서 제공하는 FIRST 키워드를 사용할 수 있습니다(set포지셔닝첫 번째 열), AFTER 필드 이름(필드 뒤에 설정).

다음 ALTER TABLE 문을 시도하고 성공적인 실행 후 SHOW COLUMNS를 사용하여 테이블 구조의 변경 사항을 확인합니다.

ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT FIRST;
ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT AFTER c;

FIRST, AFTER 키워드는 ADD 절에서만 사용하므로 데이터 테이블 필드의 위치를 ​​재설정하려면 먼저 DROP을 사용하여 필드를 삭제한 다음 ADD를 사용하여 필드를 추가하고 위치를 설정해야 합니다.


필드 유형 및 이름 수정

필드 유형 및 이름을 수정해야 하는 경우 ALTER 명령에서 MODIFY 또는 CHANGE 절을 사용할 수 있습니다.

예를 들어, 필드 c의 유형을 CHAR(1)에서 CHAR(10)으로 변경하려면 다음 명령을 실행하십시오.

mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);

CHANGE 절을 사용하면 구문이 매우 다릅니다.CHANGE 키워드 바로 뒤에는 수정하려는 필드의 이름이 오고 새 필드 이름과 유형을 지정합니다.다음 예를 시도해 보세요.

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

Null 및 기본값에 대한 ALTER TABLE의 영향

필드를 수정할 때 필드만 포함할지 아니면 기본값을 설정할지 지정할 수 있습니다.

다음 예에서는 필드 j가 NOT NULL이고 기본값이 100임을 지정합니다.

mysql> ALTER TABLE testalter_tbl 
    -> MODIFY j BIGINT NOT NULL DEFAULT 100;

기본값을 설정하지 않으면 MySQL은 기본적으로 필드를 자동으로 NULL로 설정합니다.


필드 기본값 수정

ALTER를 사용하여 필드의 기본값을 변경할 수 있습니다. 다음 예를 시도하십시오.

mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c     | char(1) | YES  |     | NULL    |       |
| i     | int(11) | YES  |     | 1000    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

다음 예와 같이 ALTER 명령을 DROP 절과 함께 사용하여 필드의 기본값을 제거할 수도 있습니다.

mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c     | char(1) | YES  |     | NULL    |       |
| i     | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
Changing a Table Type:

ALTER 명령과 TYPE 절을 사용하여 데이터 테이블 유형을 수정할 수 있습니다.testalter_tbl 테이블의 유형을 MYISAM으로 변경하는 다음 예를 시도하십시오.

注意 :데이터 테이블 유형을 보려면 SHOW TABLE STATUS 문을 사용할 수 있습니다.

mysql> ALTER TABLE testalter_tbl ENGINE = MYISAM;
mysql>  SHOW TABLE STATUS LIKE 'testalter_tbl'\G
*************************** 1. row ****************
           Name: testalter_tbl
           Type: MyISAM
     Row_format: Fixed
           Rows: 0
 Avg_row_length: 0
    Data_length: 0
Max_data_length: 25769803775
   Index_length: 1024
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2007-06-03 08:04:36
    Update_time: 2007-06-03 08:04:36
     Check_time: NULL
 Create_options:
        Comment:
1 row in set (0.00 sec)

테이블 이름 수정

데이터 테이블의 이름을 수정해야 하는 경우 ALTER TABLE 문에서 RENAME 절을 사용하여 수정할 수 있습니다.

다음 예를 시도하여 데이터 테이블 testalter_tbl의 이름을 alter_tbl로 바꾸십시오.

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

ALTER 명령은 MySQL 데이터 테이블에서 인덱스를 생성 및 삭제하는 데에도 사용할 수 있습니다. 이에 대해서는 다음 장에서 소개합니다.

다른 용도 변경

스토리지 엔진 수정: myisam으로 수정

alter table tableName engine=myisam;

외래 키 제약 조건 제거: keyName은 외래 키 별칭입니다.

alter table tableName drop foreign key keyName;

수정된 필드의 상대 위치: 여기서 name1은 수정할 필드이고 type1은 필드의 원래 유형이며 first와 after를 선택할 수 있습니다. 이는 분명해야 합니다. first가 먼저 배치되고 after는 name2 뒤에 배치됩니다. 필드

alter table tableName modify name1 type1 first|after name2;

희망 첸 웨이량 블로그( https://www.chenweiliang.com/ ) 공유 "MySQL은 여러 필드 위치를 늘리기 위해 추가를 변경하시겠습니까? Modify Column Statement의 사용법에 대한 자세한 설명"이 도움이 됩니다.

이 기사의 링크를 공유하는 것을 환영합니다:https://www.chenweiliang.com/cwl-495.html

최신 업데이트를 받으려면 Chen Weiliang 블로그의 Telegram 채널에 오신 것을 환영합니다!

🔔 채널 상위 디렉토리에서 귀중한 "ChatGPT 콘텐츠 마케팅 AI 도구 사용 가이드"를 가장 먼저 받아보세요! 🌟
📚 이 가이드에는 엄청난 가치가 담겨 있습니다. 🌟이것은 흔치 않은 기회입니다. 놓치지 마세요! ⏰⌛💨
당신이 원한다면 공유하고 좋아하십시오!
당신의 공유와 좋아요는 우리의 지속적인 동기 부여입니다!

 

发表 评论

귀하의 이메일 주소는 공개되지 않습니다. 必填 项 已 用 * 标注

맨위로 스크롤