Grokking SQL несколько отличается от grokking большинства языков программирования, поскольку вам необходимо получить представление о заданных операциях. Сказав, что на самом деле это не более сложный подход к пониманию, чем любая из основных парадигм кодирования - например, переход от процедурного кода к oops, например (и для того, что я видел до сих пор проще, чем функциональное программирование :-))
Знак того, кто не полностью понял SQL, - это использование процедур и т. П., Которые работают путем циклирования записей, когда заданные операции будут проще и быстрее. Один имеет тенденцию сталкиваться с этим довольно много. OTOH Я считаю, что хороший знак - это правильное использование предложений UNION и HAVING - как немного за пределами заданий для начинающих. Я видел код, написанный опытными программистами, который плохо понимает SQL и наоборот.
Хорошее упражнение для начинающих и одно, если первые моменты «ага» для меня были, когда я понял отношения между крест-соединением и ограниченным соединением. Я думаю, что это основное понятие на самом деле легче понять старый синтаксис SQL, так, например, мы пересекаем присоединиться таблицы А и
выберите * от а, б
мы получаем декартово произведение а и Ь. Ввод в условие соединения
выберите * от а, Ь, где A.x = b.x
Может быть концептуально рассматривать как обработку декартово произведение затем фильтрование его на где условия. Ослепительно очевидно, что вы можете сказать (хотя удивительно, что многие люди, впервые приходящие на SQL, не понимают, что такое декартовский продукт, что делает это упражнение оправданным для этой концепции), но это полезный ход мысли, который когда-то понимал, понимает такие вещи, как самообучение и сложные конструкции с несколькими столами, немного легче обвести голову.
+1 Согласовано .... изменение мышления в мышления в наборах всегда кажется самой крутой частью кривой обучения для SQL noobs. – Kev 2008-11-06 03:59:49
И возможность манипулировать наборами в голове. Один набор результатов является дополнением ко всем остальным результатам. Интересно, насколько хорошо знают программисты из SQL-программистов? http://en.wikipedia.org/wiki/Set_theory#Basic_concepts – 2008-11-08 06:40:35