何よりもまず、結合について完全に理解してください。内部結合と左結合だけではありません。クロス結合の機能と完全な外部結合を理解します。特定の種類の結合を選択する状況を把握してください。それらは互換性がなく、左結合を使用するクエリは、内部結合を使用するクエリとは異なる結果を返す可能性があることを理解してください。(それは自明だと思うかもしれませんが、私は人々が問題を決定する際に、いくぶんランダムに異なる結合を試みるという質問を読みすぎました。)
次に、集計とその仕組みを本当に理解します。Mysqlを使用すると、標準的な方法でグループ化を行わなくても済みます。ただし、group by句を適切に完全に定義する規律があります。これは、あなたが何をしているかを理解するのに役立ち、知識を他のデータベースに簡単に転送できるようにします。
ケースステートメントが何をするかを学びます。
複雑なクエリを実行するときは、まとめて作業することを学びます。各チャンクで、期待する結果が得られていることを確認します。したがって、たとえば、過去3か月以内に返品された注文、返品の理由、および顧客の連絡先に関するレポートクエリを作成する必要があるとします。最初のステップは、過去3か月間に返品された注文を取得することです。あなたがその固体を持っているとわかったら、返品の理由に関する情報を追加できます。その固体が得られたら、それを返した顧客を追加できます。その固体が得られたら、その人の連絡先情報を追加します。各段階で結果を確認し、意味があるかどうかを確認します。この場合、返された注文ごとに1つのレコードだけで終わる可能性があります。中間段階で結果の数が増減する場合、クエリに問題があることがわかります。ビルディングブロックでは、情報が正しいかどうかを確認するためだけに追加のフィールドを表示したい場合があります。これらを別の行に入れて、次のステップで作業中にコメントアウトします(正しいとわかったら最後に削除します)。結果がどのように見えるかを完全に理解しないと、複雑なクエリを正しく実行できません。いくつかの結果が返されたため、見た目は問題ないと思われますが、ほとんどの場合、間違った結果が得られることがほぼ保証されます。m右)そのため、別のリンクルを追加するとクエリがおかしくなった場合、簡単に確認できます。結果がどのように見えるかを完全に理解しないと、複雑なクエリを正しく実行できません。いくつかの結果が返されたため、見た目は問題ないと思われますが、ほとんどの場合、間違った結果が得られることがほぼ保証されます。m右)そのため、別のリンクルを追加するとクエリがおかしくなった場合、簡単に確認できます。結果がどのように見えるかを完全に理解しないと、複雑なクエリを正しく実行できません。いくつかの結果が返されたため、見た目は問題ないと思われますが、ほとんどの場合、間違った結果が得られることがほぼ保証されます。
以下に、SQLで考えなくてもできる基本的なことのリストを示します。
- 最初に、結合なし(および選択*なし)で、選択の条件があるまっすぐな選択
- 2つ以上のテーブルを結合し、すべてのテーブルにあるレコードを取得する方法を知っている必要があります。
- 2つ以上のテーブルを結合し、すべてのテーブルにあるレコードを取得する方法を知っておく必要がありますが、1対多の関係の多面性を持つテーブルからレコードを1つだけ返します。
- 1つのテーブルでレコードを取得できるはずですが、関連するテーブルでは取得できません
- レポートのデータを集約できるはずです
- 1つのレコードをテーブルに挿入できるはずです
- テーブル内の1つのレコードを更新できるはずです
- テーブル内の1つのレコードを削除できるはずです
- カーソルなしでレコードのグループをテーブルに挿入できるはずです
- カーソルなしでテーブル内のレコードのグループを更新できるはずです
- カーソルなしでテーブルのレコードのグループを削除できるはずです
- 1つのトランザクションで複数のアクションを実行し、エラートラップを処理できる必要があります。
- レコードの結合を作成し、UNIONを使用するタイミングを知ることができるはずですUNION ALL
- いくつかの基準に基づいて1つのフィールドのデータを変更できるはずです(CASEを使用)
基本的なSQLの知識に慣れたら、データベース構造を理解してください。構造を理解しており、どこに保存されているかを考える必要がないため、他の人よりもはるかに高速にサポートする非常に複雑なデータベースに対して複雑なクエリを作成できます。テーブル構造と外部キーの関係、ルックアップ値の保存場所と列の意味(名前だけでなく、列に保持されているデータ)を理解している場合、そのデータベースのクエリの専門家になることができます。新しい仕事で最初に行うことは、db構造を完全に理解することです。