[MYSQLノート]テーブルの変更

テーブルの例:従業員情報テーブル:id(varchar(10))、name(varchar(100))、age(int)

列のデータ型を変更します。

alter table 表名 modify 列名 数据类型;

例:列名の変更された文字の数が100を超えない

alter table tb modify name varchar(100);

注:先頭が0ではなく、数字のみで構成されるデータを格納する列は、int型varchar->intに従って変更できます。

ただし、列にデータがある場合は、原則として、列のデータ型を変更しないでください。

列を追加します:

alter table 表名 add 列名 数据类型;

例:従業員の誕生日を入力できる日時タイプの列の誕生日を追加します

alter table tb add birth datetime;

前面に列を追加します。

alter table addを使用して作成された列は、テーブルの最後に追加されます。最初にコマンドに追加すると、新しい列が先頭に追加されます。

例:tbの前に日時タイプの列の誕生を追加します

alter table tb add birth datetime first;

どこにでも列を追加します。

afterを使用して、指定した位置に列を追加します。

alter table tb add birth datetime after id;

列の順序を変更します。

列の位置は、Modifyを使用して変更することもできます

例:最後の出生を前の位置に変更します

alter table tb modify borth datetome first;

 列名を変更し、列のデータ型を変更します。

alter table 表名 change 修改前的列名 修改后的列名 修改后的数据类型;

例:テーブルtbの誕生を日付型に変更し、列名を誕生日に変更し、変更後の列の構造を表示します。

alter table tb change birth birthday date;
desc tb;

列を削除します。

alter table 表名 drop 列名;

例:テーブルtbの列の誕生日を削除します

alter table tb drop birthday;

列だけでなく、dropコマンドは、データベースやテーブルで操作を実行するときにも使用されます。

列が削除されると、その列に格納されているデータも削除されます。この操作は他の列には影響しません。

主キーを設定します。

一意:データベースの作成後、大量のデータから適格なレコードを1つだけ決定する方法を見つける必要があります。たとえば、各従業員に一意のIDを持たせます。1つだけを決定するこの一意の状態は、一意と呼ばれます。

主キー:複数のレコードの中からレコードを識別するために使用される識別子。

レコードを厳密に判別できるようにするには、主キーに(1)重複する値がない(2)null値がない(null)ことが許可されている必要があります

テーブルを作成するときに主キーを設定します。

create table 表名(列名 数据类型 primary key ...)

 例:テーブルtb1を作成します。主キーとしての列は、int型であり、b列はvarchar(10)型です。

create table tb1(a int primary key,b varchar(10));

 主キーの列に重複する値とnull値を含めることはできません

一意のキー:「重複は許可されませんが、nullになる可能性がある」一意のキーを設定できます

create table tb(a int unique,b varchar(10));

自動連番で列を作成します。

リストやリストのシリアル番号などは、毎回列データとして番号を入力する必要があるため、面倒なだけでなく、エラーが発生しやすくなります。

したがって、1、2、3、4などの連続したシリアル番号を自動的に入力する方がはるかに便利です。

自動連番付きの列の定義:

列を定義するときは、次の設定を行います。

(1)データ型はint :( tinyintまたはsmallint)です。これは連続数であるため、データ型は当然整数です。

(2)Plus auto_increment:連続番号付けを宣言するために使用されます。

(3)列を一意にするために主キーを設定します。自動シリアル番号機能を備えた列は一意であり、繰り返されたり空になったりすることはありません。このような列は主キーとしてよく使用されます。

create table tb (a int auto_increment primary key, b varchar(10));

自動連番を使用してレコードを挿入します。

自動シリアル番号付きの列は自動的に番号を入力するため、他の列にデータを入力する限り使用してください。

または入力0またはnullを取ります

insert into tb (b) values('a'),values('b'),values('c');

連続番号の初期値を設定します:

自動シリアル番号付きの列も任意の値に設定できます。

insert into tb values(100,'aa');

列aに値100が入力され、101から連続した番号が割り当てられます。つまり、入力された最大値+1から値が割り当てられます。

主キーのプロパティが設定されているため、重複する値を入力することはできません。

連続番号の初期化:

テーブル内のすべてのレコードを削除してからレコードを再入力すると、番号は1からではなく、既存の最大値+1の値から割り当てられます。

すべてのレコードを削除し、番号を1から開始して継続的に入力する場合(初期化)

alter table 表名 auto_increment=1;

テーブルにデータがある場合、設定した数値が既存の値よりも大きい場合は、上記のステートメントを使用して数値の初期値をリセットすることもできます。

列のデフォルト値を設定します:

create table 表名(列名 数据类型 default 默认值...);

 例:名前列に値が入力されていない場合に「名前が入力されていません」を自動的に入力する機能を追加します

alter table tb modify name varchar(10) default '未输入姓名';

インデックスを作成します。

テーブルtbの列IDにmy_idという名前のインデックスを作成します。

create index my_id on tb(id);

 インデックスを表示:

show index from 表名;

ドロップインデックス:

drop index 索引名 on 表名;

 

 

 

 

 

 

おすすめ

転載: blog.csdn.net/m0_52043808/article/details/124179211