MySQLSELECTクエリでGROUPBY句のない非グループフィールドを持つグループ関数を使用しないのはなぜですか?
これは、GROUP BY句がないと、MySQLによって返される出力が誤解を招く可能性があるためです。以下の「学生」の表に、それを示すために次の例を示します-
mysql> Select * from Student; +------+---------+---------+-----------+ | Id | Name | Address | Subject | +------+---------+---------+-----------+ | 1 | Gaurav | Delhi | Computers | | 2 | Aarav | Mumbai | History | | 15 | Harshit | Delhi | Commerce | | 20 | Gaurav | Jaipur | Computers | +------+---------+---------+-----------+ 4 rows in set (0.00 sec) mysql> Select count(*), Name from Student; +----------+--------+ | count(*) | name | +----------+--------+ | 4 | Gaurav | +----------+--------+ 1 row in set (0.00 sec)
上記のクエリの結果からわかるように、グループ関数COUNT(*)の出力はテーブル内の行の総数として返されますが、フィールド「Name」の値「Gaurav」は、何に基づいて実行するため、誤解を招く可能性があります。 、列の最初の値であるか、列に複数回格納されている場合、MySQLはそれを返します。
ここで、GROUP BY句を使用してこのクエリを作成すると、結果セットは次のようになります-
mysql> Select count(*), name from student GROUP BY id; +----------+---------+ | count(*) | name | +----------+---------+ | 1 | Gaurav | | 1 | Aarav | | 1 | Harshit | | 1 | Gaurav | +----------+---------+ 4 rows in set (0.00 sec)
上記の結果セットから、GROUPBY句を使用して意味のある出力が得られたことがわかります。
-
MySQLを使用したJavaでのselectクエリにプリペアドステートメントを使用するにはどうすればよいですか?
これにはexecuteQuery()を使用する必要があります。構文は次のとおりです- yourPreparedStatementObject=yourConnectionObject.prepareStatement(yourQueryName); yourresultSetObject=yourPreparedStatementObject.executeQuery(); データベースの「サンプル」にテーブルを作成します。テーブルを作成するためのクエリは次のとおりです- mysql> create table JavaPreparedStatement -> ( -
-
MySQLでSelectクエリを使用して挿入
SELECTクエリを使用した挿入の場合、構文は次のとおりです- insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,...N) select yourValue1,yourValue2,yourValue3,......N;を選択します。 まずテーブルを作成しましょう- mysql> create table DemoTable1603 -> ( -> StudentId int, -> Stud