ホームページ  >  記事  >  データベース  >  mysql がデータテーブルを作成するときのデフォルト値の指定に関するチュートリアル

mysql がデータテーブルを作成するときのデフォルト値の指定に関するチュートリアル

巴扎黑
巴扎黑オリジナル
2017-05-15 14:19:336089ブラウズ

デフォルト値を指定する

行の挿入時に値が指定されない場合、MySQL ではその時点で使用されるデフォルト値を指定できます。デフォルト値は、CREATE TABLE ステートメントの列定義の DEFAULT キーワードで指定されます。

以下の例を見てください:

入力:

create table orderitems
(
order_num              int                 NOT NULL,
order_item              int                NOT NULL,
prod_id              char(10)            NOT NULL,
quantity                  int                 NOT NULL   DEFAULT1,
item_price         decimal(8,2)      NOT NULL,
PRIMARY KEY ( order_num,order_item)
)ENGINE = InnoDB;

出力: このステートメントは、注文を構成する品目を含む orderitems テーブルを作成します (注文自体は order テーブルに格納されます)。数量列には、注文内の各商品の数量が含まれます。この例では、テキスト DEFAULT 1 を列の説明に追加することで、数量が指定されていない場合は数量 1 を使用するように MySQL に指示します。

関数は許可されていません ほとんどの DBMS とは異なり、MySQL はデフォルト値として関数を使用できず、定数のみをサポートします。

NULL 値の代わりにデフォルト値を使用する多くのデータベース開発者は、特に計算やデータのグループ化に使用される列に対して、NULL 列の代わりにデフォルト値を使用します。

拡張知識:

エンジンの種類とは何ですか?

これまでに使用した CREATE TABLE ステートメントはすべて ENGINE=InnoDB ステートメントで終わっていることに気づいたかもしれません。

他の DBMS と同様、MySQL には、特にデータを管理および処理する内部エンジンがあります。 CREATE TABLE ステートメントを使用すると、エンジンは具体的にテーブルを作成し、SELECT ステートメントを使用するか、他のデータベース処理を実行すると、エンジンはリクエストを内部で処理します。ほとんどの場合、このエンジンは DBMS 内に隠されているため、あまり注意を払う必要はありません。

しかし、MySQL は他の DBMS とは異なり、複数のエンジンを備えています。複数のエンジンがパッケージ化されており、それらはすべて MySQL サーバー内に隠されており、CREATE TABLE や SELECT などのコマンドをすべて実行できます。

なぜ複数のエンジンをリリースするのですか?エンジンにはさまざまな機能があるため、さまざまなタスクに適切なエンジンを選択することで、優れた機能と柔軟性を実現できます。

もちろん、これらのデータベース エンジンは完全に無視しても問題ありません。 ENGINE= ステートメントが省略された場合、デフォルト エンジン (おそらく MyISAM ) が使用されます。これは、ほとんどの SQL ステートメントでデフォルトで使用されます。ただし、すべてのステートメントがデフォルトでこれを使用するわけではありません。これが、ENGINE= ステートメントが重要である理由です (そして、本書のサンプル テーブルで 2 つのエンジンが使用されている理由でもあります)。

以下は知っておく必要があるエンジンです:

1.InnoDB は信頼性の高いトランザクション処理エンジンですが、全文検索はサポートしていません。

2.MEMORY は機能的には MyISAM と同等ですが、データは(ディスクではなく) メモリに保存され、非常に高速です (特に一時テーブルに適しています)。

3. MyISAM は、全文検索をサポートする非常に高性能なエンジンですが、トランザクション処理はサポートしません。

エンジンタイプは混合可能です。 MyISAM を使用する productnotes テーブルを除き、この本のサンプル テーブルはすべて InnoDB を使用します。その理由は、作成者はトランザクション処理をサポートしたい (したがって InnoDB を使用する) と同時に、プロダクトノートでの全文検索もサポートする必要がある (したがって MyISAM を使用する) ためです。

外部キーはエンジンをまたぐことはできません エンジン タイプの混合には大きな欠陥があります。外部キー (参照整合性を強制するために使用される) は複数のエンジンにまたがることはできません。つまり、あるエンジンを使用するテーブルは、別のエンジンを使用するテーブルを持つ外部キーを参照できません。

それでは、どのエンジンを使用する必要がありますか?それは必要な機能によって異なります。 MyISAM は、そのパフォーマンスと機能により、おそらく最も人気のあるエンジンです。ただし、信頼性の高いトランザクション処理が必要ない場合は、他のエンジンを使用できます。

以上がmysql がデータテーブルを作成するときのデフォルト値の指定に関するチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。