MySQLデータ型intとenum?
一部の値のみが必要であることがすでにわかっている場合、最善の解決策はENUMデータ型を使用することです。 ENUMはより制限的です。
値がわからない場合は、TINYINTUNSIGNEDデータ型を使用する必要があります。 TINYINTUNSIGNEDの制限は少なくなります。
10,20,30のみを格納する場合は、ENUMデータ型を実装しましょう。以下はクエリです-
mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Number ENUM('10','20','30') ); Query OK, 0 rows affected (0.24 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable(Number) values('10'); Query OK, 1 row affected (0.07 sec) mysql> insert into DemoTable(Number) values('20'); Query OK, 1 row affected (0.06 sec) mysql> insert into DemoTable(Number) values('30'); Query OK, 1 row affected (0.06 sec) mysql> insert into DemoTable(Number) values('50'); ERROR 1265 (01000): Data truncated for column 'Number' at row 1
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+----+--------+ | Id | Number | +----+--------+ | 1 | 10 | | 2 | 20 | | 3 | 30 | +----+--------+ 3 rows in set (0.00 sec)
これがTINYINTUNSIGNEDの実装です。新しいテーブルを作成しましょう-
mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Number tinyint unsigned ); Query OK, 0 rows affected (0.23 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable(Number) values(100); Query OK, 1 row affected (0.07 sec) mysql> insert into DemoTable(Number) values(50); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable(Number) values(60); Query OK, 1 row affected (0.06 sec) mysql> insert into DemoTable(Number) values(70); Query OK, 1 row affected (0.07 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+----+--------+ | Id | Number | +----+--------+ | 1 | 100 | | 2 | 50 | | 3 | 60 | | 4 | 70 | +----+--------+ 4 rows in set (0.00 sec)
-
SQL ServerにはMySQLのENUMデータ型と同等のものがありますか?
これはMySQLバージョン8.0.12で機能します。構文は次のとおりです。 create table yourTableName ( yourColumnName enum(‘Value1’,Value2’,Value3’,......N) default Value1’ or Value2 or Value3,..N ); 次のクエリを使用して、MySQLで列挙型を設定します。 mysql> create table EnumInMySQL -> ( -> WebCRUD enum('CREATE'
-
C++を使用してデータ型の範囲を計算する
C ++には、int、char、doubleなどのさまざまなデータ型があります。このセクションでは、プログラムでそれらのサイズを取得する方法を説明します。 データ型のサイズはバイト単位で取得できるため、データ型を8に乗算するだけで、ビット単位の値を取得できます。これで、ビット数がnの場合、最小範囲は– 2 ^(n-1)になり、符号付き数値の最大範囲は2 ^(n-1)–1になります。符号なしの数値の場合、負の数がないため、2 ^ n –1になります。 サンプルコード #include <iostream> #include <cmath> #define SIZE(x)