データテーブルを作成する
基本的な文法
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言語のキーワード、使用することはできません、大文字と小文字を区別しないが
DROP
、ALTER
、INSERT
などを。- データテーブルの各列(フィールド)の名前とデータ型。複数の列を作成する場合は、列をコンマで区切ります。
指定したデータベースにテーブルを作成します
データテーブルはデータベースに属しています。データテーブルを作成する前に、ステートメント " USE<数据库>
"を使用して、操作が実行されるデータベースを指定する必要があります。データベースが選択されていない場合、データベースが選択されていませんというエラーがスローされます。
テーブル構造を見る
MySQLでは、SQLステートメントを使用してデータテーブルを作成した後、構造定義を表示して、テーブル定義が正しいかどうかを確認できます。MySQLでは、テーブル構造を表示するために使用することができるDESCRIBE
とSHOW 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
そうでない場合は、データテーブルが削除されていない、権限のコマンドを。 - テーブルが削除されても、テーブルに対するユーザーの権限は自動的に削除されません。