MySQLのBITとTINYINTの違いは何ですか?
BITは、1ビットの値を格納するために使用できます。 0または1の可能性があります。たとえば、データ型BITの2を格納することはできません。 BITデータ型で2を挿入しようとすると、MySQLでエラーが発生します。
TINYINTは、8ビットの値を格納するために使用できます。保存できる最大値は127です。たとえば、8ビット値の987は保存できません。 TINYINTデータ型で987を挿入しようとすると、MySQLでエラーが発生します。
MySQLバージョン8.0.12で動作させましょう。
システムにインストールされているバージョンを確認するには。
mysql> select version();
以下は出力です。
+-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.00 sec)
ビットタイプ
BITタイプのテーブルを作成します。
mysql> create table BitDemo -> ( -> Id BIT -> ); Query OK, 0 rows affected (0.56 sec)
テーブル「BitDemo」にレコードを挿入します。
mysql> insert into BitDemo values(1); Query OK, 1 row affected (0.13 sec) mysql> insert into BitDemo values(0); Query OK, 1 row affected (0.33 sec)
ビットに2を挿入するたびにエラーが発生します。
mysql> insert into BitDemo values(2); ERROR 1406 (22001): Data too long for column 'Id' at row 1
TINYINT
TINYINTデータ型でテーブルを作成します。
mysql> create table TinyIntDemo -> ( -> Id TINYINT -> ); Query OK, 0 rows affected (0.69 sec)
レコードを挿入しています。
mysql> insert into TinyIntDemo values(123); Query OK, 1 row affected (0.17 sec) mysql> insert into TinyIntDemo values(97); Query OK, 1 row affected (0.15 sec) mysql> insert into TinyIntDemo values(127); Query OK, 1 row affected (0.16 sec)
127を超える値を挿入しようとすると、エラーが発生します。
mysql> insert into TinyIntDemo values(9876); ERROR 1264 (22003): Out of range value for column 'Id' at row 1 mysql> insert into TinyIntDemo values(987); ERROR 1264 (22003): Out of range value for column 'Id' at row mysql> insert into TinyIntDemo values(255); ERROR 1264 (22003): Out of range value for column 'Id' at row 1 mysql> insert into TinyIntDemo values(254); ERROR 1264 (22003): Out of range value for column 'Id' at row 1 mysql> insert into TinyIntDemo values(200); ERROR 1264 (22003): Out of range value for column 'Id' at row 1 mysql> insert into TinyIntDemo values(199); ERROR 1264 (22003): Out of range value for column 'Id' at row 1
保存できる最大値は127です。
挿入されたすべての有効なレコードを表示するには、SELECTコマンドを使用します。
mysql> select *from TinyIntDemo;
これが出力です。
+------+ | Id | +------+ | 123 | | 97 | | 127 | +------+ 3 rows in set (0.00 sec)
-
MySQLのTINYINT(1)とブール値の違いは何ですか?
TINYINT(1)とブール値の間に違いはありません。キーワードBoolまたはBooleanは内部でTINYINT(1)に変換されます。または、BoolまたはBooleanはTINYINT(1)と同義であると言えます。 まずテーブルを作成しましょう- mysql> create table DemoTable ( isMarried Boolean ); Query OK, 0 rows affected (1.77 sec) 表の説明を確認しましょう- mysql> desc DemoTable; これにより、次の出力が生成されます- +-----
-
MySQLでは、!=NULLとISNOT NULLの違いは何ですか?
値を!=NULLと比較すると、NULLが返されます。したがって、!=NULLは無意味です。 !=NULLとISNOT NULLの違いを確認するために、最初にテーブルを作成しましょう。 まずテーブルを作成しましょう- mysql> create table DemoTable1970 ( Value int ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTa