MySQLのフィールド修飾子(制約)

(1)。NULL和nullでありません

  nullではないnullを挿入することはできませんが、null値を挿入することができます。

  数値、文字、日付がnullに挿入することができますが、唯一のヌル文字を挿入します。

  次のように使用します。

; MySQLの>データベースTEST_DBを作成
影響を受けOK ,. 1行(0.00秒)クエリ

TEST_DBを使用> MySQLの; 
データベースが変更され
MySQLを>表`notnull_table`(名VARCHAR(20)NOT NULL)を作成し、
OKを照会し、影響を受けた0行(0.02秒)

MySQLの> notnull_table値(nullの挿入 ); // セットがNULL列がnullの挿入許可していないではありません
ERROR 1048(23000)を:列'名' CANされないヌル
のMySQL>( '')notnull_table値に挿入; //しかし、ヌルを挿入することができ
影響OK ,. 1行(0.00秒)クエリ

のMySQL> notnull_table値(「ジャック」)に挿入するステップと、
影響を受けOK ,. 1行のクエリ(0.01秒)

  nullでない空間が、ヌル空間(1つのバイトの計算):ヌルとヌル差。

  の効率よりも高くないヌルヌル。フィールドと比較すると、NULL値が空ではないので、これはですので、スペースを取り、比較的ヌルフィールドは、効率性に何らかの影響を参加します。そして、インデックスはNULL値が格納されていない、効率指標は、多くのことをドロップします。

(2).DEFAULT

  defalut、デフォルト値は文字のみのために使用することができます。

mysqlの>テーブルdefault_table(ID int型nullではない、名前のVARCHAR(20)NOT NULLデフォルトの'テスト')を作成します。
クエリOK、影響を受けた0行(0.03秒)

のMySQL> default_table(ID)の値(1)に挿入します。
クエリOK、影響を受けた1行(0.00秒)

のMySQL> SELECT * FROM default_tableから。
+ ---- + ------ + 
| ID | 名前| 
+ ---- + ------ + 
| 1 | テスト| 
+ ---- + ------ + 
セットにおける1行(0.00秒)

  注意:;エラー、nullでない文字フィールドがデフォルトに設定されていない場合は、nullを指定でき、デフォルトはnullです。単独の列挙処理は、デフォルトでは最初の要素です。時刻フィールドは、現在の時刻に、デフォルトをデフォルトされていません。

(3).auto_increment

  AUTO_INCREMENTは、自動的に自動的に数字のみのために、1ずつ増加増加しました。しかし、AUTO_INCREMENT、主キーを過ごすために持っているようだ、またはMySQLのエラーメッセージが1075年に報告されます。

MySQLは>(IDのBIGINT主キー、名前VARCHAR(20)AUTO_INCREMENT)テーブルauto_tableを作成します。
クエリOK、影響を受けた0行(0.02秒)

のMySQL> auto_table(名)の値( '名前')に挿入します。
クエリOK、影響を受けた1行(0.00秒)

のMySQL> SELECT * FROM auto_tableから。
+ ---- + ------ + 
| ID | 名前| 
+ ---- + ------ + 
| 1 | 名前| 
+ ---- + ------ + 
セットにおける1行(0.00秒)

(4)拡張:AUTO_INCREMENTの値を含む消去テーブルデータ、

  一般的には、データテーブルには、deleteコマンドを使用して削除されますが、クリアAUTO_INCREMENT値を削除する方法はありません。次のように:

MySQLの> auto_tableから選択*; 
+ ---- + ------ + 
| ID | 名前| 
+ ---- + ------ + 
| 1 | 名前| 
+ ---- + ------ + 
セットにおける1行(0.00秒)

のMySQL> auto_tableから削除します。
クエリOK、影響を受けた1行(0.03秒)

のMySQL> auto_table(名)の値( 'NAME2')に挿入します。
クエリOK、影響を受けた1行(0.01秒)

のMySQL> SELECT * FROM auto_tableから。
+ ---- + ------- + 
| ID | 名前| 
+ ---- + ------- + 
| 2 | NAME2 | 
+ ---- + ------- + 
セットにおける1行(0.00秒)

  今度は、コマンドを切り捨てる使用する必要があります。次のように:

MySQLの> auto_tableから選択*; 
+ ---- + ------- + 
| ID | 名前| 
+ ---- + ------- + 
| 2 | NAME2 | 
+ ---- + ------- + 
セットにおける1行(0.00秒)

のMySQL>表auto_tableを切り捨てます。
クエリOK、影響を受けた0行(0.02秒)

のMySQL> auto_table(名)の値( 'NAME3')に挿入します。
クエリOK、影響を受けた1行(0.01秒)

のMySQL> SELECT * FROM auto_tableから。
+ ---- + ------- + 
| ID | 名前| 
+ ---- + ------- + 
| 1 | NAME3 | 
+ ---- + ------- + 
セットにおける1行(0.00秒)

  注意:TRUNCATEは、すべてのデータのテーブルを消去します。あなたはAUTO_INCREMENT値をクリアしたい場合は、このコマンドを使用しないでください。

おすすめ

転載: www.cnblogs.com/diantong/p/10983825.html