MySQLはboolを内部でtinyint(1)に変換しますか?
はい。tinyintは最小の整数データ型であるため、MySQLは内部でboolをtinyint(1)に変換します。
また、boolはtinyint(1)の同義語であるとも言えます。まず、サンプルテーブルを作成しましょう:
mysql> create table boolToTinyIntDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(20), -> isAgeGreaterThan18 bool -> ); Query OK, 0 rows affected (1.02 sec)>
テーブルの説明を確認しましょう:
mysql> desc boolToTinyIntDemo;
これにより、次の出力が生成されます
+--------------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+-------------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | Name | varchar(20) | YES | | NULL | | | isAgeGreaterThan18 | tinyint(1) | YES | | NULL | | +--------------------+-------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)
上記のサンプル出力を見ると、列isAgeGreaterThan18データ型が内部でboolからtinyint(1)に変換されています。
以下は、挿入コマンドを使用してテーブルにいくつかのレコードを挿入するためのクエリです。
mysql> insert into boolToTinyIntDemo(Name,isAgeGreaterThan18) values('Larry',true); Query OK, 1 row affected (0.18 sec) mysql> insert into boolToTinyIntDemo(Name,isAgeGreaterThan18) values('Sam',false); Query OK, 1 row affected (0.14 sec)
以下は、selectコマンドを使用してテーブルのレコードを表示するためのクエリです。
mysql> select *from boolToTinyIntDemo;
これにより、次の出力が生成されます
+----+-------+--------------------+ | Id | Name | isAgeGreaterThan18 | +----+-------+--------------------+ | 1 | Larry | 1 | | 2 | Sam | 0 | +----+-------+--------------------+ 2 rows in set (0.00 sec)
-
MySQLは、存在しない場合にユーザーを作成しますか?
「createuser」コマンドを使用して、ユーザーが存在しない場合は作成できます。このコマンドは、MySQLバージョン5.7.6以降で機能します。構文は次のとおりです- mysql> CREATE USER IF NOT EXISTS 'yourUserName'@'localhost' IDENTIFIED BY 'yourPassword'; 上記の構文を適用して、ユーザーが存在しない場合は作成します。クエリは次のとおりです- mysql> CREATE USER IF NOT EXISTS 'Smith'@&
-
MySQLはデータベースファイルをどこに保存しますか?
MySQLがデータベースファイルを保存する場所を知るには、変数@@datadirを使用できます。クエリは次のとおりです- mysql> select @@datadir; 以下は、パスを表示する出力です- +---------------------------------------------+ | @@datadir | +---------------------------------------------+ | C:\ProgramData\MySQL\MySQL Server 8.0\Data\ | +