サブクエリで使用しているときにMySQLEXISTSとINのどちらが優先されますか?
EXISTSは、クエリが結果を返したかどうかを示しますが、INを使用して1つの値を他の値と比較できます。 INはリテラル値を使用します。
注 −サブクエリの結果が非常に小さい場合は常に、サブクエリでINが優先されます。サブクエリの結果が非常に大きい場合は、EXISTSが使用されます。
INは小さいサブクエリ結果に適した選択肢であるため、INの例を検討しています。
テーブルを作成します。
mysql> create table InSubQueryDemo -> ( -> PNumber int, -> PName varchar(100) -> ); Query OK, 0 rows affected (0.60 sec)
テーブルにレコードを挿入します。
mysql> insert into InSubQueryDemo values(1,'Laptop'); Query OK, 1 row affected (0.17 sec) mysql> insert into InSubQueryDemo values(2,'WirelessKeyboard'); Query OK, 1 row affected (0.21 sec) mysql> insert into InSubQueryDemo values(3,'WirelessMouse'); Query OK, 1 row affected (0.12 sec)
すべてのレコードを表示しています。
mysql> select *from InSubQueryDemo;
以下は出力です。
+---------+------------------+ | PNumber | PName | +---------+------------------+ | 1 | Laptop | | 2 | WirelessKeyboard | | 3 | WirelessMouse | +---------+------------------+ 3 rows in set (0.00 sec)
以下はINの構文であり、1より大きい「PNumber」をフェッチするためのサブクエリが含まれています。
mysql> select *from InSubQueryDemo -> where PNumber IN (select PNumber from InSubQueryDemo WHERE PNumber > 1);
これが出力です。
+---------+------------------+ | PNumber | PName | +---------+------------------+ | 2 | WirelessKeyboard | | 3 | WirelessMouse | +---------+------------------+ 2 rows in set (0.04 sec)
-
行を取得する際のMySQLのAND、OR演算子の違いは何ですか?
AND、ORの違いは、全体的な条件が真になるには、ANDが両方の条件が真でなければならないことを評価することです。 ORは、全体的な条件が真であるためには、1つの条件が真でなければならないと評価します。 テーブルを作成しましょう- mysql> create table demo70 −> ( −> id int not null auto_increment primary key, −> name varchar(20), −> age int −> ); Query OK, 0 rows a
-
MySQLデータベースの作成と使用
MySQLがインストールされ、ユーザーがSQLステートメントの入力方法を認識したら、データベースにアクセスできます。データベース内のテーブルからデータを取得するために必要な手順を理解しましょう- サーバーに接続する データベースを作成する テーブルを作成する データをテーブルにロードします テーブルからデータを取得する データベースを作成する前に、環境にすでに存在するデータベースを知ることが重要です。以下のクエリを使用して見つけることができます- クエリ mysql> SHOW DATABASES; 出力 +--------------+ | Data