Изучение основ языка структурированных запросов T-SQL

Для достижения поставленной цели необходимо решить следующие задачи: создать запросы на выборку из нескольких таблиц на языке SQL заданными критериями отбора; создать запрос на выборку на языке SQL содержащий статические агрегатные функции; создать запрос осуществляющий объединение результатов двух и более запросов в один набор результатов используя команду UNION. В результате выполнения работы студенты должны знать: категории команд SQL; основные команды SQL применяемые для построения запроса; принципы создания запросов SQL...

2014-06-16

34.15 KB

36 чел.


Поделитесь работой в социальных сетях

Если эта работа Вам не подошла внизу страницы есть список похожих работ. Так же Вы можете воспользоваться кнопкой поиск



Изучение основ языка структурированных запросов T-SQL на http://refleader.ru/

1 ОБЩИЕ МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ ЛАБОРАТОРНОЙ РАБОТЫ

 

  1.  Целью лабораторной работы является изучение основ языка структурированных запросов T-SQL. Для достижения поставленной цели необходимо решить следующие задачи:

создать запросы на выборку из нескольких таблиц на языке SQL заданными критериями отбора;

создать запрос на выборку на языке SQL, содержащий статические (агрегатные функции);

создать запрос, осуществляющий объединение результатов двух и более запросов в один набор результатов, используя команду UNION.

1.2.   В результате выполнения работы студенты должны знать:

категории команд SQL;

основные команды SQL, применяемые для построения запроса;

принципы создания запросов SQL различных типов в SQL Server 2000.

1.3. Используемые программно-аппаратные средства: персональный компьютер стандартной конфигурации; операционная система MS Windows 2000/XP; система управления базами данных Microsoft SQL Server 2000 Developer Edition; набор таблиц БД, созданных в процессе выполнения лабораторной работы № 1.

1.4. В процессе выполнения лабораторных работ студент должен:

изучить способы создания простых и сложных запросов;

осуществлять поиск в базах данных по различным критериям.

1.5. Перед выполнением лабораторных работ каждый студент обязан ознакомиться с правилами техники безопасности при работе в помещении с электронно-вычислительной техникой.

1.6. Указания по оформлению отчета

Отчет должен содержать постановку задачи, описание приемов работы с РСУБД SQL Server 2000, результаты выполнения работы, выводы.

1.7. Указания по сдаче зачета преподавателю

Для сдачи зачета необходимо

предъявить отчет;

ответить на контрольные вопросы.

2 ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ ДЛЯ ДОМАШНЕГО ИЗУЧЕНИЯ

2.1 Введение в SQL.

SQL - это язык программирования и запросов к базам данных, он применяется для осуществления доступа к данным, для запросов к реляционным СУБД, для управления базами данных и их обновления. Стандарт SQL утвержден как Американским Национальным Институтом Стандартов (ANSI, American National Standards Institute), так и Международной организацией по стандартизации (ISO, International Organization for Standardization). ANSI - это организация промышленных и деловых групп, разрабатывающая стандарты для торговли и коммуникации в Соединенных Штатах. ANSI также является членом ISO и IEC (Международной электротехнической комиссии, International Electrotechnical Commission). ANSI публикует стандарты США, которые соответствуют международным стандартам. В 1992 году ISO и IEC опубликовали международный стандарт на SQL, который принято называть SQL-92. ANSI опубликовал в Соединенных Штатах соответствующий стандарт, ANSI SQL-92, который иногда называют ANSI SQL. Хотя разные реляционные СУБД применяют несколько различающиеся версии SQL, но большинство из них соответствуют стандарту SQL-92, определенному ANSI.

В SQL Server 2000  применяется диалект Transact SQL (T-SQL). Т-SQL - это усовершенствование стандартного языка программирования SQL. Первоначальный, основной SQL применяется для взаимодействия между приложениями и SQL Server. В T-SQL имеются вес возможности языков DDL и DML стандартного SQL, а кроме этого имеются также расширенные функции, системные хранимые процедуры и конструкции для программирования (такие, как IF and WHILE), обеспечивающие гораздо большую гибкость программирования.

Язык SQL содержит операторы; относящиеся к одному из двух основных языки программирования в составе SQL: DDL и DML. Язык DDL (data definition language, язык определения данных) применяется для определения объектов баз данных (таких как базы данных, таблиц и представлении) и для управления этими объектами. Операторы языка DDL обычно включают в себя команды CREATE, ALTEB и DROP для каждого из объектов, с которым производится работа. DML (data manipulation language, язык манипулирования данными) применяется для манипулирования данными, содержащимися в объектах базы данных, для чего применяются такие операторы, как SELECT, INSERT, UPDATE и DELETE. При помощи этих операторов можно соответственно выбирать строки с данными, вставлять новые строки, изменять имеющиеся и удалять ненужные.

Все ключевые слова SQL можно, в свою очередь, разделить на следующие категории.

•    Команды. Представляют собой глаголы, определяющие действие, которое следует

выполнить. Например, SELECT, CREATE И ALTER.

•    Условия, или квалификаторы (qualifiers). Ограничивают диапазон значений элементов, входящих в запрос, например, WHERE.

•    Модификаторы, или предложения (clauses). Модифицируют выполнение инструкции, например, ORDER BY.

•   Предикаты (predicates). Представляют собой выражения, такие как IN, ALL, ANY, SOME, LIKE и UNIQUE. Предикаты могут возвращать в качестве результата значения TRUE, FALSE и в некоторых случаях NULL (неизвестный результат). Эти три значения являются ключевыми словами SQL.

•    Операторы. Такие операторы, как =, < или >, сравнивают значения и применяются для создания объединений в синтаксисе предложений WHERE или JOIN. Операторы также называют предикатами сравнения.

Статистические функции (также называемые агрегатными). Возвращают одно результирующее     значение,     вычисленное     на    основании     набора    данных например COUNT(), МАХ() и MIN().

•  Функции преобразования типа данных. Изменяют тип данных значения с одного на другой. Наиболее часто используемые функции преобразования — это CAST() и CONVERT() .

•    Другие ключевые слова (или зарезервированные слова), изменяющие действие команд или управляющие курсором (указателем текущей записи в наборе результатов запроса), с помощью которого выбираются отдельные строки запроса. Например, модификатор FOR  XML   [AUTO | RAW | EXPLICIT] языка T-SQL возвращает XML документ или подчиненный XML-документ вместо традиционного набора данных запроса на выборку (SELECT). Модификатор FOR XML не включен в ANSI SQL.

2.2 Специальные символы и знаки пунктуации SQL.

Наряду с операторами сравнения, применяемыми в выражениях языка SQL, его синтаксис предусматривает использование в качестве знаков пунктуации запятых, точек, двоеточий и точек с запятыми. Ниже приведён список используемых в языке T-SQL символов и знаков пунктуации.

•   Запятые используются для разделения компонентов списка параметров. Так, например, перечень имен нескольких полей будет выглядеть следующим образом:

Название, Адрес, Город, Индекс.

•    Квадратные скобки, в которые заключаются имена полей, необходимы только в том случае, когда в имени поля имеются пробелы или другие знаки пунктуации, не разрешенные в ANSI SQL, например,

[Название Компании]. Квадратные скобки могут также применяться для помещения в них имен, которые присваивают в бланке запроса вводным параметрам для функций и сохраненных (хранимых) процедур SQL Server.

•    Точки используются для отделения имен объектов зависимого класса. Например, если в запрос включены поля из нескольких таблиц, точка используется для отделения имен таблиц от имен полей — Клиенты. [Название Компании]. Состоящие из четырех частей имена связанных таблиц в инструкциях FROM используют формат Сервер. БазаДанных. Схема. Таблица.

•    Идентификаторы строки (также называемые разделителями) указывают значения символьных констант. В ANSI SQL требуется заключать значения строковых литералов в одинарные кавычки ('). Для обратной совместимости с SQL Server 7.0 и более ранними версиями язык T-SQL интерпретирует двойные кавычки как квадратные скобки.

•    Символы подстановки. В ANSI SQL символы подстановки % и _ (подчеркивание) используются в инструкции LIKE.

•    Идентификатор даты/времени. ANSI SQL принимает заключенные в одинарные кавычки значения даты в различных символьных форматах. Символ # в ANSI SQL не используется.

•    Идентификаторы : и @ для переменных. ANSI SQL использует двоеточие (:) в качестве префикса для идентификации переменных, принимающих значения параметра. T-SQL использует символ @ для традиционных переменных (включая переменные, принимающие значения параметров) и @@ для переменных, чьи значения предоставляются SQL Server, таких как @@IDENTITY, которая возвращает текущее значение идентификации столбца таблицы.

•    Символ ! (восклицательный знак) используется как синоним NOT в ANSI SQL. В качестве оператора "не равно" в ANSI SQL используется комбинация.

2.3 Создание запроса на выборку на языке SQL в проекте.

Структура запроса:

SELECT     [ALL | DISTINCT]   [TOP n [PERCENT]  ]  список_полей,        

FROM        имена_таблиц

[WHERE    критерий_отбора]

[GROUP BY   группируемые_поля]

[HAVING   условие_для_результата ]

[ORDER BY   столбцы_сортировки   [ASC | DESC]  ]

Данный запрос возвращает  таблицу, содержащую выбранные столбцы (поля) из указанных строк (записей) таблицы-источника. В квадратных скобках указаны необязательные параметры.

Описание назначения всех элементов этой инструкции запроса на выборку.

SELECT. Основная команда, определяющая запрос на выборку. В параметре список_полей указываются поля (столбцы), которые должны быть включены в результирующую таблицу запроса. При указании нескольких имен полей они разделяются запятыми.

Необязательные предикаты ALL и DISTINCT определяют способ отбора строк. При использовании первого из них в таблицу включаются все строки, соответствующие указанным далее условиям. Предикат DISTINCT исключает строки с повторяющимися данными.

Необязательный модификатор ТОР n [PERCENT] ограничивает результирующий набор записей запроса, возвращая только первые n записей или n процентов набора записей, удовлетворяющих запросу. ТОР n PERCENT являются зарезервированными словами T-SQL, а не ANSI SQL. Модификатор ТОР можно также использовать для ускорения вывода в том случае, когда необходимо отобразить только наиболее важные строки результирующего набора. Модификатор ТОР 100 PERCENT, возвращающий все строки, требуется для создания представлений SQL Server, которые вы смогли бы сортировать с помощью предложения ORDER BY.

•   FROM имена_та6лиц. Определяет имена таблиц, из которых запрос должен отобрать данные. Имена таблиц разделяются запятыми. Перед именами полей, представленными в нескольких таблицах, необходимо добавлять имя таблицы.

•   WHERE критерий_от6ора. Определяет условие для отбора записей указанных таблиц.

Компонент WHERE не обязательный, поэтому, если его не добавить, запрос возвратит все строки из таблицы, определенной элементом FROM имена_таблиц.

•   GROUP BY условие_группировки. Предложение GROUP BY применяется после предложения WHERE и означает, что строки набора результатов должны быть сгруппированы в соответствии с данными в колонке группировки. Если в предложении SELECT используется агрегатная функция, то для каждой группы вычисляется и отображается в выводе итоговое агрегатное значение. Агрегатная функция выполняет вычисления и возвращает значение. В предложении GROUP BY в качестве колонок группировки должны быть заданы все колонки из списка выборки (кроме колонок, применяемых для агрегатных функций), в противном случае SQL Server выдаст сообщение об ошибке. Если бы это правило не соблюдалось, результаты нельзя было бы выдать в разумном виде, поскольку колонка, заданная в GROUP BY, должна группировать каждую колонку в списке выборки.

•    HAVING условие_для_результата. Одно или несколько условий, налагаемых на конечный результат, полученный после выполнения группировки, вычисления или применения агрегатной функции. Условие HAVING является необязательным.

•   ORDER BY столбцы_сортировки. Определяет порядок сортировки записей. Так же, как и предложение WHERE, ORDER BY, не является обязательным компонентом инструкции. Используя ключевые слова ASC или DESC, можно определить сортировку по возрастанию и по убыванию соответственно. Если порядок не указан явно, по умолчанию используется сортировка по возрастанию.

Пример:

SELECT     TOP 100 PERCENT авторы.автор, авторы.[год рождения], авторы.[место рождения],             

                  авторы.язык, авторы.[число произведений]

FROM         авторы INNER JOIN книги ON авторы.автор = книги.автор

                    INNER JOIN издательства ON книги.издательство = издательства.издательство

WHERE     (авторы.[год рождения] LIKE '12.%.%') AND (авторы.[число произведений] BETWEEN 1     

                    AND 500)

ORDER BY авторы.автор

Запрос возвратит указанные в SELECT поля из указанных в FROM таблиц с критериями для отбора результатов по дате рождения (12 число) и числу произведений (от 1 до 500), и сортировкой по полю авторы.автор.

 2.3.1 Критерии отбора.

Чтобы ограничить количество строк, выдаваемых в ответ на запрос, можно задать условия поиска и критерии отбора.

операции сравнения:

= Проверяется равенство двух выражений

!= Проверяется неравенство двух выражений

> Проверяется, что первое выражение больше второго

>= Проверяется, что первое выражение больше второго или равно ему

< Проверяется, что первое выражение меньше второго

<= Проверяется, что первое выражение меньше второго или равно ему

Пример:

SELECT     автор, [год рождения]

FROM         авторы

WHERE     автор <> ‘Пушкин А.С.’

Запрос возвратит ФИО  и год рождения всех авторов кроме Пушкина А.С.

логические операции: AND, OR, NOT

другие ключевые слова:

LIKE.   Выражение LIKE шаблон. Применяется для поиска по соответствующему шаблону. Шаблоны являются строковыми выражениями, состоящими из символов и метасимволов. Метасимволы – это символы, имеющие общий смысл при использовании внутри строковых выражений.

Метасимволы:

% - символ процента соответствует строке из нескльких символов (в том числе пустой строке и строке из одного символа);

_    - символ подчёркивания соответствует любому одному символу;

[  ] - метасимвол диапазона соответствует любому одному символу;

[^  ] – метасимвол «не в диапазоне» соответствует любому одному символу, не входящему в диапазон или набор символов. Например, [^ m-p] или [^mnop] соответствует любому из символов, кроме символов m, n, o или p.

Пример:

SELECT     автор, [год рождения],  [место рождения]

FROM         авторы

WHERE     автор LIKE ‘П%’

Запрос возвратит ФИО, год рождения и место рождения авторов, фамилия которых начинается с буквы «П».

Пример:

SELECT     автор, [год рождения],  [место рождения]

FROM         авторы

WHERE     автор LIKE ‘[А-П]%’

Запрос возвратит ФИО, год рождения и место рождения авторов, фамилия которых начинается с буквы от «А» до «П».

Пример:

SELECT     автор, [год рождения],  [место рождения]

FROM         авторы

WHERE     автор NOT LIKE ‘П%’

Запрос возвратит ФИО, год рождения и место рождения авторов, фамилия которых начинается с любой буквы, кроме «П».

BETWEEN. Проверяемое_выражение BETWEEN начальное_значение AND конечное_значение. Применяется всегда в сочетании с ключевым словом AND и задаёт диапазон для поиска.

Пример:

SELECT     автор, [год рождения], [место рождения], [число произведений]

FROM        авторы

WHERE     [число произведений] BETWEEN 1 AND 50

Запрос возвратит ФИО, год рождения, место рождения и число произведений авторов, написавших не более 50 произведений.

IS NULL. Выражение IS NULL. Применяется для поиска строк, содержащих null значения в заданной колонке. Чтобы найти значения не являющиеся null следует использовать конструкцию IS NOT NULL.

Пример:

SELECT     автор, [год рождения], [место рождения]

FROM        авторы

WHERE     [место рождения] IS NOT NULL

Запрос возвратит ФИО, год рождения и место рождения авторов, у которых известно место рождения.

EXISTS. EXISTS подзапрос. Используется для проверки существования строк в выводе подзапроса, указанного после него.

Пример:

SELECT    авторы.автор

FROM       авторы

WHERE     EXISTS (SELECT книги.издательство

      FROM книги

        WHERE книги.издательство='Питер' AND авторы.автор=книги.автор)

Запрос вернёт ФИО авторов, книги которых были выпушены издательством «Питер» .

 2.3.2 Подзапрос.

 Подзапрос - очень мощное средство языка SQL. Он позволяет строить сложные иерархии запросов, многократно выполняемые в процессе построения результирующего набора или выполнения одного из операторов изменения данных (DELETE, INSERT, UPDATE).

Подзапрос позволяет решать следующие задачи:

  •  определять набор строк, добавляемый в таблицу на одно выполнение оператора INSERT;
  •  определять данные, включаемые в представление, создаваемое оператором CREATE VIEW ;
  •  определять значения, модифицируемые оператором UPDATE;
  •  указывать одно или несколько значений во фразах WHERE и HAVING оператора SELECT;
  •  определять во фразе FROM таблицу как результат выполнения подзапроса;
  •  применять коррелированные подзапросы. Подзапрос называется коррелированным, если запрос, содержащийся в предикате, имеет ссылку на значение из таблицы (внешней к данному запросу), которая проверяется посредством данного предиката.

Структура подзапроса:

SELECT     [ALL | DISTINCT]   [TOP n [PERCENT]  ]  список_полей,        

FROM        имена_таблиц

WHERE    поле [= > < IN]  (SELECT     [ALL | DISTINCT]   [TOP n [PERCENT]  ]

                                              список_полей,        

                       FROM        имена_таблиц

                       [WHERE    критерий_отбора])

В круглых скобках обозначен подзапрос. Для установления соответствия между запросом и подзапросом могут применяться операции сравнения (< = >), либо оператор IN. В первом случае оператор подзапрос всегда должен возвращать единственное значение, которое будет проверяться в предикате. Если подзапрос вернет более одного значения, то СУБД выдаст сообщение об ошибке выполнения SQL-оператора. Если результатом подзапроса становится группа строк (это случается всегда, когда условие не гарантирует уникальности значения проверяемого предикатом внутреннего запроса), то следует использовать оператор IN, осуществляющий выбор одного значения из указываемого множества.

Пример:

IN. Проверяемое_выражение IN подзапрос или

     Проверяемое_выражение IN список_значений 

Используется как условие поиска, проверяющее, не соответствует проверяемое выражение какому-либо из значений в подзапросе или в списке значений. Если соответствие найдено, то возвращается значение TRUE. NOT IN возвращает отрицание того, что получилось бы при применении IN, поэтому NOT IN возвратит значение TRUE, если проверяемое выражение не найдено в подзапросе или в списке значений.

 

Пример:

SELECT    авторы.автор, книги.название

FROM       авторы, книги

WHERE     книги.издательство IN (SELECT издательства.издательство

        FROM     издательства

  WHERE DATEPART(year, [дата основания]) < 1900)

Запрос вернёт ФИО авторов и их книги которых были выпущены издательствами, основанными до начала 20 века.

2.4 Использование агрегатных (статических) функций.

Агрегатные функции выполняют вычисления над набором значений и возвращают одно значение. Агрегатные функции могут быть заданы в списке выборки и чаще всего применяются в случаях, когда оператор содержит предложение GROUP BY. Ниже идет перечисление функций.

Структура запроса:

SELECT     статическая_функция (имя_поля) AS заголовок

FROM         имя_таблицы

AVG - возвращает среднее арифметическое для значений выражения; null-значения игнорируются.

COUNT - возвращает количество элементов в выражении (равное количеству строк).

COUNT_BIG - то же самое, что и COUNT, но результат имеет тип данных bigint, a не int.

GROUPING – возвращает специальную дополнительную колонку; применяется, только когда предложение GROUP BY содержит операцию CUBE или ROLLUP.

MAX – возвращает максимальное значение из значений выражения.

MIN – возвращает минимальное значение из значений выражения.

STDEV – возвращает статистическое стандартное отклонение (statistical standard deviation) для всех величин выражения. Эта функция предполагает, что выражения, используемые в расчете, являются образцом всей совокупности данных.

STDEVP – возвращает статистическое стандартное отклонение для всех величин выражения. Эта функция предполагает, что выражения, используемые в расчете, являются всей совокупностью данных.

SUM – возвращает сумму всех значений выражения.

VAR – возвращает статистическое отклонение (statistical variance) для всех значений из выражения. Эта функция предполагает, что выражения, используемые в расчете, являются образцом всей совокупности данных.

VARP – возвращает статистическое отклонение для всех значений из выражения. Эта функция предполагает, что выражения, используемые в расчете, являются всей совокупностью данных.

Функция COUNT применяется специальным образом: она подсчитывает все строки таблицы. Для этого нужно после COUNT поместить символ-звёздочку в скобках.

Пример:

SELECT COUNT(*) AS количество

FROM издательства

Функции AVG, COUNT, MAX, MIN и SUM могут применяться с необязательными ключевыми словами ALL или DISTINCT. Для каждой из этих функций ALL означает, что функция должна применяться ко всем значениям выражения, а DISTINCT означает, что повторяющиеся значения должны участвовать в расчете только по одному разу. По умолчанию применяется опция ALL.

Пример:

SELECT     MAX(рейтинг) - MIN(рейтинг) AS Разница

FROM         издательства

Запрос возвратит разницу между высшим и низшим рейтингами.

Пример:

SELECT     SUM([число произведений]) AS [общее число произведений]

FROM         авторы

Запрос возвратит сумму произведений всех авторов.

2.5 Определение связей между таблицами.

Существуют два способа определения связей между таблицами. Сначала рассмотрим применение команд JOIN.

Внутреннее соединение (inner join) является типом соединений, принятым по умолчанию. Внутреннее соединение задает набор результатов, в который будут включены лишь те строки таблиц, которые соответствуют условию ON, а все несоответствующие строки будут отброшены. Чтобы задать соединение, применяйте ключевое слово JOIN. Для задания условия поиска, на котором основывается соединение, применяется ключевое слово ON.

Структура запроса:

SELECT [ALL | DISTINCT]  список_полей

FROM имя_таблицы1 INNER JOIN имя_таблицы2 ON условие_обьединения

[INNER JOIN имя_таблицы3 ON условие_обьединения]

 [INNER JOIN имя_таблицы4 ON условие_обьединения]

……....

[WHERE    критерий_отбора]

[ORDER BY   столбцы_сортировки   [ASC | DESC]  ]

Полное внешнее соединение (full outer join) задает набор результатов, состоящий как из строк, соответствующих условию ON, так и из строк, не соответствующих условию ON. Для строк, не соответствующих условию ON, значением колонки, несоответствующей условию, станет NULL. Структура запроса схожа с представленным выше, но команда INNER JOIN заменяется на FULL OUTER JOIN.

Левое внешнее соединение (left outer join) возвращает строки, в которых произошло соответствие условию поиска, плюс все строки из таблицы, заданной слева от ключевого слова JOIN. Структура запроса схожа с представленным выше, но команда INNER JOIN заменяется на LEFT OUTER JOIN.

Правое внешнее соединение (right outer join) противоположно левому внешнему соединению: в него войдут строки, соответствующие условию поиска, плюс все строки из таблицы, заданной справа от ключевого слова JOIN. Структура запроса схожа с представленным выше, но команда INNER JOIN заменяется на RIGHT OUTER JOIN.

Перекрестное соединение (cross join) — это произведение двух таблиц, в котором не задано предложение WHERE, т.е. не задано условие объединения. Без предложения WHERE будет возвращаться такой результат: каждая строка из первой таблицы сопоставляется с каждой строкой из второй таблицы, поэтому размер набора результатов будет равен числу строк первой таблицы, умноженному на число строк второй таблицы.

Структура запроса:

SELECT     список_полей      

FROM        таблица1 CROSS JOIN таблица2

Способ 2. Применением команды WHERE.

Структура запроса:

SELECT     [ALL | DISTINCT]  список_полей      

FROM        имена_таблиц

WHERE    (условие_объединения1) AND  (условие_объединения2) AND  (условие_объединения3) …..

Условия объединения должны иметь вид таблица1.поле1 =  таблица2.поле2.

Структура с применением команды WHERE поддерживает только внутреннее соединение (аналогичное INNER JOIN).

2.6 Операция UNION

UNION используется для объединения результатов двух или нескольких запросов в один набор результатов. Применяя UNION, вы должны соблюдать два следующих правила:

•   все запросы должны иметь одинаковое количество колонок;

•   типы данных соответственных колонок из запросов должны быть совместимыми.

Колонки, перечисленные в операторах SELECT, объединенные при помощи UNION, сопоставляются друг с другом следующим образом: первая колонка из первого оператора SELECT будет соответствовать первым колонкам из всех последующих операторов SELECT, вторая колонка будет соответствовать вторым колонками всех последующих операторов SELECT, и т.д. Поэтому во всех операторах SELECT объединенных при помощи UNION, должно быть одинаковое количество колонок, что гарантирует однозначное сопоставление.

Кроме того, соответственные колонки должны иметь совместимые типы данных. Это значит, что соответственные колонки должны иметь либо одинаковые типы данных, либо SQL Server сможет выполнить неявное преобразование одного типа данных в другой.

Структура запроса:

SELECT     [ALL]  список_полей

FROM   имя_таблицы1

[GROUP BY   группируемые_поля]

[HAVING   условие_для_результата ]

UNION SELECT [ALL]  список_полей

FROM   имя_таблицы2

[GROUP BY   группируемые_поля]

[HAVING   условие_для_результата ]

UNION SELECT [ALL]  список_полей

FROM   имя_таблицы3

[GROUP BY   группируемые_поля]

[HAVING   условие_для_результата ]

……………………………………………..

[ORDER BY   столбцы_сортировки   [ASC | DESC]  ]

Единственное ключевое слово, которое можно применять вместе с UNION - это необязательное ключевое слово ALL. Если вы примените его, то в набор результатов будут включены также все повторяющиеся строки (другими словами, в набор результатов будут включены полностью все строки). Если ключевое слово ALL не применяется, то по умолчанию из набора результатов будут исключены все дублирующиеся строки.

ORDER BY можно применять не в каждом операторе SELECT объединения, а только в самом последнем. Благодаря этому ограничению, итоговый набор результатов будет отсортирован только один раз сразу для всех результатов. С другой стороны, вы можете применять GROUP BY и HAVING в отдельных операторах, так как они влияют только на отдельные наборы результатов, а не на итоговый набор результатов.

Пример:

SELECT Издательство, 'GOOD' As [Рейтинг издательства]

FROM Издательства

WHERE Рейтинг > 50

UNION

SELECT Издательство, 'BAD' As [Рейтинг издательства]

FROM Издательства

WHERE Рейтинг < 50

Запрос выведет название издательства и оценку в зависимости от рейтинга – GOOD если рейтинг больше 50, BAD если рейтинг меньше 50.

3 ДОМАШНЕЕ ЗАДАНИЕ

Изучить теоретический материал, подготовиться к выполнению лабораторной работы.

4 МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ ЛАБОРАТОРНОЙ РАБОТЫ

1. Создать запросы на выборку из нескольких таблиц на языке SQL заданными критериями отбора в соответствии с заданием.

2. Создать запрос на выборку на языке SQL, содержащий статические (агрегатные функции) в соответствии с заданием.

5 ВАРИАНТЫ ЗАДАНИЙ

1. Создать БД, содержащую информацию о студентах ВУЗа: ф.и.о. студента, год рождения, факультет, кафедра, группа, номер зачетки, число специальностей на факультете, год основания факультета, число студентов на факультете, декан факультета, название специальности, код специальности, год основания специальности, число групп данной специальности, заведующий кафедрой.

1.1  Получить выборку всех студентов ЕГФ, специальности САПР с годом рождения после 1980.

1.2  Получить выборку специальностей, основанных в период с 1950 и по 1990 г. Указать факультет и кафедру, которым данная специальность принадлежит.

1.3  Получить список студентов, сгруппированный по факультетам. У факультета указать декана, а у кафедры – заведующего.

1.4  Получить выборку специальностей с указанием декана, факультета и кафедры.

1.5 Составить список (одно поле) студентов и работников факультета ЕГФ.

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

2.1  Получить выборку книг с тиражом, превышающим 2000 экземпляров и рейтингом издательства книги выше 50.

2.2  Получить список авторов, публиковавшихся с 1990 по 1997 включительно, но издававшихся не в издательстве «Эксмо».

2.3  Получить список книг, сгруппированных по издательствам и с тиражом, не ниже среднего.

2.4  Получить выборку издательств с указанием адреса, рейтинга и авторов, которые в них публиковались.

2.5 Составить список:

Автор, Язык, Статус. В поле статус указать "Профессинал", если кол-во написанных книг больше 40, "Любитель", если кол-во от 20 до 40 и "Начинающий", если кол-во меньше 20.

3. Создать БД, содержащую информацию о фильмах в фильмотеке: название фильма, жанр, кинокомпания, режиссер, длительность, год основания кинокомпании, страна и численность работающих, рейтинг фильм (10 балльный), год, место рождения и место жительства режиссера, число фильмов режиссера.

3.1  Получить выборку фильмов с рейтингом выше 5 и снимавшихся не в Голливуде.

3.2  Получить выборку режиссеров с количеством отснятых фильмов меньше 15 и  снятых в жанре «Боевик».

3.3  Получить список фильмов, сгруппированных по жанрам и с рейтингом выше среднего.

3.4  Получить выборку фильмов в жанре «Боевик» с указанием режиссера, количеством снятых им фильмов, кинокомпании и датой ее основания, в которой была снята картина.

3.5 Составить список: Название фильма, рейтинг фильма, рейтинг режиссера. Рейтинг режиссера зависит от количества снятых им фильмов и может принимать следующие значения:  Мастер (более 25 фильмов), Любитель (10-25 фильмов), Новичок (менее 10 фильмов). Список отсортировать по рейтингу фильма.

4. Создать БД, содержащую информацию о записях в фонотеке: композиция, исполнитель, альбом, автор текста, продолжительность, страна исполнителя, жанр, количество альбомов, год выпуска альбома, тираж альбома, выпускающая компания, продолжительность и число композиций в альбоме.

4.1  Получить список альбомов, записанных в США и выпущенных тиражом выше 1000 экземпляров.

4.2  Получить список композиций, с указанием исполнителя, страны, альбома, в который данная композиция входит, года выпуска и компании издателя. Продолжительность альбома, на котором присутствует композиция, не должна превышать 50 минут.

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

  1.  Получить выборку исполнителей США с указанием композиции, альбома и автора текста.

4.5 Составить следующий список:

Композиция, Исполнитель, Автор текста. Если поле "Автор текста" является пустым, то при выводе заполнить его значением "Неизвестен".

5. Создать БД, содержащую информацию о компьютерах: наименование, фирма, страна, оборот фирмы, служба поддержки и рейтинг фирмы, стоимость компьютера, модель процессора, объем ОЗУ, тип НЖМД, покупатель компьютера, место жительства и телефон покупателя.

5.1  Сделать выборку компьютеров, проданных в фирме «РЕТ»,  заказанных в ВГТУ и ценной не ниже 50000. Значение типа процессора не должно быть нулевым.

5.2  Сделать выборку компьютеров в ценовом диапазоне от 10000 до 50000 рублей с указанием фирмы-поставщика, ее телефона службы поддержки, покупателя, и его телефона.

5.3  Получить список фирм, сгруппированных по странам и с годовым оборотом выше среднего.

5.4  Получить выборку данных с указанием заказчика, модели заказанного им компьютера, и его характеристик.

5.5 Составить список: "Поставщик" (т.е. Фирма), "Заказчик" (т.е. Имя). Если у поставщика нет заказчика, то в поле "Поставщик" указать "Не назначен". Список отсортировать по поставщикам.

6. Создать БД, содержащую информацию о напитках в супермаркете: название, тип, тара, цена, код страны, крепость, срок хранения, температура хранения, название страны, валюта, курс по отношению к рублю, стоимость перевозки одной тонны.

6.1  Получите выборку всех напитков, произведенных во Франции срок годности которых неограничен, а температура хранения которых не превышает 10°С . Тип напитка не должен быть неопределён.

6.2  Получите выборку стран, стоимость перевозки напитков из которых лежит в пределах от 5000 до 8000 включительно, и укажите напитки, производимые в данной стране. Тип напитка не должен быть неопределён.

6.3  Получите выборку напитков сгруппированных по тарам, и выведите на экран только те напитки с максимальной крепостью.

6.4  Получить выборку названий напитков, их типов, крепости, страны изготовителя и стоимостью перевозки одной тонны напитка из страны.

6.5 Составить список:

Напиток, Страна, Крепость. В поле крепость указать "Сильноалкогольное", если крепость более 30, "среднеалкогольное", если крепость от 10 до 30, "слабоалкогольное", если

крепость панитка менее 10.

7. Создать БД, содержащую информацию о продуктах в магазинах: наименование, цена за 1 кг, дата изготовления, производитель, магазин, адрес, телефон и директор магазина, поставщик, адрес и телефон поставщика, количество обслуживаемых магазинов, репутация.

7.1 Получите выборку продукции, поставляемой фирмой АО «Еда, inc.» с датой изготовления не позднее 10,10,2005г. Цена за кг. не должна быть неопределенна.

7.2 Создайте запрос, результатом которого будет наименование продукции, производимой Мясокомбинатом и наименование которой должно начинаться на «К». Цена за кг. Не должна быть неопределенна.

7.3  Выведите на экран наименования товаров, сгруппированных по дате изготовления, поставляемых АО «Еда, inc.» и цена за кг. на которые ниже среднего значения.

7.4  Получить выборку наименований товаров, их производителем, магазином, директором магазина, поставщиком и его репутацией.

7.5 Составить список:

Наименование товара, Поствщик, Репутация. В поле репутация указать "Высокая", если Репутация больше 70, "Средняя", если Репутация от 40 до 70 и "Низкая", если Репутация ниже 40.

8. Создать БД, содержащую информацию о косметических изделиях: наименование, цена, качество, магазин, фирма, адрес и телефон магазина, номер лицензии, рейтинг, страна и директор фирмы, телефон службы поддержки, рейтинг фирмы.

8.1 Получите выборку продукции с ценой не ниже 85 руб. и укажите магазин, где можно приобрести данную продукцию, и телефон службы поддержки фирмы-изготовителя. Качество продукции не должно быть неопределенно.

8.2 Создайте запрос, результатом которого будет список продукции фирмы Avon, ее телефон службы поддержки, и телефон магазина, в котором данную продукцию можно приобрести. Рейтинг магазина должен лежать в пределах от 20 до 80. Качество продукции не должно быть неопределенно.

8.3  Выведите список товаров, сгруппированных по качеству изготовления и цена которых не превышает среднего значения цен.

8.4  Получить выборку продукции с указанием ее качества, фирмы изготовителя и рейтинга фирмы.

8.5 Составить список:

Наименование товара, Рейтинг фирмы, Рейтинг магазина. В поле Рейтинг фирмы записать "Высокий", если Рейтинг больше 70, "Средний", если Рейтинг от 30 до 70, "Низкий", если Рейтинг меньше 30. В поле Рейтинг магазина записать "Высокий", если Рейтинг больше 70, "Средний", если Рейтинг от 30 до 70, "Низкий", если Рейтинг меньше 30.

9. Создать БД, содержащую информацию об автомобилях на авторынке: модель, цвет, цена, фирма-изготовитель, год выпуска, двигатель, кузов, марка бензина, максимальная скорость, страна, год основания фирмы, телефон службы поддержки, рейтинг.

9.1  Получить выборку автомобилей, произведенных в Германии не позднее 1990 года. Цвет модели не должен быть неопределён.

9.2  Создайте запрос, результатом которого будет список автомобилей, произведенных с 1990 и по 1995 год включительно. Указать также фирму-изготовитель, страну, и телефон службы поддержки. Цвет модели не должен быть неопределён.

9.3   Вывести список моделей автомобилей, сгруппированный по типу кузовов и с рейтингом фирмы-изготовителя не ниже среднего значения рейтинга.

9.4 Получить выборку моделей автомобилей с указанием их года выпуска, мощности двигателя, типа бензина, фирмы изготовителя, года основания фирмы и страны.

9.5 Составить список:

Модель, Фирмы, Рейтинг фирмы. В поле Рейтинг фирмы записать "Высокий", если Рейтинг больше 20, "Средний", если Рейтинг от 11 до 20, "Низкий", если Рейтинг меньше 11.

10. Создать БД, содержащую информацию о лекарственных средствах: название препарата, группа, форма выпуска, состав, способ введения, заболевание, дозировка, длительность приема, средняя длительность течения заболевания, ф.и.о. больного, возраст, вес, рост, дата заболевания, сопутствующие заболевания.

10.1  Получить выборку ФИО больных с сопутствующим заболеванием «простуда» и названием препарата, который прописаны больному. Состав препарата не должен быть неопределён.

10.2  Создать запрос, результатом которого будет список препаратов, принадлежащих группе 1 и название которых начинается на «П». Состав препарата не должен быть неопределён.

10.3  Выведите на экран список  препаратов, сгруппированных по группам и длительность приема которых не превышает среднего значения.

10.4  Получить выборку сопутствующих заболеваний, которым соответствует препарат, принимаемы больным, заболевание и средняя его длительность.

10.5 Составить список:

Заболевание, длительность течения. В поле длительность указать "Долговременное", если длительность течения больше 6 дней, иначе указать "Кратковременное"

6 СПИСОК ЛИТЕРАТУРЫ

1. Гарсиа М., Рединг Дж., Уолен Э., ДеЛюк С. Microsoft SQL Server 2000. Справочник администратора. 2-е изд. : Пер. с англ. – М.: СП ЭКОМ, 2004.

Изучение основ языка структурированных запросов T-SQL на http://refleader.ru/


 

Другие похожие работы, которые могут вас заинтересовать.
6706. Структурированный язык запросов – SQL: история, стандарты, основные операторы языка 12.1 KB
  Структурированный язык запросов SQL основан на реляционном исчислении с переменными кортежами. Язык SQL предназначен для выполнения операций над таблицами создание удаление изменение структуры и над данными таблиц выборка изменение добавление и удаление а также некоторых сопутствующих операций. SQL является непроцедурным языком и не содержит операторов управления организации подпрограмм ввода вывода и т.
3822. Изучение основ работы с 3ds Max 1.41 MB
  Панели инструментов Содержат кнопки для быстрого доступа к наиболее часто используемым командам и операциям. Командные панели. Команды этого меню являются аналогичными инструментам на командной панели Crete. Команды этого меню полностью дублируют инструменты на командной панели Modify.
17677. Изучение основ организации деятельности ТОС и пути ее совершенствования 26.37 KB
  В настоящее время в городах Российской Федерации все большее развитие получает территориальное общественное самоуправление как наиболее массовая и действенная форма участия населения в осуществлении местного самоуправления. Территориальное общественное...
13352. Изучение методических основ бухгалтерского учета ООО «Спектр Плюс» 111.96 KB
  Доходы и расходы при рациональном использовании ресурсов в свою очередь создают определенные гарантии для дальнейшего существования и развития предприятия. Доходы и расходы представляют собой основные элементы финансовой отчетности базовые категории бухгалтерского учета...
12560. Изучение теоретических основ информационных технологий обеспечения управленческой деятельности 1.24 MB
  Поэтому сейчас все фирмы от организаций малого и среднего бизнеса до крупных промышленных комплексов разрабатывают и внедряют автоматизированные информационные системы поддержки своей деятельности. Практическая где на конкретном предприятие показан процесс внедрения и использования системы...
13270. Изучение возможностей использования стихотворений в процессе обучения фонетике немецкого языка 52.02 KB
  Поэзия как средство достижения основных целей обучения иностранному языку. Из данного определения очевидно что процесс обучения – это процесс двусторонний включающий в себя в их единстве обучающую деятельность учителя преподавателя иностранного языка и учебную деятельность изучение языка обучаемого направленную на изучение языка овладение языком. Поэзия может быть использована как образец современной аутентичной разговорно-литературной речи для достижения ведущих целей обучения и для развития творческих способностей учащихся....
20838. Изучение истории возникновения программирования и основных принципов и подходов при создании языка программирования 705.86 KB
  Для достижения поставленной цели необходимо решить следующие задачи: Проанализировать информационные источники по технологиям программирования; Рассмотреть историю развития технологий программирования; Выявить этапы развития технологий программирования. Создать базу данных для хранения информации о сотрудниках. Язык программирования – формализованный язык для описания алгоритма решения задачи на компьютере. Для автоматизации программирования разрабатывался для каждой ЭВМ свой автокод или Ассемблер.
17707. Изучение объектно-ориентированного языка программирования Java и создание программного кода на языке Java 2.9 MB
  Современные приложения должны быть безопасны, высокопроизводительны, работать в распределенной среде, быть нейтральны к архитектуре. Все эти факторы привели к необходимости нового взгляда на сам процесс создания и распределения приложений на множестве машин различной архитектуры
9102. СУБД MS Access. Создание запросов 811.23 KB
  При выполнении обычного запроса запроса на выборку результаты являются динамическим набором данных. При создании макета запроса т. При разработке конкретного запроса допускается любое сочетание базовых операций. Создание запроса на выборку.
19872. Анализ существующей системы мониторинга запросов потребителей в сфере социальных сетей 1.42 MB
  Разработка модели мониторинга запросов потребителей для ВКонтакте. Социальная сеть платформа онлайн-сервис или веб-сайт предназначенные для построения отражения и организации социальных взаимоотношений визуализацией которых являются социальные графы. Блоги стали значимым инструментом коммуникации и освещения актуальных событий для политических партий и общественных движений. Для устранения этих и многих других проблем и вводится Service Desk.
© "REFLEADER" http://refleader.ru/
Все права на сайт и размещенные работы
защищены законом об авторском праве.