6

プロジェクトのバックエンド側に触れる可能性のあるすべての開発者が知っておくべき便利な SQL ステートメントは何ですか?

更新:アルゴリズムと同じように、ソートの問題、シャッフルの問題があり、それらの解決策がいくつかあることがわかっています。この質問は同じことを目指しています)。

たとえば、私が考えることができるものは次のとおりです。

どの学生も登録していないクラスのリストを取得します。(外部結合して、一致が NULL であるかどうかを確認するか、または Classes テーブルから取得して、IN でないすべての ClassID (Registrations テーブルからすべての ClassID を取得するためのサブクエリ) を確認します)

バックエンドのデータに触れる可能性のある、すべての開発者が隠しておくべき SQL ステートメントはありますか?

4

2 に答える 2

7

うーん、作成できるクエリの種類を一般化します。

  1. 最初に、
    結合のないまっすぐな選択 (および選択 * なし)
  2. 2 つ以上のテーブルを組み合わせて、すべてのテーブルにあるレコードを取得する方法を知っておく必要があります。
  3. 2 つ以上のテーブルを組み合わせて、すべてのテーブルにあるレコードを取得する方法を知っている必要がありますが、1 対多の関係の多側を持つテーブルから 1 つのレコードのみを返します。
  4. 関連するテーブルではなく、1 つのテーブルでレコードを取得できるはずです。
  5. レポートのデータを集計できるはずです
  6. テーブルに 1 つのレコードを挿入できるはずです
  7. テーブル内の 1 つのレコードを更新できる必要があります
  8. テーブル内の 1 つのレコードを削除できるはずです
  9. カーソルなしでレコードのグループをテーブルに挿入できるはずです
  10. カーソルなしでテーブル内のレコードのグループを更新できるはずです
  11. カーソルなしでテーブル内のレコードのグループを削除できるはずです
  12. 1 つのトランザクションで複数のアクションを実行し、エラー トラップを処理できる必要があります。
  13. レコードのユニオンを作成し、UNION と UNION ALL をいつ使用するかを知る必要があります。
  14. いくつかの基準に基づいて(CASEを使用して)1つのフィールドのデータを変えることができるはずです
  15. IF ステートメントを記述できる必要があります。

うーん、真っ先に思い浮かぶのは。もちろん、これは初心者の SQL 開発者向けです。これには、私が上級と見なすものは何も含まれていません。

于 2010-04-23T20:01:24.577 に答える
6

開発者は、データベースと SQL の原則を学ぶ必要があります。データベースに格納されているものとデータベースの構造に応じて、必要な SQL ステートメントが変わるため、特定の SQL ステートメントはありません。

更新:更新された質問は興味深いものです。一般的に、SQL ステートメントは非常に単純だと思います。したがって、それらは暗記する価値がありません。それらが複雑である場合、それらは特定の問題に結びついており、暗記する価値はありません。

于 2010-04-23T19:42:26.287 に答える