mysqlはベストプラクティスの要約を変更します

目次

フィールド関連

フィールドを追加する方法は?

指定されたフィールドの後にフィールドを追加するにはどうすればよいですか?

フィールドのデフォルト値を設定するにはどうすればよいですか?

フィールドにコメントを追加するにはどうすればよいですか?

指定したフィールドの後にフィールドを追加し、デフォルト値を設定し、同時にコメントを追加するにはどうすればよいですか?

フィールドを削除する方法は?

フィールド名を変更するにはどうすればよいですか?

インデックス関連

フィールドにインデックスを追加する方法は?

フィールドに特定の長さインデックスを設定するにはどうすればよいですか?

複数のフィールドにジョイントインデックスを追加するにはどうすればよいですか?

フィールドに一意のインデックスを追加するにはどうすればよいですか?

インデックスを削除するにはどうすればよいですか?


この記事では、主に、長年にわたるmysqlalterの実際の経験を要約しています。

例としてユーザーテーブルを取り上げ、フィールドの追加とインデックスの追加の構文と例を示します。

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `name` varchar(50) NOT NULL COMMENT '用户名',
  `create_datetime` datetime NOT NULL COMMENT '创建时间',
  `update_datetime` datetime NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

フィールド関連

フィールドを追加する方法は?

ALTER table 表名 ADD COLUMN 字段名 字段类型;

例:ユーザーテーブルに年齢フィールドを追加します。

ALTER table user ADD COLUMN age int(11);

ヒント mysqlは、デフォルトで最後の列に新しいフィールドを追加しますupdate_datetimeフィールドの後にageフィールドが追加された場合、それは醜いですか?エレガントに見せるために、指定したフィールドの後にフィールドを追加できます。

指定されたフィールドの後にフィールドを追加するにはどうすればよいですか?

ALTER table 表名 ADD COLUMN 字段名 字段类型 after 指定字段;

例:エレガントに見えるように、名前フィールドの後に年齢を追加します。

ALTER table user ADD COLUMN age int(11) after name;

フィールドはエレガントに見えますが、フィールドのデフォルト値を設定する必要があると想定しています。操作方法は?

フィールドのデフォルト値を設定するにはどうすればよいですか?

ALTER table 表名 ALTER COLUMN 字段 set default 默认值;

例:デフォルト値の0が年齢に設定されているとします。

ALTER table user ALTER COLUMN age set default 0;

このフィールドはエレガントで、デフォルト値がありますが、後から来る人はどのようにしてフィールドの意味を知るのでしょうか。フィールドにコメントを追加できます。

フィールドにコメントを追加するにはどうすればよいですか?

ALTER TABLE 表名 MODIFY COLUMN 字段名 字段类型 COMMENT 注释;

例:年齢フィールドにメモを追加します。

ALTER TABLE user MODIFY COLUMN age int(11) COMMENT '年龄';

1つ目は、フィールドを追加し、指定したフィールドの後にフィールドを追加し、フィールドのデフォルト値を設定し、フィールドにコメントを追加することです。エレガントで完全で利他的な結果を得るために、基本的な操作を組み合わせることができます。

指定したフィールドの後にフィールドを追加し、デフォルト値を設定し、同時にコメントを追加するにはどうすればよいですか?

ALTER TABLE 表名 ADD COLUMN 字段名 字段类型 default 默认值 COMMENT 注释 after 指定字段;​

例:名前フィールドの後に年齢フィールドを追加し、デフォルト値を0に設定して、年齢メモを追加します。

ALTER TABLE user ADD COLUMN age int(11) default 0 COMMENT '年龄' after name;

ある日、ビジネス上の要件により、特定のフィールドが不要になった場合は、そのフィールドを削除する必要があります。

フィールドを削除する方法は?

ALTER table 表名 DROP COLUMN 字段名;

例:年齢フィールドを削除します。

ALTER table user DROP COLUMN age;

ある日、フィールドを作成したときに、フィールドのスペルが間違っていたため、フィールド名を変更する必要がありました。

フィールド名を変更するにはどうすればよいですか?

ALTER table 表名 CHANGE 原字段名 新字段名 字段类型;

例:name nick_name

ALTER table user CHANGE name nick_name varchar(50);

インデックス関連

データの読み取りと書き込みを高速化するには、フィールドにインデックスを追加する必要があります。

フィールドにインデックスを追加する方法は?

ALTER table 表名 ADD key 索引名(字段名);

例:名前フィールドにインデックスを追加します。

ALTER table user ADD key idx_name(name);

テーブル内のフィールドが特殊であると仮定します。フィールドにインデックスを追加した後、インデックスは非常に大きくなります。インデックスを小さくするために、フィールドに特定の長さを設定することもニーズを満たし、問題を解決できることがわかりました。 。

フィールドに特定の長さインデックスを設定するにはどうすればよいですか?

ALTER table 表名 ADD key 索引名(字段名(长度));

例:名前に長さ10のインデックスを設定します 

ALTER table user ADD key idx_name(name(10));

ビジネス要件により、複数のフィールドにインデックスを付ける必要があります。

複数のフィールドにジョイントインデックスを追加するにはどうすればよいですか?

ALTER table 表名 ADD key 索引名(字段名1,字段名2...);

例:名前と年齢に共同インデックスを追加する 

ALTER table user ADD key idx_name_age(name, age);

ビジネスの独自性を確保するために、独自の制約を追加する必要がある場合があります。

フィールドに一意のインデックスを追加するにはどうすればよいですか?

ALTER table 表名 ADD unique 索引名(字段名);

例:名前フィールドに一意のインデックスを追加する 

ALTER table user ADD unique idx_name(name);

インデックスが不要になったら、インデックスを削除できます。

インデックスを削除するにはどうすればよいですか?

ALTER table 表名 DROP index 索引名;

例:名前インデックスを削除する 

ALTER table user DROP index idx_name;

 

おすすめ

転載: blog.csdn.net/jack1liu/article/details/110678755