MySQL:テーブル関連の操作

データテーブルを作成する

基本的な文法

MySQLでは、使用することができますCREATE TABLEテーブルを作成するステートメントを。構文形式は次のとおりです。

CREATE TABLE <表名> ([表定义选项])[表选项][分区选项];

その中で[表定义选项]、形式は次のとおりです。

<列名1> <类型1> [,] <列名n> <类型n>

CREATE TABLE 多くのコマンド構文があり、主にテーブル作成定義(create-definition)、テーブルオプション(table-options)、およびパーティションオプション(partition-options)で構成されています。

ここで最初の新しいテーブルの簡単な例を説明した後、強調してCREATE TABLE文法コマンドの主なポイントをいくつか。

CREATE TABLE ステートメントの主な構文と使用方法は次のとおりです。

  • CREATE TABLE:特定の名前でテーブルを作成するために使用しますCREATEテーブルの権限が必要です。
  • <表名>:指定したテーブルの名前で作成することがCREATE TABLE後に与えられた、識別子の命名規則を遵守しなければなりません。テーブル名はdb_name.tbl_nameとして指定され、特定のデータベースにテーブルを作成します。現在のデータベースの有無にかかわらず、この方法で作成できます。現在のデータベースにテーブルを作成するときは、db-nameを省略できます。引用符で囲まれた識別名を使用する場合は、データベース名とテーブル名を別々に引用してください。たとえば、「mydb」、「Mytbl」は有効ですが、「mydb.mytbl」は無効です。
  • <表定义选项>:列名(col_name)、列定義(column_definition)、および可能性のあるNULL値の説明、整合性制約、またはテーブルインデックスで構成されるテーブル作成定義。

デフォルトでは、テーブルは現在のデータベースに作成されます。テーブルが既に存在する、現在のデータベースがない、またはデータベースが存在しない場合、エラーが発生します

ヒント:使用CREATE TABLEテーブルを作成するときは、次の情報を指定する必要があります。

  • 作成するテーブルの名前は、次のようなSQL言語のキーワード、使用することはできません、大文字と小文字を区別しないがDROPALTERINSERTなどを。
  • データテーブルの各列(フィールド)の名前とデータ型。複数の列を作成する場合は、列をコンマで区切ります。

指定したデータベースにテーブルを作成します

データテーブルはデータベースに属しています。データテーブルを作成する前に、ステートメント " USE<数据库>"を使用して、操作が実行されるデータベースを指定する必要があります。データベースが選択されていない場合、データベースが選択されていませんというエラーがスローされます。

テーブル構造を見る

MySQLでは、SQLステートメントを使用してデータテーブルを作成した後、構造定義を表示して、テーブル定義が正しいかどうかを確認できます。MySQLでは、テーブル構造を表示するために使用することができるDESCRIBESHOW CREATE TABLE声明。

DESCRIBE/DESC ステートメントは、フィールド名、フィールドデータタイプ、主キーかどうか、デフォルト値があるかどうかなど、テーブルのフィールド情報を表示できます。構文規則は次のとおりです。

DESCRIBE <表名>;

または、次のように省略されます。

DESC <表名>;

例:

mysql> DESCRIBE tb_emp1;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)

その中で、各フィールドの意味は次のとおりです。

  • Null:列が格納できるかどうかを示しNULLた値を。
  • Key:列がインデックス付けされているかどうかを示します。PRIは列がテーブルの主キーの一部であることを示し、UNIは列がUNIQUEインデックスの一部であることを示し、MULは列の特定の値が複数回出現できることを示します。
  • Default:列にデフォルト値があるかどうか、ある場合、その値は何か
  • Extra:のような、特定の列に関連付けられた追加情報が得られることを示しAUTO_INCREMENTなどが挙げられます。

SHOW CREATE TABLEステートメントを使用して、テーブルの作成時にCREATE TABLEステートメントを表示できます

SHOW CREATE TABLE <表名>\G;

例:

mysql> SHOW CREATE TABLE tb_emp1\G
*************************** 1. row ***************************
       Table: tb_emp1
Create Table: CREATE TABLE `tb_emp1` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(25) DEFAULT NULL,
  `deptId` int(11) DEFAULT NULL,
  `salary` float DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
1 row in set (0.03 sec)

ヒント:テーブルを作成するときの詳細なステートメントだけでなく、ストレージエンジンと文字エンコーディングも表示するには、SHOW CREATE TABLEステートメントを使用します。「\ G」パラメータを追加しないと、表示結果が非常にわかりにくくなる場合があります。「\ G」パラメータを追加すると、表示結果がより直感的で見やすくなる場合があります。

データテーブルの変更

MySQLでは、あなたは使用することができALTER TABLE、例えば、元のテーブルの構造を変更するステートメントを追加または削除列、索引を作成するか、または破棄、既存の列、リネーム列やリストの種類を変更します。

基本的な文法

テーブルの変更とは、データベースにすでに存在するデータテーブルの構造を変更することです。使用MySQLのALTER TABLEテーブルを変更する声明を。テーブルを変更するための一般的な操作には、テーブル名の変更、フィールドデータタイプまたはフィールド名の変更、フィールドの追加と削除、フィールドの配置の変更、テーブルのストレージエンジンの変更、テーブルの外部キー制約の削除が含まれます。

一般的に使用される構文形式は次のとおりです。

ALTER TABLE <表名> [修改选项]

[修改选项]構文は次のとおりです。

{ ADD COLUMN <列名> <类型>
| CHANGE COLUMN <旧列名> <新列名> <新列类型>
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
| MODIFY COLUMN <列名> <类型>
| DROP COLUMN <列名>
| RENAME TO <新表名> }

フィールドを追加

ビジネスの変化に応じて、新しいフィールドを既存のテーブルに追加する必要がある場合があります。完全なフィールドには、フィールド名、データ型、整合性制約が含まれます。フィールドを追加するための構文は次のとおりです。

ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST|AFTER 已存在的字段名]

新しいフィールド名は、追加する必要のあるフィールドの名前です。これFIRSTは、新しく追加されたフィールドをテーブルの最初のフィールドとしてAFTER設定する役割を持つオプションパラメータです。これは、指定されたフィールドに新しく追加されたフィールドを追加する役割を持つオプションパラメータです既存のフィールド名の後ろ。

ヒント:「FIRSTまたはAFTER既存のフィールド名が」テーブルに新しいフィールドの場所を指定するために使用され、これら2つのパラメータなしのSQL文の場合、デフォルトでは、データテーブルに新しく追加されたフィールドを最後の列になります。

フィールドのデータ型を変更する

フィールドのデータ型を変更すると、フィールドのデータ型が別のデータ型に変換されます。MySQLでフィールドデータタイプを変更するための構文規則は次のとおりです。

ALTER TABLE <表名> MODIFY <字段名> <数据类型>

このうち、テーブル名はデータタイプのフィールドが変更されるテーブルの名前を参照し、フィールド名は変更されるフィールドを参照し、データタイプは変更されたフィールドの新しいデータタイプを参照します。

フィールドを削除

フィールドを削除すると、データテーブルからフィールドが削除されます。構文は次のとおりです。

ALTER TABLE <表名> DROP <字段名>

このうち、フィールド名は、テーブルから削除する必要があるフィールドの名前を指します。

フィールド名を変更する

MySQLのテーブルフィールド名を変更するための構文規則は次のとおりです。

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>

このうち、古いフィールド名は変更前のフィールド名を指し、新しいフィールド名は変更されたフィールド名を指します。新しいデータ型は変更されたデータ型を指します。フィールドのデータ型を変更する必要がない場合は、新しいデータ型を元のデータ型に設定できます同じですが、データ型を空にすることはできません。

CHANGEあなたはまた、唯一のデータ型を変更し、達成することができますMODIFYちょうど変更、同じ名前に設定されているSQL文の「新しいフィールド名」と「古いフィールド名」によって、同じ効果を「データタイプを。」

ヒント:異なるタイプのデータは同じ方法と長さでマシンに保存されないため、データタイプを変更すると、データテーブルの既存のデータレコードに影響する可能性があるため、データテーブルにすでにデータがある場合は、データタイプを変更しないでください。

テーブル名を変更する

MySQLのことでALTER TABLE、次のように声明の修正にテーブル名を実装するには、構文規則は以下のとおりです。

ALTER TABLE <旧表名> RENAME [TO] <新表名>

そのうち、TO使用してもしなくても結果に影響を与えないオプションのパラメーターです。

ヒント:ユーザーはDESCコマンドを使用して、テーブル名を変更するときに、変更された2つのテーブルの構造を表示できます。テーブル名を変更しても、テーブルの構造は変更されません。したがって、名前変更後のテーブルと名前変更前のテーブルの構造は同じです。

データテーブルを削除

MySQLデータベースでは、不要になったデータテーブルをデータベースから削除できます。

テーブルを削除すると、テーブルの構造とテーブル内のすべてのデータが削除されるため、データテーブルを削除する前にバックアップを取り、修復不可能な損失を回避することをお勧めします。

MySQLデータベースのデータテーブルの削除方法を見てみましょう。

基本的な文法

使用DROP TABLE文は、次の構文を一の以上のデータテーブルを削除することができます。

DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...]

構文形式の説明は次のとおりです。

  • 表名1, 表名2, 表名3 ...削除するデータテーブルの名前を示します。DROP TABLEテーブル名がコンマで区切られて順番に記述されている限り、複数のテーブルを同時に削除できます。
  • IF EXISTSデータテーブルを削除する前に、テーブルが存在するかどうかを判断するために使用されます。ない場合はIF EXISTS、ときにデータテーブルは、MySQLは、SQL文の実行割り込み、エラーを要求されますが存在しない、プラスIF EXISTSのSQLステートメントが正常に実行することができ、後にするときに、データテーブルは存在しませんが、(警告)警告が表示されます。

注意すべき2つのポイント:

  • ユーザーが実行している必要がありDROP TABLEそうでない場合は、データテーブルが削除されていない、権限のコマンドを。
  • テーブルが削除されても、テーブルに対するユーザーの権限は自動的に削除されません。
公開された94元の記事 ウォンの賞賛0 ビュー722

おすすめ

転載: blog.csdn.net/qq_46578181/article/details/105420811