MySQLサブクエリに関連する派生テーブルの概念は何ですか?
実際、MySQLサブクエリがFROM句で開始すると、生成された結果セットは派生テーブルと呼ばれます。派生テーブルを生成するこのような種類のサブクエリは、マテリアライズドサブクエリと呼ばれます。 「車」テーブルのデータを使用する次の例を使用すると、理解できます-
mysql> Select * from Cars; +------+--------------+---------+ | ID | Name | Price | +------+--------------+---------+ | 1 | Nexa | 750000 | | 2 | Maruti Swift | 450000 | | 3 | BMW | 4450000 | | 4 | VOLVO | 2250000 | | 5 | Alto | 250000 | | 6 | Skoda | 1250000 | | 7 | Toyota | 2400000 | | 8 | Ford | 1100000 | +------+--------------+---------+ 8 rows in set (0.02 sec)
ここで、次のクエリは派生テーブルを生成します-
mysql> Select AVG(P) FROM(SELECT Name, SUM(Price) P FROM cars GROUP BY Name)AS totals; +--------------+ | AVG(P) | +--------------+ | 1612500.0000 | +--------------+ 1 row in set (0.76 sec)
上記の表は、各車の合計価格を返し、外側のクエリは平均を返します。
すべての派生テーブルのエイリアスを提供する必要があります。この場合、派生テーブルに合計のエイリアスを指定しました。
サブクエリのみを実行すると、派生テーブルが表示されます-
mysql> SELECT Name, SUM(Price) P FROM cars GROUP BY Name ; +--------------+---------+ | Name | P | +--------------+---------+ | Alto | 250000 | | BMW | 4450000 | | Ford | 1100000 | | Maruti Swift | 450000 | | Nexa | 750000 | | Skoda | 1250000 | | Toyota | 2400000 | | VOLVO | 2250000 | +--------------+---------+ 8 rows in set (0.03 sec)
-
Javaを使用してMySQLテーブルの列数をカウントする
これには、ResultSetMetaDataを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable -> ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentFirstName varchar(20), -> StudentLastName varchar(20) -> ); Query OK, 0 r
-
このクエリのMySQL構文エラーは何ですか–予約済みキーワードを使用してテーブルを作成しますか?
MySQLで予約されたキーワードである「groups」という名前のテーブルを作成しようとしたとします。groupsはMySQLで予約されたキーワードであるため、「groups」は使用できません。 「groups」という名前のテーブルの作成中に次のエラーが発生しました- mysql> create table groups −> ( −> id int, −> name varchar(40) −> ); ERROR 1064 (42000): You have an error in your SQL syntax