(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値をクリアしたい場合は、このコマンドを使用しないでください。