MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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)

  1. 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'

  2. C++を使用してデータ型の範囲を計算する

    C ++には、int、char、doubleなどのさまざまなデータ型があります。このセクションでは、プログラムでそれらのサイズを取得する方法を説明します。 データ型のサイズはバイト単位で取得できるため、データ型を8に乗算するだけで、ビット単位の値を取得できます。これで、ビット数がnの場合、最小範囲は– 2 ^(n-1)になり、符号付き数値の最大範囲は2 ^(n-1)–1になります。符号なしの数値の場合、負の数がないため、2 ^ n –1になります。 サンプルコード #include <iostream> #include <cmath> #define SIZE(x)