Рассмотрение должностные инструкции, где "усовершенствованный SQL" является требованием. Я могу записать основные запросы, а также кого-либо, и работал с базами данных MySQL в профессиональной установке, но во что я вошел бы с этими заданиями, если бы я должен был быть нанят? Что такое примеры усовершенствованного SQL и где приезжают я масштаб новичка SQL ведущему устройству SQL?
Я думаю, что лучше подчеркивается при примере. Если вы чувствуете, что вы можете быстро написать следующее заявление 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).
Выберите
Колонны ING ING от таблицы Количество
, ,
, Макс.
/ Мин
Отчетность
, ,
, , , имеющих
Присоединиться
S, ANSI -89 и синтаксис ANSI-92 Union
VS Union All
NULL
Обработка: Coalesce
& NULL DANGLING в
, существует
, а встроенные виды
С помощью
С синтаксисом Синтаксис Syntax: Dizquery Factoring / CTE COMMIT
, ROLLBACK
Обработка ошибок Я бы ожидал:
Тюнинг производительности, создание индексов, хранимых процедур и т. Д.
«Advanced» означает что-то другое для всех. Я бы представил, что этот тип вещи означает что-то другое для каждого плаката.
Проверьте SQL для Smarties . Я думал, что я тоже был довольно хорош в SQL, пока я не прочитал эту книгу ... входит в тонны глубины, говорит о вещах, которые я не видел в другом месте (то есть разница между 3'RD и 4-й нормальной формой, Boyce Codd Normal Форма и т. Д.) ...
Остальная часть списка открытия работы может предоставить контекст, чтобы обеспечить лучшее угадание на том, что «Advanced SQL»
может охватывать.
Я не согласен с комментариями и ответами, указывающими, что понимание присоединения и совокупных запросов являются «продвинутыми» навыками; Многие работодатели рассмотрят это довольно простое, я боюсь. Вот бурное угадание, как то, что «продвинуто» может означать.
Существует «ужасная» много новых вещей в домене RDBMS, в последние несколько лет!
Требование «Усовершенствованное SQL», вероятно, намекает на знания знаний и, возможно, знание нескольких новых концепций , таких как:
При сохранении в курсе Pro (и минусов) новых функций является важной задачей для любого практикующего «Advanced SQL» старые «расширенные основы», вероятно, также считаются частью «продвинутого» :
Примечание. Примечание. Приведенное выше внимание уделяется навыкам, связанным с ролью программирования / ведущей. «Усовершенствованная SQL» также может означать опыт работы с административными ролями (репликация, резервные копии, макета оборудования, управление пользователем ...). Подумайте об этом, серьезный программист должен быть несколько знакомым с такими практиками.
Редактировать : LuckyLIndy опубликовал комментарий, который я нашел довольно проницательным. Он говорит о том, что «продвинутые» могут эффективно иметь другое назначение, чем подразумевая уровень выплаты к эксперту в большинстве категорий, перечисленных выше ...
Я повторяю этот комментарий здесь, чтобы дать ему более видимость.
Я думаю, что многие компании Post Post Advanced SQL, потому что они устали от того, что они надоели от того, кто говорит о том, кто говорит: «Я эксперт SQL», и возникнет проблемы с присоединением 3 столового внешнего присоединения. Я публикую подобные вещи в объявлениях, и мои ожидания - это просто что кандидат не нужно будет постоянно прийти ко мне за помощь в письменном виде SQL. (комментарий от Luckylindy)
Тюнинг производительности, создание индексов, хранимых процедур и т. Д.
«Дополнительно» означает что-то другое для всех. Я бы представил, что этот тип вещи означает что-то другое для каждого плаката.
-121--1003562-Когда вы видите их прописаны в требованиях, они имеют тенденцию включать:
Внутренние и внешние присоединения являются обязательными, но я редко когда-либо вижу, что он упоминается в требованиях. И удивительно, сколько так называемых профессионалов БД не может принять голову вокруг простого внешнего присоединения.
Некоторые функции "Advanced"
Выберите ... имея ...
- хороший запуск. Не многие разработчики, кажется, понимают, как его использовать.
Я полагаю, что подзаимники и поворот будут квалифицироваться, а также несколько объединений, профсоюзов и тому подобное.
В моем предыдущем задании, у нас был технический тест, который всех кандидатов попросили сидеть. 10ish вопросы, занял приблизительно час. Во всей честности, хотя, 90% отказов могли быть отфильтрованы, потому что они не могли записать оператор INNER JOIN. Даже внешнее.
я полагал бы, что предпосылка для любой должностной инструкции, включающей SQL и, оставит хорошо одним, пока с этим не освоили. Оттуда, хотя, говорите с ними - дальнейшая информация о том, что они на самом деле ищут, худший вариант развития событий, будет полезный список вещей учиться как часть вашей профессиональной разработки.