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>>型のパラメータを初期化できません」というエラーを報告する (解決方法)

推薦する

ESXI の仮想マシンにワークステーションをインストールするときに発生するネットワーク障害の解決策

問題の説明ESXI で Windows にワークステーションをインストールした後、内部の仮想マシンは...

vue-element-admin グローバル読み込み待機中

最近の要件:グローバルロード、すべてのインターフェースはロード待機機能を表示するかどうかを手動で制御...

HTML テーブルレイアウト例の説明

HTML ドキュメント内の要素は次々に配置され、ブロックレベル要素の前後に改行が追加されるだけで、合...

MySQL 挿入時間の 8 時間の違いの問題の解決方法

MySQL挿入時の8時間の時差の問題を解決する通常、jdbc の URL にはいくつかのパラメータを...

Vue組み込みコンポーネントのキープアライブの使用例

目次1. キープアライブの使用使用例: 1. すべてのページをキャッシュする: 2. 条件に基づいて...

IdeaでMySQLデータベースに接続すると中国語の文字化けが発生する問題

問題: JDBCを使用してMySQLデータベースに接続すると、中国語の文字を挿入すると文字化けした文...

ウェブページ読み込み時に左右にジャンプする原因の分析と解決

最近、ウェブサイトを設計するときにこの問題に遭遇しています。メンバーセンターを設計し、コンテンツを ...

Mysql データベースの高度なビュー、トランザクション、インデックス、自己接続、ユーザー管理の例の分析の使用

この記事では、ビュー、トランザクション、インデックス、自己接続、ユーザー管理など、MySQL データ...

Vueコンポーネントは、写真やビデオをアップロードするためのサンプルコードをカプセル化します

まず依存関係をダウンロードします: cnpm i -S vue-uuid ali-oss画像フィール...

Tomcat CentOS インストールプロセス図

Tomcat CentOS インストールこのインストール チュートリアルでは、次の内容について説明し...

Linuxはiptablesを使用して複数のIPからのサーバーへのアクセスを制限します

序文Linux カーネルでは、netfilter は、パケット フィルタリング、ネットワーク アドレ...

MySQL トランザクション分離レベルの原則例分析

導入あなたも面接でこれに遭遇したことがあるはずです。トランザクションの分離レベルについてお話ししまし...

Vueリスナーの使用例の詳細な説明

1つ目はjQueryのajaxを使用してリクエストを送信することです ユーザーが登録するときに、リス...

VMware ESXi 6.0 および仮想マシンのインストール チュートリアルの展開 (画像とテキスト)

社内には以前からアイドル状態だった、構成の整ったサーバーがあったので、EXSI 6.0 を使って複数...

CSS BEM 命名標準の概要 (推奨)

1 BEM命名標準とはBem は、ブロック、要素、修飾子の略語であり、Yandex チームによって...