Что такое “Усовершенствованный” SQL?

Рассмотрение должностные инструкции, где "усовершенствованный SQL" является требованием. Я могу записать основные запросы, а также кого-либо, и работал с базами данных MySQL в профессиональной установке, но во что я вошел бы с этими заданиями, если бы я должен был быть нанят? Что такое примеры усовершенствованного SQL и где приезжают я масштаб новичка SQL ведущему устройству SQL?

61
задан 2 revs, 2 users 100% 8 July 2010 в 23:29
поделиться

11 ответов

Я думаю, что лучше подчеркивается при примере. Если вы чувствуете, что вы можете быстро написать следующее заявление SQL с небольшим количеством / без эталонного материала, то я думаю, что вы, вероятно, отвечаете с их расширенным требованием SQL:

DECLARE @date DATETIME
SELECT @date = '10/31/09'

SELECT
      t1.EmpName,
      t1.Region,
      t1.TourStartDate,
      t1.TourEndDate,
      t1.FOrdDate,
      FOrdType  = MAX(CASE WHEN o.OrderDate = t1.FOrdDate THEN o.OrderType  ELSE NULL END),
      FOrdTotal = MAX(CASE WHEN o.OrderDate = t1.FOrdDate THEN o.OrderTotal ELSE NULL END),
      t1.LOrdDate,
      LOrdType  = MAX(CASE WHEN o.OrderDate = t1.LOrdDate THEN o.OrderType  ELSE NULL END),
      LOrdTotal = MAX(CASE WHEN o.OrderDate = t1.LOrdDate THEN o.OrderTotal ELSE NULL END)
  FROM 
      (--Derived table t1 returns the tourdates, and the order dates
      SELECT
            e.EmpId,
            e.EmpName,
            et.Region,
            et.TourStartDate,
            et.TourEndDate,
            FOrdDate = MIN(o.OrderDate),
            LOrdDate = MAX(o.OrderDate)
        FROM #Employees e INNER JOIN #EmpTours et
          ON e.EmpId = et.EmpId INNER JOIN #Orders o
          ON e.EmpId = o.EmpId
       WHERE et.TourStartDate <= @date
         AND (et.TourEndDate > = @date OR et.TourEndDate IS NULL)
         AND o.OrderDate BETWEEN et.TourStartDate AND @date
       GROUP BY e.EmpId,e.EmpName,et.Region,et.TourStartDate,et.TourEndDate
      ) t1 INNER JOIN #Orders o
    ON t1.EmpId = o.EmpId
   AND (t1.FOrdDate = o.OrderDate OR t1.LOrdDate = o.OrderDate)
 GROUP BY t1.EmpName,t1.Region,t1.TourStartDate,t1.TourEndDate,t1.FOrdDate,t1.LOrdDate

(источник запроса)

и, честно говоря, это Относительно простой запрос - просто некоторые внутренние соединения и подзапрос, а также несколько распространенных ключевых слов (MAX, MIN, CASE).

15
ответ дан 24 November 2019 в 17:00
поделиться

Основы


  1. Выберите Колонны ING ING от таблицы
  2. Агрегаты Часть 1: Количество , , , Макс. / Мин
  3. Агрегаты Часть 2: Отчетность , , , , , имеющих

Промежуточное соединение


  1. Присоединиться S, ANSI -89 и синтаксис ANSI-92
  2. Union VS Union All
  3. NULL Обработка: Coalesce & NULL DANGLING
  4. подзапросы: в , существует , а встроенные виды
  5. подзапровии: коррелированные
  6. С помощью С синтаксисом Синтаксис Syntax: Dizquery Factoring / CTE
  7. Виды

Расширенные темы


  • Функции, хранимые процедуры, Пакеты
  • Поворотные данные: Сейф и синтаксис винтовки
  • Иерархические запросы
  • Курсоры: неявный и явный
  • Триггеры
  • Динамические SQL
  • Материализированные виды
  • Оптимизация запросов: Индексы
  • Оптимизация запросов : Объясните планы
  • Оптимизация запросов: профилирование
  • Моделирование данных: нормальные формы, 1 OUTH 3
  • Моделирование данных: первичные и зарубежные ключевые ключи
  • Моделирование данных: ограничения таблиц
  • Моделирование данных: ссылка / законодательные таблицы
  • Полный текст Поиск
  • XML
  • Уровни изоляции
  • Диаграммы (ERDs), логические и физические
  • Операции: COMMIT , ROLLBACK Обработка ошибок
117
ответ дан 24 November 2019 в 17:00
поделиться

Я бы ожидал:

  • Сохраняемая процедура создания и использования
  • соединяется (внутреннее и внешние) и как правильно использовать группу
  • Оценка / настройки производительности
  • Знание эффективных (и неэффективных) способов Делать вещи в запросах (понимание того, как определенные вещи могут повлиять на производительность, например, использование функций в том, где пункты)
  • динамические SQL и знания курсоров (и IMO несколько раз они должны использоваться)
  • понимание дизайна схемы, индексации, И ссылочная целостность
10
ответ дан 24 November 2019 в 17:00
поделиться

Тюнинг производительности, создание индексов, хранимых процедур и т. Д.

«Advanced» означает что-то другое для всех. Я бы представил, что этот тип вещи означает что-то другое для каждого плаката.

1
ответ дан 24 November 2019 в 17:00
поделиться

Проверьте SQL для Smarties . Я думал, что я тоже был довольно хорош в SQL, пока я не прочитал эту книгу ... входит в тонны глубины, говорит о вещах, которые я не видел в другом месте (то есть разница между 3'RD и 4-й нормальной формой, Boyce Codd Normal Форма и т. Д.) ...

10
ответ дан 24 November 2019 в 17:00
поделиться

Остальная часть списка открытия работы может предоставить контекст, чтобы обеспечить лучшее угадание на том, что «Advanced SQL» может охватывать.

Я не согласен с комментариями и ответами, указывающими, что понимание присоединения и совокупных запросов являются «продвинутыми» навыками; Многие работодатели рассмотрят это довольно простое, я боюсь. Вот бурное угадание, как то, что «продвинуто» может означать.

Существует «ужасная» много новых вещей в домене RDBMS, в последние несколько лет!

Требование «Усовершенствованное SQL», вероятно, намекает на знания знаний и, возможно, знание нескольких новых концепций , таких как:

  • CTES (общие выражения таблицы)
  • UDFS (пользовательские функции)
  • ​​Поисковые расширения / интеграция поисков FullText
  • Настройка производительности с новыми схемами раздела, отфильтрованные индексы, редкие столбцы ...)
  • Новые типы данных (EX: GIS / Spatial или иерархический)
  • XML-поддержка / интеграция
  • ] LINQ
  • И еще несколько ... (BTW вышеуказанный список несколько MSSQL-ориентации, но подобная эволюция наблюдается в большинстве других платформ СУБД).

При сохранении в курсе Pro (и минусов) новых функций является важной задачей для любого практикующего «Advanced SQL» старые «расширенные основы», вероятно, также считаются частью «продвинутого» :

  • Триггеры и хранимые процедуры в большинстве
  • курсоров (когда использовать, как избежать ...)
  • Окончательный опыт: определение таблиц, что к индексированию, тип индексов
  • Тюминология производительности General
  • Оптимизация запросов (планы по чтению запросов, зная, что внутреннее медленное и т. Д.)
  • Процедурный SQL
  • ...

Примечание. Примечание. Приведенное выше внимание уделяется навыкам, связанным с ролью программирования / ведущей. «Усовершенствованная SQL» также может означать опыт работы с административными ролями (репликация, резервные копии, макета оборудования, управление пользователем ...). Подумайте об этом, серьезный программист должен быть несколько знакомым с такими практиками.

Редактировать : LuckyLIndy опубликовал комментарий, который я нашел довольно проницательным. Он говорит о том, что «продвинутые» могут эффективно иметь другое назначение, чем подразумевая уровень выплаты к эксперту в большинстве категорий, перечисленных выше ...
Я повторяю этот комментарий здесь, чтобы дать ему более видимость.

Я думаю, что многие компании Post Post Advanced SQL, потому что они устали от того, что они надоели от того, кто говорит о том, кто говорит: «Я эксперт SQL», и возникнет проблемы с присоединением 3 столового внешнего присоединения. Я публикую подобные вещи в объявлениях, и мои ожидания - это просто что кандидат не нужно будет постоянно прийти ко мне за помощь в письменном виде SQL. (комментарий от Luckylindy)

26
ответ дан 24 November 2019 в 17:00
поделиться

Тюнинг производительности, создание индексов, хранимых процедур и т. Д.

«Дополнительно» означает что-то другое для всех. Я бы представил, что этот тип вещи означает что-то другое для каждого плаката.

-121--1003562-

Когда вы видите их прописаны в требованиях, они имеют тенденцию включать:

  • просмотров
  • хранимые процедуры
  • Указанные пользовательские функции
  • Триггеры
  • Иногда курсоры

Внутренние и внешние присоединения являются обязательными, но я редко когда-либо вижу, что он упоминается в требованиях. И удивительно, сколько так называемых профессионалов БД не может принять голову вокруг простого внешнего присоединения.

1
ответ дан 24 November 2019 в 17:00
поделиться

Некоторые функции "Advanced"

  • рекурсивные запросы
  • функции работы с окнами/рейтинга
  • центр и нецентр
  • исполнение, настраивающееся
3
ответ дан 24 November 2019 в 17:00
поделиться

Выберите ... имея ... - хороший запуск. Не многие разработчики, кажется, понимают, как его использовать.

1
ответ дан 24 November 2019 в 17:00
поделиться

Я полагаю, что подзаимники и поворот будут квалифицироваться, а также несколько объединений, профсоюзов и тому подобное.

1
ответ дан 24 November 2019 в 17:00
поделиться

В моем предыдущем задании, у нас был технический тест, который всех кандидатов попросили сидеть. 10ish вопросы, занял приблизительно час. Во всей честности, хотя, 90% отказов могли быть отфильтрованы, потому что они не могли записать оператор INNER JOIN. Даже внешнее.

я полагал бы, что предпосылка для любой должностной инструкции, включающей SQL и, оставит хорошо одним, пока с этим не освоили. Оттуда, хотя, говорите с ними - дальнейшая информация о том, что они на самом деле ищут, худший вариант развития событий, будет полезный список вещей учиться как часть вашей профессиональной разработки.

1
ответ дан 24 November 2019 в 17:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: