Главная » Просмотр файлов » Программирование баз данных MS SQL Server

Программирование баз данных MS SQL Server (1084479), страница 30

Файл №1084479 Программирование баз данных MS SQL Server (Программирование баз данных MS SQL Server) 30 страницаПрограммирование баз данных MS SQL Server (1084479) страница 302018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 30)

А что касается того, что приведенный выше оператор возвращает все столбцьс из обеих таблиц, то такой результат вполне соответствует ожиданиям. В операторе выборки использовался подстановочный символ *, который, как уже было сказано, обеспечивает получение данных из всех столбцов. Однако, как уже отмечалось, применение подстановочного символа * в операторах соединения не рекомендуется.

Операторы, имеющие подобный формат, являются краткими и удобными, но вместе с тем обладают существенными недостатками, поскольку их применение может повлечь за собой возникновение ошибок и способствовать снижению производительности. Одна из обогнован ных Рекоменданий, которую смдует пРи нять на вооРу жег сие с самого начала изучения гфогугоммиРования на языке 5~1., состоит в том, стобы осуизествлять выборку только необходимой инфоРмации и дт1ствипгельно использовать в прогузомме данные, полученные в Резульпиоое выборки. Эта Рекомендация основана на том, что для передачи любых дополниомльных данных строки или стол~~а требуепсл дополнительная пропускная способность сети„а также чаше всего дополнительнал обработка запроса в СУБД 5~А 5елгег.

В конечном итоге обнаруживается, что выборка ненужной информаиии отфикшпельно вли- 126 Глава 4 яет на производительность (заботы не только того пользователя, казна(зый в наставший момент ?зоботает с тфоеРоммой, но и всех д)зуеих пользователей системы, а также пользователей сети, в которой находится СУБД ЯОз Яезиег Указьзвайте в оно(зато)зе выборки только те свнмйвьь данные из кото)зых вы собироевмсь использовать, и н)поменяйте насвизлько оераничительные консофуккии ГНЕВЕ, насколько это возможно.

Если вам обязательно требуется применять подстановочный символ *, то при этом необходимо ограничиваться только теми таблицами, из которых должны быть получены данные всех столбцов. В таком случае использование подстановочного символа * будет вполне оправданным, поскольку никто не отрицает возможности выборки с его помощью данных из отдельных таблиц. Например, если бы требовалась вся информация о товарах, а из таблицы с данными о поставщиках нужно было получить только название компании поставщика, то можно было бы модифицировать приведенный выше запрос следующим образом: ЯЕЬЕСт Ргоапссв.*, Соирвпуквие РВОМ Ргоапссз 1ММЕВ 101М Япрр11егз ОМ Ргоапссв.эпрр11ег1О = Япрр11егз.эпрр11ег1О Прокрутка результатов этого запроса на экране слева направо показывает, что основная часть информации о поставщиках теперь исключена.

Безусловно, остался также только один экземпляр столбца Яцрр11ег1О. В конечном итоге в полученный результирующий набор вошли все столбцы из таблицы Ргоопсгз (поскольку подстановочный символ * был указан только для этой таблицы, а единственный экземпляр столбца Япрр11ег1О поступил из этой части списка выборки); с другой стороны, присутствует отдельный столбец с именем Сотрапунате (который берется из таблицы Япрр11егз). Теперь еще раз попытаемся выполнить тот же запрос, внеся в него только одно небольшое изменение: ЯЕЬЕСТ Ргоапссв.*, Япрр11ег1О РВОМ Ргоапссэ 1МНЕВ ЯО1Н Я рр11 в Ом Р апсгв.япррайег1О = япрр11егв.япррдйеггв Но на сей раз возникла проблема — появилось следующее сообщение об ошибке: Мзд 209, ьеое1 16, Ясвсе 1, Ь1пе 1 РлЬ1дпопв со1пвп пате 'Япрр11ег1О'.

Почему применение в запросе столбца Сотрапунате рассматривается как допустимое, а столбца Япрр11ег1Π— нет? Именно по той причине, которая указана в сообщении СУБД зОЬ Яегоег, — применяемое имя столбца является неоднозначным. Столбец Сотрапуиате имеется только в таблице Япрр11егз, а столбец Япрр11ег1О присутствует в обеих таблицах, поэтому СУБД оОЬ Яегуег не может определить, какой именно столбец нам требуется. Во всех вариантах запросов, применявшихся до сих пор для получения данных Япрр11ег1О, задача идентификации этого столбца бьиа разрешимой.

Иными словами, СУБД ЯЯЬ Яегуег получала указания, позволяющие определить, из какой таблицы должны быть взяты данные этого столбца. В первом запросе (в котором использовался простой подстановочный символ *) СУБД ЯОЬ Яегоег передавалось задание возвратить всю доступную информацию; в состав этой информации должны были войти оба столбца Япрр11ег1О, поэтому определение того, к какой таблице относят- Соединения 127 ся имена столбцов, не требовалось. Во втором примере (в котором было указано, что действие подстановочного символа * распространяется только на таблицу Ргобисгз) снова не было дано каких-либо конкретных указаний об использовании того или иного столбца Яирр11ег1Р.

Вместо этого была предусмотрена выборка данных всех столбцов из таблицы Ргоепсся, причем столбец Бирр11ег10 просто оказался одним из столбцов, вошедших в этот список. А задача определения того, к чему относится столбец Сотрапукаме, оказалась легко разрешимой, поскольку в двух таблицах есть только один столбец СотрапуМане, поэтому именно он нам и требуется. Таким образом, если необходимо сослаться на такой столбец, что в результатах соединения с помощью конструкции дО1И должно появиться несколько столбцов с одинаковыми именами, то требуется полностью уточнить имя столбца. Для этого может применяться один из двух описанных ниже способов.

С1 Указать имя таблицы, в которой находится требуемый столбец, затем поставить точку и указать имя столбца (например, таЬ1е. СО1шппнаае). П Обозначить таблицу псевдонимом и указать этот псевдоним, затем поставить точку и указать имя столбца (например, й11ая. СО1пмпнаме). Задача полного уточнения имен является несложной; пример того, как она решает ся, мы уже видели применительно к уточненному подстановочному символу *, однако еще раз проверим приведенный выше запрос, относящийся к столбцу Яорр11ег10, но с полностью уточненным именем столбца: ЯЕЬЕст Ргояэссз.*, я рртьегз.язрртьегто РВОМ Ргобиссз 1ММЕК готн Язрр11егз ОН Ргояассз.яэрр11ег1О = БэррУЕегэ.яарр11ег1О После этого возобновляется нормальная работа оператора выборки и в крайней правой части результирующего набора появляются данные столбца Яирр11ег1О из таблицы Бирр11егэ.

С другой стороны, способ, в котором предусматривается создание псевдонима для таблицы, лишь ненамного сложнее, но позволяет добиться того, чтобы формулировка запроса стала более лаконичной, а его удобство для чтения повысилось. Этот способ реализуется почти точно так же, как и способ применения псевдонима для столбца в простых операторах БЕЗВЕСТ, которые рассматривались в предыдущей главе. При этом достаточно лишь ввести сразу вслед за именем таблицы тот псевдоним, который должен использоваться для ссылок на эту таблицу.

Следует отметить, что, как и при указании псевдонимов столбцов, можно использовать ключевое слово йя (но по какой-то странной причине это ключевое слово не нашло широкого распространения на практике): ЯЕЬЕСТ р.*, з.яирр11егтв БРОМ Ргоеиссз Р 1ММЕЯ ЮО1М Яирр11егз з ОМ Р.Бирр11ег1О = з.яирр11ег1О После вызова этого кода на выполнение можно обнаружить, что полученные результаты полностью совпадают с теми результатами, которые были сформированы в предыдущем запросе. Следует отметить, что псевдонимы применяются по принципу "все или ничего".

После принятия решения об использовании псевдонима для какой-то таблицы этот 128 Глава 4 псевдоним должен быть подставлен вместо имени таблицы во всех частях запроса. С другой стороны, для одних таблиц могут быть заданы псевдонимы, а для других— нет, но в таком случае код теряет единообразие. В этом можно убедиться, ознакомившись со следующим запросом: ЯЕЬЕСт р.*, Япрраье .Ясрр11 ЬО РЕОИ Ртсбпстя р 1ННЕЕ 001Н Япррьбетя я ОН р.зпрр11ет10 = я.эсрраьетЬО На первый взгляд может показаться, что этот запрос должен быть выполнен успешно, но он приводит к возникновению следующей ошибки: Ияс 4104, Ьече1 16, Ятате 1, Ьтпе 1 Тпе нв1тт-ратт 1бепт1т1ет "Яирр11етя.зирр11ет10" соп1б пот Ье Ьоппб.

Еще раз отметим, что ситуация, в которой для одних таблиц предусмотрены псевдонимы, а для других — нет, является допустимой, но после принятия решения об использовании псевдонима для некоторой таблицы необходимо неизменно придерживаться выбранного обозначения. Еще раз вернемся к тем примерам, которые рассматривались в начале данной главы; в них заслуживает внимания еще одна особенность, которая состоит в том, что в первую очередь происходит возврат столбцов из первой таблицы, указанной в операторе с конструкцией д0114.

Характеристики

Тип файла
PDF-файл
Размер
39,07 Mb
Тип материала
Предмет
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее