Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

새 MySQL 테이블 열을 추가하고 인덱스를 생성하시겠습니까?

<시간/>

새 MySQL 테이블 컬럼과 인덱스를 추가하려면 ALTER TABLE 명령을 사용할 수 있습니다.

구문은 다음과 같습니다.

ALTER TABLE yourTableName ADD COLUMN yourColumnName dataType,
ADD INDEX(yourColumnName );

위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table AddColumnAndIndexDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> Name varchar(100),
   -> Address varchar(200)
   -> );
Query OK, 0 rows affected (0.81 sec)

이제 테이블의 설명을 확인할 수 있습니다. 쿼리는 다음과 같습니다 -

mysql> desc AddColumnAndIndexDemo;

다음은 출력입니다.

+---------+--------------+------+-----+---------+----------------+
| Field   | Type         | Null | Key | Default | Extra          |
+---------+--------------+------+-----+---------+----------------+
| Id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| Name    | varchar(100) | YES  |     | NULL    |                |
| Address | varchar(200) | YES  |     | NULL    |                |
+---------+--------------+------+-----+---------+----------------+
3 rows in set (0.03 sec)

다음은 새로운 MySQL 테이블 컬럼과 인덱스를 추가하는 쿼리입니다.

mysql> alter table AddColumnAndIndexDemo add column Age int, add index(Age);
Query OK, 0 rows affected (1.81 sec)
Records: 0 Duplicates: 0 Warnings: 0

테이블 설명을 다시 한 번 확인하십시오. 쿼리는 다음과 같습니다 -

mysql> desc AddColumnAndIndexDemo;

다음은 출력입니다.

+---------+--------------+------+-----+---------+----------------+
| Field   | Type         | Null | Key | Default | Extra          |
+---------+--------------+------+-----+---------+----------------+
| Id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| Name    | varchar(100) | YES  |     | NULL    |                |
| Address | varchar(200) | YES  |     | NULL    |                |
| Age     | int(11)      | YES  | MUL | NULL    |                |
+---------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

SHOW 명령을 사용하여 테이블에서 인덱스를 확인하십시오. 쿼리는 다음과 같습니다 -

mysql> show index from AddColumnAndIndexDemo;

다음은 출력입니다.

+-----------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| Table                 | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible |
+-----------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| addcolumnandindexdemo | 0          | PRIMARY  | 1            | Id          | A         | 0           | NULL     | NULL   |      | BTREE      |         |               | YES     |
| addcolumnandindexdemo | 1          | Age      | 1            | Age         | A         | 0           | NULL     | NULL   | YES  | BTREE      |         |               | YES     |
+-----------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
2 rows in set (0.16 sec)