Перш за все, глибоке розуміння приєднань. Не тільки внутрішня, а ліва приєднується. Знайте, що робить перехресне з'єднання та повне зовнішнє з'єднання. Знайте обставини, які могли б змусити вас вибрати певний тип приєднання. Зрозумійте, що вони не взаємозамінні, і що запит, який використовує ліве з'єднання, може повертати інші результати, ніж ті, що використовують внутрішнє з'єднання. (Можна було б подумати, що це буде очевидно, але я прочитав занадто багато питань, коли люди, вирішуючи свою проблему, дещо випадково намагаються різних приєднатися.)
Далі дійсно зрозумійте агрегати та те, як вони працюють. Mysql дозволить вам уникнути, коли ти не робиш групових байдів стандартним чином. Але мати дисципліну повністю визначати групу за допомогою пункту належним чином. Це допоможе вам зрозуміти, що ви робите, і зробить ваші знання більш легкими для передачі в інші бази даних.
Дізнайтеся, що робить випадок справи.
Роблячи складні запити, вчіться працювати шматками. Кожен шматок підтверджуйте, що очікуєте результати. Так, наприклад, припустимо, що вам потрібно написати запит щодо звітності щодо замовлень, повернених за останні 3 місяці, та причину повернення, а також контактну інформацію для замовника. Перший крок - повернення замовлень за останні три місяці. Як тільки ви дізнаєтесь, що у вас є суцільний товар, ви можете додати інформацію про причину повернення. Після того, як у вас з’явиться твердий продукт, ви можете додати клієнта, який його повернув. Після того, як у вас з’явиться тверда речовина, додайте контактну інформацію для цієї людини. На кожному етапі перевіряйте свої результати і дивіться, чи мають вони сенс. У цьому випадку я, мабуть, хочу закінчити лише один запис за повернене замовлення. Якщо на будь-якому проміжному етапі кількість результатів збільшується або зменшується, ви знаєте, що у вас є проблема із запитом. Іноді в будівельних блоках вам потрібно буде побачити додаткові поля лише для того, щоб перевірити правильність інформації. Я викладаю їх в окремий рядок і коментую їх, коли я працюю на наступному кроці (видаляючи їх наприкінці, коли я знаю, що я правий), щоб вони були доступні для перегляду знову, якщо додавання ще однієї зморшки зробило запит смішним. Ви не можете виконати складний запит правильно, не розуміючи, як повинні виглядати ваші результати. Думаючи, що це виглядає нормально, оскільки результати, які повернулися, майже гарантують хорошу частину часу. м справа), тому їх можна легко побачити знову, якщо додавання ще однієї зморшки зробило запит смішним. Ви не можете виконати складний запит правильно, не розуміючи, як повинні виглядати ваші результати. Думаючи, що це виглядає нормально, оскільки результати, які повернулися, майже гарантують хорошу частину часу. м справа), тому їх можна легко побачити знову, якщо додавання ще однієї зморшки зробило запит смішним. Ви не можете виконати складний запит правильно, не розуміючи, як повинні виглядати ваші результати. Думаючи, що це виглядає нормально, оскільки результати, які повернулися, майже гарантують хорошу частину часу.
Ось перелік деяких основних речей, які ви повинні вміти робити в SQL, не замислюючись про це:
- Спочатку виберіть прямий вгору, без приєднань (і без вибору *), але з умовами на вибір
- Ви повинні знати, як поєднувати дві чи більше таблиць та отримувати записи, які є у всіх таблицях
- Ви повинні знати, як поєднувати дві чи більше таблиць та отримувати записи, які є у всіх таблицях, але повертати з таблиці лише один запис із безліччю сторони відносин «один-багато».
- Ви повинні мати змогу отримувати записи в одній таблиці, але не у відповідній таблиці
- Ви повинні мати змогу зібрати дані для звіту
- Ви повинні мати можливість вставити один запис у таблицю
- Ви повинні мати можливість оновити один запис у таблиці
- Ви повинні мати змогу видалити один запис у таблиці
- Ви повинні мати можливість вставити групу записів у таблицю без курсору
- Ви повинні мати можливість оновити групу записів у таблиці без курсору
- Ви повинні мати змогу видалити групу записів у таблиці без курсору
- Ви повинні мати змогу виконувати декілька дій за одну транзакцію та обробляти помилки з помилками
- Ви повинні мати можливість створити об'єднання записів і знати, коли використовувати UNION Vice UNION ALL
- Ви повинні мати можливість змінювати дані для одного поля на основі деяких критеріїв (використовуючи CASE)
Як тільки ви відчуваєте себе комфортно з основними знаннями SQL, ознайомтеся зі структурою вашої бази даних. Я можу писати складні запити проти дуже складних даних, які я підтримую набагато швидше, ніж інші люди, тому що я розумію структуру і не потрібно думати, де зберігаються речі. Якщо ви розумієте структуру таблиці та зв’язки із зовнішніми ключами та де зберігаються значення пошуку та що означають стовпці (не лише їх ім’я, але які дані містяться в них), то ви можете бути експертом у запиті до цієї бази даних. Перше, що я роблю на будь-якій новій роботі - це глибоко зрозуміти структуру db.