MySQL におけるデフォルトの使用法の詳細な説明

MySQL におけるデフォルトの使用法の詳細な説明

NULL および NOT NULL 修飾子、DEFAULT 修飾子、AUTO_INCREMENT 修飾子。

NULL および NOT NULL 修飾子

各フィールドの後に NULL または NOT NULL 修飾子を追加して、フィールドを空 (NULL) にできるかどうかを指定できます。

それとも、データを入力する必要がある(NULLではない)ことを意味しますか。 MySQLはデフォルトでフィールドをNULL修飾子として指定します。フィールドがNOT NULLとして指定されている場合、

これは「ルール」であるため、MySQL ではこのフィールドに null 値を挿入することはできません (ここで言及されている null 値はすべて NULL です)。

/* 
id、name、pass が空にならないフレンド テーブルを作成します*/ 
テーブル友達を作成( 
id int(3) が null ではない、 
名前varchar(8)がnullでない、 
varchar(20)をnull以外で渡す 
); 
/* 
エラー メッセージ: id 列は空にできません #1048 - 列 'id' は null にできません 
*/ 
友達に挿入 
値 ( 
NULL 、 'シマオピグ'、 'シマオピグ' 
);

ただし、このルールは自動インクリメント列と TIMESTAMP フィールドには適用されません。

これらの列に NULL 値を挿入すると、次の自動増分値または現在のタイムスタンプが挿入されます。

DEFAULT 修飾子

DEFAULT 修飾子を使用して、フィールドのデフォルト値を設定できます。

レコードを挿入するときにフィールドの値を渡すことを忘れた場合、MySQL は自動的にフィールドのデフォルト値を設定します。

/* 
imテーブルを作成し、名前フィールドをデフォルト値「QQ」に設定します。 
*/ 
テーブルimを作成( 
id int(3) が null ではない、 
名前 varchar(25) nullでない デフォルト 'QQ' 
); 
/* 
データを挿入するときに、名前フィールドに値を渡さないでください。MySQL はデフォルト値を設定します。実行した SQL ステートメントは正常に実行されました。 
*/ 
im( id, name ) VALUES( 2, 'MSN' ) に挿入します。 
im(id)VALUES(3)に挿入します。 
SELECT * FROM im LIMIT 0, 30; 
/* 
ID名 
2 MSN 
3 QQ 
*/

列に DEFAULT 修飾子が指定されていない場合、MySQL は列が NULL か NOT NULL かに基づいてデフォルト値を自動的に設定します。

指定されたフィールドが NULL になる可能性がある場合、MySQL はデフォルト値を NULL に設定します。

NOT NULL フィールドの場合、MySQL は数値型の場合は 0 を挿入し、文字列型の場合は空の文字列を挿入します。

TIMESTAMP 型は現在の日付と時刻を挿入し、ENUM 型は列挙グループの最初のエントリを挿入します。

AUTO_INCREMENT 修飾子

AUTO_INCREMENT 修飾子は INT 列にのみ適用され、MySQL が列の番号を自動的に生成することを示します。

(毎回最後に生成された値に 1 を加算します)。これは主キー(後述)に非常に便利です。

開発者が MySQL を使用して各レコードに一意の識別子を作成できるようになるためです。

/* 
実行した SQL ステートメントは正常に実行されました。 (クエリには 0.0170 秒かかりました) 
*/ 
テーブル項目の作成( 
id int( 5 ) NOT NULL AUTO_INCREMENT 主キー, 
ラベル varchar(255) NOT NULL 
); 
/* 
3つのレコードを挿入し、IDを指定せず、デフォルト値を使用し、AUTO_INCREMENTを追加します。 
実行した SQL ステートメントは正常に実行されました。 
*/ 
items(label) に values ​​('xxx') を挿入します。 
items(label) values ​​('yyy') に挿入します。 
items(label) に values ​​('zzz') を挿入します。 
/* 
すべてを表示し、データを確認し、IDの変更に注意してください*/ 
項目から*を選択します。 
/* 
IDラベル 
1 xxx 
2年 
3 zzz 
*/

MySQL テーブルには AUTO_INCREMENT 列が 1 つだけ存在でき、この列はキーとして定義する必要があります。

MySQL では、列制約に加えて、主キー、外部キー、インデックス、一意制約などのテーブル レベルの制約も使用できます。

要約する

以上が、編集者による MySQL の default の使用法の紹介です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • Windows 64 ビット版 MySQL 5.7 以降の解凍パッケージにデータディレクトリと my-default.ini がなく、サービスが起動できない問題の簡単な解決方法 (問題概要)
  • Linux での MySQL 5.7.18 バイナリ パッケージのインストール チュートリアル (デフォルトの構成ファイル my_default.cnf なし)
  • MySQL 5.6 の TIMESTAMP とexplicit_defaults_for_timestamp パラメータ
  • 暗黙の DEFAULT 値を持つ TIMESTAMP は MySQL 5.6 で非推奨エラーとなる
  • MySQL フィールド '***' にデフォルト値がありませんエラーの解決方法
  • MYSQL を起動できず、プロンプトが表示されます: デフォルトのストレージ エンジン (InnoDB) が利用できません。解決策
  • デフォルトのストレージエンジン (InnoDB) が利用できないために MySQL が起動に失敗する問題を修正する方法

<<:  Vue での mixin の応用について議論する

>>:  React Native が「NSArray<id<RCTBridgeModule>>型のパラメータを初期化できません」というエラーを報告する (解決方法)

推薦する

CentOS 7 環境でソースコードから MySQL 5.7 をインストールする方法

この記事では、CentOS 7 環境でソース コードから MySQL 5.7 をインストールする方法...

JavaScript進捗管理の詳しい説明

目次序文質問原理テスト序文プログラムを作成するときに、読み込みの進行状況やアップロードの進行状況など...

Dell R720 サーバーに Windows Server 2008 R2 をインストールする方法

注: この記事のすべての写真はインターネットから収集されたものであるため、DELL R720 サーバ...

XHTML でのハイパーリンク タグの使用に関するチュートリアル

ハイパーリンク。「リンク」とも呼ばれます。ハイパーリンクは、私たちが閲覧する Web ページのいたる...

動的テーブルを実装するための要素サンプルコード

目次【コード背景】 【コード実装】 #1# -> コード再利用の基本は、再利用可能なコンポーネ...

Workbench を介して MySQL データベースにリモートでアクセスする方法の詳細な説明

序文Workbench が 1 台のコンピューターにインストールされており、別の Ubuntu サー...

CSS 使用のヒントのまとめ

最近、ブログのアップグレードを始めました。テンプレートを変更する過程で、CSS スタイルシートを書き...

CSS3 カスタムスクロールバースタイル::webkit-scrollbar サンプルコード詳細説明

Windows のデフォルトのスクロール バー スタイルは見苦しく、プロジェクト内でスクロール バー...

docker redis5.0 clusterの実装 クラスタ構築

システム環境: Ubuntu 16.04LTSこの記事では、6 つの Docker コンテナを使用し...

複雑なSQLクエリを含むMySQLの一般的なSQL文の概要

1. 複雑なSQLクエリ1.1. 単一テーブルクエリ(1)指定の列を選択する[例] 全生徒の生徒ID...

JSネイティブ2列シャトル選択ボックスの実装例

目次いつ使うか構造的ブランチコードいつ使うか選択動作を完了するには、2 つの列間で要素を直感的に移動...

FirefoxでCookieとお気に入りをインポートおよびエクスポートする方法

Firefox は、多くの拡張機能とプラグインを備えた、よく使用されるブラウザです。IE に比べて多...

オンラインMySQLオプティマイザの誤判断によって発生した低速クエリイベントを記録する

序文:非常に遅いクエリとリクエストのタイムアウトのアラートを受け取りました。メトリックを通じて My...

Linux システムで Vim を使用してリモート ファイルを読み書きするコマンドの詳細な説明

vim の動作モードを設定する (一時的) :set (モード情報) :set nu — 行番号を表...

CSS 配送先住所平行四辺形線スタイルの例コード

コードは次のようになります。 // 配送先住所の平行四辺形の線のスタイル <view clas...