MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

新しいMySQLテーブル列を追加してインデックスを作成しますか?


新しいMySQLテーブルの列とインデックスを追加するには、ALTERTABLEコマンドを使用できます。

構文は次のとおりです

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)

  1. テーブルに新しい列を追加し、MySQLの同じテーブルの他の2つの列のデータを入力しますか?

    まずテーブルを作成しましょう- mysql> create table DemoTable (    Price int,    Quantity int ); Query OK, 0 rows affected (0.71 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(45,3); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(90,

  2. インデックスを使用してMySQLテーブルを作成するにはどうすればよいですか?

    インデックスを使用してMySQLテーブルを作成するための構文は、次のとおりです- create table yourTableName ( yourColumnName1 dataType, yourColumnName2 dataType . . . N ); create index yourIndexName1 on(yourColumnName1 ); create index yourIndexName2 on(yourColumnName2 ); まずテーブルを作成しましょう- mysql> create table DemoTable    ->