助け合いフォーラム
Oracle Master Silver SQL 2019(1Z0-071)
問題ID : 26666
問題を開く
算術式を指定できる句として正しいものはどれですか(該当するものを全て選択してください)。
正解
SELECT句
WHERE句
GROUP BY句
HAVING句
ORDER BY句
解説
算術式はSELECT句だけではなく、FROM句を除く任意の句で使用できます。
以上より、
・SELECT句
・WHERE句
・GROUP BY句
・HAVING句
・ORDER BY句
が正解となります。
それぞれの句の機能は次の通りです。
・SELECT句 : データベースから取り出すデータを選択します
・FROM句 : データベースのどの表からデータを取り出すかを決定します
・WHERE句 : 条件に従って取り出すデータを制限します
・GROUP BY句 : 取り出すデータをグループ化します
・HAVING句 : 条件に従って取り出すグループを制限します
・ORDER BY句 : 取り出したデータをソートします
WHERE句からORDER BY句は、以降の分野で詳しく扱います。
以上より、
・SELECT句
・WHERE句
・GROUP BY句
・HAVING句
・ORDER BY句
が正解となります。
それぞれの句の機能は次の通りです。
・SELECT句 : データベースから取り出すデータを選択します
・FROM句 : データベースのどの表からデータを取り出すかを決定します
・WHERE句 : 条件に従って取り出すデータを制限します
・GROUP BY句 : 取り出すデータをグループ化します
・HAVING句 : 条件に従って取り出すグループを制限します
・ORDER BY句 : 取り出したデータをソートします
WHERE句からORDER BY句は、以降の分野で詳しく扱います。
参考
SELECT文でデータの検索を行う際、SELECT句には表の列名だけではなく、算術式を指定できます。算術式には列名,定数値(リテラル),算術演算子を記述します。
SQL文で使用できる算術演算子は次の通りです。
算術式で複数の演算子を用いた計算を行う場合は、演算子の優先順位に従って計算が行われます。
演算子の優先順位は次の通りです。
同じ優先順位の演算子が複数使われている場合は、左側の計算から順番に行われます。
例) 10 * 5 + 10 / 2 - 1
1) 10 * 5 を計算 -> 結果は 50
2) 10 / 2 を計算 -> 結果は 5
3) 50 + 5 を計算 -> 結果は 55
4) 55 - 1 を計算 -> 結果は 54
算術式の優先順位を変更したい場合は()括弧を使用します。()括弧を用いることで優先順位が高くなります。
1つ目の例では 10 * 5 + 5 の計算を演算子の優先順位に従って計算しますので、 10 * 5 の計算結果に 5 を加算しますが、2つ目の例では ( 5 + 5 ) を先に計算し、その結果と 左の10 を乗算します。
なお、算術式はSELECT句だけではなく、FROM句を除く任意の句で使用できます。
※ dual表はDUMMYというVARCHAR2型の列に「X」というデータを持つ表です。データベースに接続できるユーザ(CREATE SESSION権限を持つ)なら誰でも使用できます。上記のように計算や関数の値を確認する場合などに使用します。
SQL文で使用できる算術演算子は次の通りです。
算術式で複数の演算子を用いた計算を行う場合は、演算子の優先順位に従って計算が行われます。
演算子の優先順位は次の通りです。
同じ優先順位の演算子が複数使われている場合は、左側の計算から順番に行われます。
例) 10 * 5 + 10 / 2 - 1
1) 10 * 5 を計算 -> 結果は 50
2) 10 / 2 を計算 -> 結果は 5
3) 50 + 5 を計算 -> 結果は 55
4) 55 - 1 を計算 -> 結果は 54
算術式の優先順位を変更したい場合は()括弧を使用します。()括弧を用いることで優先順位が高くなります。
SQLを表示
SELECT 10 * 5 + 5
FROM dual;
FROM dual;
SQLを表示
SELECT 10 * (5 + 5)
FROM dual;
FROM dual;
1つ目の例では 10 * 5 + 5 の計算を演算子の優先順位に従って計算しますので、 10 * 5 の計算結果に 5 を加算しますが、2つ目の例では ( 5 + 5 ) を先に計算し、その結果と 左の10 を乗算します。
なお、算術式はSELECT句だけではなく、FROM句を除く任意の句で使用できます。
※ dual表はDUMMYというVARCHAR2型の列に「X」というデータを持つ表です。データベースに接続できるユーザ(CREATE SESSION権限を持つ)なら誰でも使用できます。上記のように計算や関数の値を確認する場合などに使用します。
GROUP BY句への算術式の使用
c
cent700
投稿日 2023/03/10
GROUP BY句に「算術式」を指定するイメージが理解できません。
列名だけでも「算術式」と呼ぶ、ということでしょうか?
2023/03/12 10:33
「算術式」っていうと難しいですけど、結局は「式(expression)」のことですね。
https://docs.oracle.com/cd/F35743_01/sqlreferencefornosql/group-clause.html
具体例はここの記事を参照いただくと良いかと思います。
https://taityo-diary.hatenablog.jp/entry/2018/06/25/230207
コメント
この投稿に対して返信しませんか?
c cent700
2023/03/12 15:17
ありがとうございます。 2番目の記事が大変参考になりました。