Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Типовые вопросы на собеседование по MS SQL? 
:(
    Опции темы
MadCoder
Дата 1.7.2009, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 24.8.2007
Где: Москва

Репутация: нет
Всего: 2



Цитата(Akina @ 1.7.2009,  17:22)
Цитата(MadCoder @  1.7.2009,  18:14 Найти цитируемый пост)
Какие Вы знаете временные функции?

Порадовало... временнЫе? врЕменные? 
функции работы с датой-временем, наверное?

Во, логика тоже работает! И знаешь по-крайней мере один тип функций! +1
PM WWW ICQ   Вверх
Zloxa
Дата 1.7.2009, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 10
Всего: 161



Цитата(MadCoder @  1.7.2009,  17:14 Найти цитируемый пост)
Чем процедура отличается от функции?    

У меня братишка этот вопрос задал тренеру на курсе по TSQL.
Тренер рассказал какие виды и типы функций бывают, в чем их особенности, но ответить на вопрос одной фарзой не смог smile)


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akina
Дата 1.7.2009, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Цитата(Zloxa @  1.7.2009,  18:35 Найти цитируемый пост)
но ответить на вопрос одной фарзой не смог 

"Первая создаётся директивой CREATE PROCEDURE, вторая соответственно CREATE FUNCTION."
 smile  smile 
Одна фраза...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 1.7.2009, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 10
Всего: 161



Цитата(Akina @  1.7.2009,  17:41 Найти цитируемый пост)
"Первая создаётся директивой CREATE PROCEDURE, вторая соответственно CREATE FUNCTION."

Всетки это ответ не на вопрос ;)
Ты ответил на вопрос "в чем различие конструкций создания процедуры и функции", таки это чуть разные вопросы  smile)


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akina
Дата 1.7.2009, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Ну вообще по этому вопросу, если серьёзно, как я понимаю: функцию можно использовать в запросе, т.к. она возвращает результат, ассоциированный с её именем, в отличие от процедуры, которую можно вызвать только саму по себе, принимая затем из неё именованные результаты.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
MadCoder
Дата 1.7.2009, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 24.8.2007
Где: Москва

Репутация: нет
Всего: 2



На самом деле функция возвращает результат, а процедура нет. Если посмотреть внимательно, вопрос находится в разделе Delphi smile.

Добавлено через 37 секунд
Akina, точно smile.
PM WWW ICQ   Вверх
Akina
Дата 1.7.2009, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



MadCoder, можешь ещё в вопросы по SQL добавить (уж коли) вопрос об отличии WHERE от HAVING, а также попросить сравнить объединения типа FROM A JOIN B ON и типа FROM A, B WHERE - когда какое предпочтительнее или, скажем, неприменимо.

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

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


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
baldina
Дата 1.7.2009, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: нет
Всего: 101



Цитата

На самом деле функция возвращает результат, а процедура нет. Если посмотреть внимательно, вопрос находится в разделе Delphi .

для процедур и функций в других языках (где присутствует такая терминология) точно так же. 
вероятно впервые разделение понятий появилось одновременно с созданием языка высокого уровня - Фортрана (FUNCTION и SUBROUTINE), хотя методологическую основу заложил Н.Вирт при создании Pascal.

есть понятие чистой функции, т.е. функции, не имеющей побочных эффектов, единственный результат ее деятельности передается через возвращаемое значение. т.е. такая функция наиболее близка к обычной математической функции. обычно в функциональных языках функции чистые. в этом смысле можно считать чистой процедуру (хотя так не говорят), не меняющую значение своих аргументов, т.е. работа которой целиком заключается в создании побочного эффекта.
PM MAIL   Вверх
Zloxa
Дата 1.7.2009, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 10
Всего: 161



Цитата(Akina @  1.7.2009,  18:09 Найти цитируемый пост)
FROM A JOIN B ON и типа FROM A, B WHERE - когда какое предпочтительнее или, скажем, неприменимо.

А есть разница?
AFAIK когда то была, сейчас уже давно нет smile)
Цитата(Akina @  1.7.2009,  18:09 Найти цитируемый пост)
без компа на листе бумаги 

У меня как то был случай, когда я на листе не смог изобразить запрос типа выбрать последний курс валюты на дату. С учетом того, что я уже и роспись нормально не могу поставить на бумаге, просьба написать запрос на бумаге выглядит как садизм. ;)) а еще и с учетом того, что запросы я пишу не слева на право, а из глубины во вне. 

Это сообщение отредактировал(а) Zloxa - 1.7.2009, 20:53


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
baldina
Дата 1.7.2009, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: нет
Всего: 101



Цитата

из глубины во вне 
 smile 
PM MAIL   Вверх
Akina
Дата 1.7.2009, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Цитата(Zloxa @  1.7.2009,  21:01 Найти цитируемый пост)
AFAIK когда то была, сейчас уже давно нет 

Считается, что есть несколько типов JOIN и куча вариантов WHERE... хотя надо покопаться в доках по новым версиям СУБД - отличия-то начинаешь читать только воткнувшись носом в проблему...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
baldina
Дата 1.7.2009, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: нет
Всего: 101



по идее разницы в результате быть не должно, если нет left/right. а в производительности? план запроса с where составляется сервером. в основе плана с join лежит их последовательность. может ли сервер менять последовательность, указанную в join?
PM MAIL   Вверх
Zloxa
Дата 1.7.2009, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 10
Всего: 161



Цитата(baldina @  1.7.2009,  20:27 Найти цитируемый пост)
а в производительности? 

Бродил какой-то бородатый миф, мол джойн через where сервер выполняет посредством кросс джойна с фильтрацией.
Возможно миф тянется из истории... на 2000й, парни говорят это отнюдь не так.

Что же касается внешних соединений, то таки да, через пре джойн предикаты (*= и =*, если мне не изменяет память) можно выразить далеко не всякий левый/правй жойн. И, помоему, вообще не возможно сделать full join.
Но вопрос то был не о том ;)

Это сообщение отредактировал(а) Zloxa - 1.7.2009, 21:16


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akina
Дата 1.7.2009, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Вот навскидку: JOIN ON a.id>b.id  даст тот же результат, что и WHERE a.id>b.id  ?  smile 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 1.7.2009, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 10
Всего: 161



Akina, разве нет?
У меня нет MS SQL, но результат должен быть одинаков.. планы тоже.

Добавлено через 1 минуту и 50 секунд
join через where ли, через join ли это join.. просто разная фора записи.


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0663 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.