Я проходил Вопросы, на которые каждый хороший разработчик .NET должен смочь ответить и был высоко впечатлен содержанием и подходом этого вопроса и так в том же духе, я задаю этот вопрос для Разработчика Базы данных/SQL.
Что делают вопросы Вы думаете, что хорошая БАЗА ДАННЫХ/SQL-ПРОГРАММИСТ должна смочь ответить на?
Различные типы присоединений:
См. Джефф Атвуд Визуальное объяснение присоединений
Какой индекс и как он помогает вашей базе данных?
Какие типы данных доступны и когда использовать какие из них?
Вы можете использовать класс TextWricer и создайте все страницы и код, которые вы хотите. Это было бы болью, но она будет работать, хотя я никогда не делал этого раньше, вы можете столкнуться с некоторыми проблемами, поскольку он не будет скомпилирован. Вы можете определенно сделать статические страницы HTML
-121--4460315-Знание не использовать, а почему не использовать:
SELECT *
Вот несколько:
Приведите пример, где предпочтительна денокрарализация.
(Мне нравится этот, потому что люди приходят из колледжа, которые хотят поставить все в 3-й нормальную форму)
Сравните и сопоставите различия между решением SQL / RDBMS и решением NoSQL. Вы не можете претендовать на эксперт в любой технологии, не зная его сильные и слабые стороны по сравнению с его конкурентами.
Какая разница между кластерный индекс и не разбитый Индекс?
Другой вопрос, который я бы спросил, это не для конкретного сервера:
Что такое тупик?
Почему мы должны нанимать вас, когда у нас есть сложное приложение, используя правильно оптимизированные системы кэширования ORM и реализации, такие как memcached ?
Это серьезный вопрос, Они должны быть в состоянии оправдать свое существование. Как любит Джефф Этвуд, чтобы сказать « аппаратное обеспечение дешево, программисты дорогие »
В нашей компании, вместо того, чтобы просить много вопросов SQL, которые могут ответить кому-либо с хорошей памятью, мы создали тест разработчиков SQL. Тест спроектирован, чтобы кандидата собрал твердую схему с нормализацией и соображениями RI и RI, проверки ограничениями и т. Д., А затем иметь возможность создавать некоторые запросы для получения наборов результатов, которые мы ищем. Они создают все это против краткого спецификации дизайна, которую мы даем им. Им разрешено делать это дома и занять столько времени, сколько им нужно (в пределах разума).
Я бы дал плохо написанный запрос и спросить их, как они поступят о настройке производительности.
Я бы спросил о набор теории. Если вы не понимаете, работающие в наборах, вы не можете эффективно запросить реляционную базу данных.
Я бы дал им некоторые примеры курсора и спросить, как они переписывают их, чтобы они сделали их на основе.
Если работа задействовала импорт и экспорт, я бы задать вопросы о SSIS (или других инструментах, участвующих в этом, используемых другими Datbases). Если он задействовал, что написание отчетов, я хотел бы знать, что они понимают агрегаты и группировки (а также Crystal Reports или SSRS или любой экспортирующий инструмент, который вы используете).
Я бы задал разницу в результатах между этими тремя запросами:
select a.field1
, a.field2
, b.field3
from table1 a
join table2 b
on a.id = b.id
where a.field5 = 'test'
and b.field3 = 1
select a.field1
, a.field2
, b.field3
from table1 a
left join table2 b
on a.id = b.id
where a.field5 = 'test'
and b.field3 = 1
select a.field1
, a.field2
, b.field3
from table1 a
left join table2 b
on a.id = b.id and b.field3 = 1
where a.field5 = 'test'
Что такое впрыск SQL и как вы его не мешаете?
Что такое курсор и когда бы вы использовали его (или нет) и почему?
Я поместил этот ответ, потому что Erwin Smout разместил A Ответ , который был настолько неправильно, он подчеркнул, что, вероятно, надо специально охранять его.
Эрвин предложил:
«Почему каждый выбор всегда включает в себя отличное?»
Более подходящий вопрос: если кто-то должен был сделать утверждение, что: «Каждый выбор всегда включает в себя отличное»; Как бы вы прокомментировали претензию?
Если кандидат не может снимать претензию в огне, они либо:
Для записи
Интересный вопрос будет включать в себя реляционного разделения , или как выразить «для всех» отношений, которые потребуют вложенности не существует
пункта.
Вопрос становится страхом из этой ссылки .
Учитывая следующие таблицы, представляющие пилоты, которые могут летать самолеты и самолеты в ангаре:
create table PilotSkills (
pilot_name char(15) not null,
plane_name char(15) not null
)
create table Hangar (
plane_name char(15) not null
)
Выберите имена пилотов, которые могут летать на каждом самолете в ангаре.
Ответ:
select distinct pilot_name
from PilotSkills as ps1
where not exists (
select * from hangar
where not exists (
select * from PilotSkills as ps2 where
ps1.pilot_name = ps2.pilot_name and
ps2.plane_name = hangar.plane_name
)
)
или ...
Выберите все пользователи переполнения стека, которые приняли ответы на вопросы, помеченные с помощью 10 самых популярных языков программирования .
Ответ (возможный) (возможный) (предполагающий View_answers
View and A Target_Language_tags
Таблица с нужными тегами):
select distinct u.user_name
from Users as u
join Accepted_Answers as a1 on u.user_id = a1.user_id
where not exists (
select * from Target_Language_Tags t
where not exists (
select *
from Accepted_Answers as a2
join Questions as q on a2.question_id = q.question_id
join Question_Tags as qt on qt.question_id = q.question_id
where
qt.tag_name = t.tag_name and
a1.user_id = a2.user_id
)
)
Перепечаток Мой ответ здесь , как общие руководящие принципы для тем.
Выбрать
колонны от таблицы Количество
, SUM
, MAX
/ Мин
Отчетность
, , ,
,
, , имеющих промежуточное соединение
Присоединение
S, ANSI-89 и синтаксис ANSI-92 Союз
В.С. Союз Союз All
NULL
Обработка: Coalesce
& NULL DANGLING в
, существует
, И встроенные виды С помощью
Синтаксис Синтаксис Синтаксис: подзаконный факторинг / CTE Commit
, Откат
, обработка ошибок Также следующие вопросы, специфичные платформы (SQL Server):
«Почему каждый выбор всегда включает в себя отличное?»
Приложение используется 24 часа в день. Ваше окно обслуживания / обновления 2 часа каждый месяц, как вы планируете минимизировать нарушение?
Эта область может оказать огромное влияние на производительность и безопасность БД. Получите это неправильно, и вы могли бы в конечном итоге в мире боли.
, потому что всегда есть исключение из правила :)
Почти все упоминается здесь. Я хотел бы поделиться одним вопросом, который меня спросил старший менеджер по базе данных. Я нашел вопрос довольно интересным, и если вы думаете об этом глубоко, он вроде много смысла в этом.
Вопрос был - как бы вы описали базу данных вашему 5-летнему ребенку?
Какие типы баз данных привели вам, как разработчик, больше проблем, чтобы понять и отлаживать? Ожидаемый ответ, ИМХО, опыт работы с проблемами с использованием разных типов даты / Timestamp и Blob .
Когда удобно использовать растровые индексы?
Что Plan объясняет
и насколько интерпретировать результаты, которые вы получаете от нее.