Студопедия — Гайдамакин Н. А. 9 страница
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Гайдамакин Н. А. 9 страница






Запросы на выборку классифицируются по двум критери­ям — по формированию условий выборки и по схеме отбора данных.

По формированию условий выборки запросы можно под­разделить на три группы:

• запросы со статическими (неизменяемыми) условиями отбора;

• запросы с параметрами;

• запросы с подчиненными запросами.

В запросах первого вида условия выборки данных опреде­ляются при формировании самого запроса и являются неизмен­ными при всех последующих выполнениях запроса. В запросы с параметрами вставляются специальные средства для диало­гового задания пользователем конкретных параметров в усло­виях отбора в момент исполнения запроса. Таким образом, при запуске на исполнение запроса с параметрами пользователь может варьировать и уточнять условия выборки данных. В зап­росах третьей группы условия отбора данных определяются по результатам исполнения вставленной в тело внешнего запроса внутренней инструкции SELECT.

По схеме отбора данных запросы на выборку подразделя­ются также на три группы:

• запросы на выборку данных из одной таблицы;

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

• запросы на объединение данных.

4.3.2.1.1. Запросы на выборку данных из одной таблицы

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

Различают запросы на выборку всех записей с произволь­ным набором полей и запросы на выборку подмножества за­писей.

На рис. 4.9 приведен пример запроса, формирующего пол­ный список сотрудников организации из таблицы «Сотрудни­ки», но с сокращенным набором полей («Таб. №», «Фамилия», «Имя», «Отчество»), а также представлен вариант SQL-инструкции, реализующий данный запрос.

Рис 4.9. Пример запроса на выборку всех записей по группе по­лей

В запросах на отбор подмножества записей в SQL-инструкции SELECT через предложение WHERE помещается выра­жение, определяющее условие отбора данных. На рис. 4.10 при­веден пример реализации запроса на отбор подмножества за­писей из таблицы «Сотрудники» для сформирования списка работников инженерно-технического и экономического профи­ля.

Рис. 4.10. Пример запроса на выборку подмножества записей

В запросах на выборку данных широко применяются пре­дикаты отбора ALL, DISTINCT, DISTINCTROW и TOPn. Пре­дикат ALL используется по умолчанию и устанавливает вывод в наборе данных всех записей, формируемых по условию отбо­ра, задаваемого предложением WHERE, и в большинстве слу­чаев в инструкции SELECT опускается.

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

На рис. 4.11 приведен пример запроса, отбирающего из таб­лицы «Сотрудники» данные по полю «Должность» без предиката отбора (т.е. с предикатом ALL) и с предикатом DISTINCT. В данном случае использование предиката DISTINCT позволяет сформировать простой список должностей без повторов.

Рис. 4.11. Пример запросов с предикатами ALL, DISTINCT и TOPn.

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

Предикат TOP n обеспечивает включение в набор данных первых п записей, сформированных по условию отбора. При­мер запроса с предикатом ТОРп также приведен на рис. 4.11.

В запросах на выборку помимо предложений FROM и WHERE используются предложения GROUP ВY, НАVING и ORDER ВY для дополнительной обработки отбираемых запи­сей.

Предложение GROUP ВY объединяет (группирует) записи с одинаковыми значениями определенных полей в одну запись. Предложение НАVING выполняет функцию предложения WHERE, позволяя задавать дополнительные условия для отбо­ра сгруппированных предложением GRОUP BY записей. Пред­ложение ORDER BY обеспечивает сортировку отобранных за­писей в зависимости от способа ASC (по возрастанию) или DESC (по убыванию). На рис. 4.12 приведен пример запроса, формирующего в порядке убывания список сгруппированных по полям «Категория» и «Профиль» записей из таблицы «Под­разделения» при условии отбора подразделений с категорий выше третьей и отбора сгруппированных записей при условии основного профиля подразделений.

Рис. 4.12. Пример запроса на выборку данных с предложениями GROUP BY, HAVING и ORDER BY

Определенную специфику имеет отбор записей с «пусты­ми» значениями определенных полей. В трактовке реляционных СУБД и языка SQL «пустых», т.е. неопределенных, значе­ний полей не бывает. Иначе говоря, значением числового поля может быть число, равное «0», а значением других типов полей (текстовые, дата) может быть нулевое значение— «Null».

Отбор записей с пустыми значениями может применяться для решения некоторых тематических и технологических за­дач, когда нужно отдельно сформировать и проанализировать набор данных с записями, содержащими нулевые для число­вых полей, или не имеющие в силу каких-либо причин опреде­ленного значения, для других типов полей. На рис. 4.13 пред­ставлен пример запроса, отбирающего данные из таблицы «Со­трудники», приведенной на рис. 4.10, с «пустыми» значениями по полю «Ученая степень», иначе говоря, формирующий спи­сок сотрудников, не имеющих ученых степеней.

Рис. 4.13. Пример запроса по поиску данных с пустыми значени­ями определенного поля

4.3.2.1.2. Запросы на выборку данных из нескольких таблиц

Запросы на выборку данных из нескольких таблиц, как пра­вило, предназначены для решения логических информационных задач и, в свою очередь, подразделяются на три группы:

• запросы на сочетание данных;

• запросы на соединение данных;

• запросы на объединение данных.

Запросы на сочетание строятся на основе операции скаляр­ного произведения реляционных таблиц и по смыслу направлены на формирование полного набора сочетании строк-записей, пред­ставленных в исходных таблицах. Запросы на сочетание строятся на основе SQL-инструкции SELECT и предложения FROM c пpoстым перечислением отбираемых полей и их таблиц.

Для примера на рис. 4.14 приведен запрос на выборку сочета­ния данных из таблицы «Подразделения» и таблицы «Мероприя­тия». Формирование и исполнение такого запроса может быть обус­ловлено потребностями автоматического формирования новой таб­лицы для составления определенных планов или графиков, где нужно предусмотреть в исходном виде полный набор сочетаний данных по подразделениям и по мероприятиям.

Рис. 4.14. Пример реализации запроса на сочетание дачных из двух таблиц

Запросы на соединение,* в свою очередь, подразделяются на запросы на основе внутреннего соединения(INNER JOIN) и запросы на основе правого или левого внешнего соединения (RIGHT JOINиLEFT JOIN).

* В некоторых источниках данный тип запросов называют запросами на объеди­нение (JOIN). Англ. термин JOIN переводится в глагольном виде как «объединяться», «соединяться», что и обусловливает неодинаковое его использование в русском пере­воде в разных источниках. В данном контексте более правильным является его перевод как «соединение», так как в реляционной модели данных операции «объединения» и «соединения» различны.

 

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

Запросы на внешнее соединение строятся на основе моди­фикации операции соединения. При левом внешнем соедине­нии (LEFT JOIN) строки итоговой таблицы образуются из всех строк первой (левой) таблицы с «прицеплением» строк второй таблицы, если значения поля соединения совпадают. Если сре­ди строк второй (правой) таблицы нет строк с соответствую­щим значением поля соединения, то в итоговой таблице присо­единяемые поля заполняются пустыми значениями. При пра­вом внешнем соединении (RIGHT JOIN) строки итоговой таблицы строятся по противоположному правилу.

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

Запросы на соединение реализуются на основе включения в предложение FROM в качестве источника данных конструк­ции вида «имя_1-й_таблицы INNER (LEFT/RIGHT) JOIN имя_2-й_таблицы ON имя__поля_соединения_1-й_таблицы=имя_поля_соединения_2-й_таблицы». На рис. 4.15 приведен пример реализации операций внутреннего, а также левого и правого внешних соединений таблиц «Сотрудники» и «Исполнение» (до­кументов) по полю «Фамилия».

На рис. 4.15 приведены также варианты построения SQL-инструкций, для реализации соответствующих запросов. Как видно из рисунка, выбор типа соединения определяется целя­ми дальнейшего использования результатов запроса.

Рис. 4.15, а. Левое внешнее соединение

При внутреннем соединении целью является получение новой таблицы с итоговыми данными по уже состоявшимся свя­зям.

Рис. 4.15, в. Правое внешнее соединение

Внешнее соединение по смыслу направлено на создание итоговой таблицы для просмотра и анализа состоявшихся и еще несостоявшихся связей. При этом для левого внешнего объеди­нения упор делается на анализ связей от первой таблицы (в нашем случае от сотрудников, чтобы просмотреть и проанали­зировать, кто и какие документы исполнил, а кто вообще не исполнил ни одного документа). Иначе говоря, информация по связям служит в качестве дополнительного аспекта, дополни­тельной характеристики для записей левой таблицы. Для пра­вого внешнего объединения упор делается на анализ связей от второй таблицы (в нашем случае от «Исполнения», чтобы про­смотреть и проанализировать, какие документы исполнены и какими сотрудниками, записи о которых находятся в таблице «Сотрудники»).

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

Поиск записей без подчиненных применяется для анализа данных в связанных таблицах, когда связи в силу каких-либо причин не состоялись. Реализуется данный вид запроса на ос­нове запроса на левое (правое) внешнее соединение с дополни­тельным условием отбора записей с пустыми значениями по полю соединения в правой (левой) таблице. По сути, запрос на поиск записей без подчиненных противоположен запросу на внутреннее соединение. Примером запроса по поиску записей без подчиненных, представленным на рис. 4.16, является зап­рос, строящий набор записей по таблице «Сотрудники», кото­рые не исполнили ни одного документа, т. е. не имеют подчи­ненных записей в таблице «Исполнение».

Запросы на соединение могут решать и более сложные ло­гические информационные задачи по анализу связанных дан­ных в цепочках из нескольких таблиц. В качестве примера та­кого рода запросов* можно привести следующий запрос по фор­мированию набора записей сотрудников, командированных в январе 1998 г. в организации г. Саратова со служебным задани­ем «Сопровождение поставок», данные из которого выбирают­ся из последовательно связанных отношением «Один-ко-многим» 4-х таблиц — «Сотрудники», «Командировки», «Пункт командирования», «Задания»:

* В данном случае далеко не самого сложного.

 

SELECTCoтрудники*

FRОМ ((Сотрудники INNER JOIN Командировки ON Со­трудники.ФИО = Командировки.ФИО) INNER JOIN Задания ON Командировки.Служебное задание = Задания.Наименование) INNER JOIN Пункт командирования ON Командировки. Пункт командирования = Пункт командирования. Наименование

Рис. 4.16. Пример запроса по поиску записей без подчиненных

WHERE ((Пункт командирования.Город) = «Саратов») AND ((Задания.Наименование) = «Сопровождение поставок») AND ((Командировки. Дата убытия) Between #1/1/98#Апd#1/31/98#);

Запросы на объединение данных реализуют операцию объединения реляционных таблиц и решают задачи создания наборов данных, объединяющих однотипные по смыслу запи­си (по группам однотипных полей) из нескольких таблиц. Стро­ятся запросы на объединение через SQL-инструкцию SELECT—UNION SELECT. При этом запрос состоит из первой инструк­ции SELECT, в которой перечисляются отбираемые поля и ус­ловия отбора записей из первой таблицы, и последующих ин­струкций UNION SELECT, в которых указываются отбираемые поля и условия отбора записей из других таблиц. Обязатель­ным условием является одинаковое количество отбираемых полей в первой инструкции SELECT и последующих инструк­циях UNION SELECT. При этом типы и длина полей в первой инструкции и последующих инструкциях могут не совпадать.

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

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

На рис. 4.17 приведен пример отбора и объединения дан­ных из таблиц «Исходящие» и «Входящие» базы «Документо­оборот» с целью формирования общего списка документов, по­ступивших после 1 декабря 1998 г., и документов, отправлен­ных после 20 декабря 1998 г. В запросе первые и последние поля переименованы, чтобы объединить смысл этих полей в исходных таблицах.

4.3.2.1.3. Вычисления и групповые операции в запросах

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

Вычисляемые поля. В инструкции SELECT в списке отби­раемых полей добавляется выражение, по которому вычисля­ется новое поле, и посредством ключевого слова AS определя­ется его имя в формируемом наборе данных. На рис. 4.18 при­веден запрос, формирующий ведомость начислений сотрудникам с вычисляемым полем «ИТОГО».

Рис. 4.17. Пример запроса на объединение

Групповые операции. В процессе отбора и обработки дан­ных важное значение имеют группирование данных по значе­ниям какого-либо поля и осуществление тех или иных опера­ций над сгруппированными записями. Групповые операции осу­ществляются на основе SQL-предложения GROUP BY в сочетании со статистическими функциями SQL. В большин­стве диалектов языка SQL в состав инструкции SELECT допус­кается включение статистических функций SQL, которые осу­ществляют те или иные групповые вычислительные операции над отбираемыми записями.

К числу статистических функций SQL относятся:

SUM (выражение) — вычисляет сумму набора значений;

Рис. 4.18. Пример запроса на выборку с вычисляемым полем

AVG (выражение) — вычисляет среднее арифметическое на­бора чисел;

Min (выражение) — вычисляет минимальное значение из на­бора значений;

Мах(выражение) — вычисляет максимальное значение из набора значений;

StDev (выражение) — вычисляет среднеквадратичное от­клонение набора значений;

Count (выражение) — вычисляет количество записей, содер­жащихся в наборе;

Var (выражение) — вычисляет дисперсию по набору значе­ний.

К числу функций, используемых в групповых операциях, относятся также функции First(выражение) и Last(выpaжeниe), вычисляющие (возвращающие), соответственно, первое и пос­леднее значения поля в наборе данных. В выражениях в каче­стве аргумента допускается использование имен полей таблиц.

Собственно сами групповые вычисления задаются посред­ством включения в SQL-инструкцию SELECT вычисляемого поля на основе выражения со статистическими функциями, вы­полняемыми над наборами данных, формируемыми предложением GROUP BY.

Для примера на рис. 4.19 приведен запрос, формирующий итоговые данные по общей сумме премиальных каждого из пре­мированных сотрудников. Группирование данных производит­ся по полю «ФИО», т. е. все записи с одинаковыми значениями поля «ФИО», объединяются в одну и дополнительно формиру­ется вычисляемое поле «ИТОГО», рассчитываемое как сумма сгруппированных в одну записей по произведению полей «Ок­лад» и «Премия».

Рис. 4.19. Пример запроса с групповой функцией Sum

В некоторых СУБД в отдельный вид выделяются запросы по поиску повторов, а также вводится специальная разновид­ность запросов на выборку в виде так называемых перекрест­ных запросов.

Запросы по поиску повторов применяются для анализа на­личия повторяющихся групп значений по определенному полю и их количественных (статистических) данных. В качестве при­мера на рис. 4.20 приведен запрос по поиску повторов в табли­це сотрудники по полю «Должность», формирующий в итоге штатную расстановку по заполненным должностям.

Рис. 4.20. Пример запроса по поиску повторяющихся значений

Более сложные статистические задачи решают перекре­стные запросы. Название «перекрестный» отражает принцип формирования и представления результатов таких запросов.

На рис. 4.21 иллюстрируется принцип построения итого­вой (сводной) таблицы перекрестного запроса. В исходной (ба­зовой) таблице для перекрестного запроса выбираются два поля. По повторяющимся значениям одного поля формируются на­звания заголовков строк итоговой (сводной) таблицы — «боковик» сводной таблицы. По повторяющимся значениям другого поля образуются названия столбцов итоговой таблицы — «шап­ка» сводной таблицы. В ячейках сводной таблицы отражаются результаты статистических функций по группам данных в ка­ких-либо полях исходной таблицы.

 

Рис. 4.21. Принцип формирования результатов перекрестного запроса

Для примера на рис. 4.22 представлен запрос по формиро­ванию статистических данных о количестве исполненных раз­личными сотрудниками документов с разнесением по видам документов. Полем для формирования боковика определено поле «Фамилия», полем для формирования шапки определено поле «Вид документа». На рисунке представлен также вариант SQL-инструкции, реализующей данный запрос.*

* В диалекте SQL MS Access.

 

Рис. 4.22. Пример перекрестного запроса

4.3.2.2. Запросы на изменение данных

Важное значение для решения различных технологичес­ких информационных задач по ведению базы данных имеют зап­росы на изменение данных. В отличие от непосредственного ввода данных в режимах открытой таблицы или формы они вно­сят изменения сразу в группу записей за одну операцию. Таким образом, результатом запросов на изменение является не набор данных, как в запросах на выборку, а изменение данных в самих таблицах.

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

Существует четыре разновидности запросов на изменение:

• запросы на удаление;

• запросы на обновление;

• запросы на добавление;

• запросы на создание таблицы.

При исполнении запроса на удаление за одну операцию осу­ществляется удаление группы записей из одной или нескольких таблиц. Запросы на удаление реализуются SQL-инструкцией DELETE. К примеру, из таблицы «Клиенты» с помощью запро­са на удаление можно за одну операцию удалить всех клиентов, проживающих в районе «Марьина Роща». SQL-инструкция такого запроса может выглядеть следующим образом:

DELETE Kлиенты .*, Клиенты.Район

FRОМ Клиенты

WHERE ((Клиенты.Район) = «Марьина Роща»));

Удаление записей одним запросом из нескольких таблиц может осуществляться путем перечисления через запятую в со­ответствующей SQL-инструкции имен таблиц и имен полей, за­дающих условия удаления, или по связям между таблицами при установке ограничений целостности связей в режим «Каскад­ного удаления связанных записей».

Запрос на обновление за одну операцию вносит общие из­менения в группу записей одной или нескольких таблиц. Реали­зуются SQL-инструкцией UPDAТЕ. Запросы на обновления при­меняются тогда, когда необходимо осуществить глобальные од­нотипные изменения в каком-либо наборе данных. В качестве примера приведем ситуацию, когда в результате очередной де­номинации (девальвации) всем сотрудникам необходимо в 10 раз уменьшить (увеличить) должностные оклады. Вариант SQL-инструкции, реализующей такой запрос, может выглядеть сле­дующим образом:

UPDAТЕ Сотрудники

SET Сотрудники.Оклад=Оклад/10;

В качестве другого примера приведем ситуацию, когда всех работников-совместителей учебного учреждения необходимо перевести в категорию почасовиков:

UPDAТЕ Сотрудники

SET Сотрудники.Статус=«Почасовик»

WHERE ((Coтpyдники.Cтaтyc)=«Coвмecтитeль»);

Обновление записей сразу в нескольких таблицах, также как и удаление, может осуществляться путем перечисления че­рез запятую в инструкции UPDAТЕ имен таблиц, полей, их зна­чений и соответствующих условий, а также по связям между таблицами с предварительной установкой ограничений целос­тности связей в режим «Каскадного обновления связанных за­писей».

Запрос на добавление осуществляет добавление группы за­писей из одной или нескольких таблиц в конец другой или груп­пы других таблиц. При этом количество и типы полей* при вставке записей должны совпадать. Запросы на добавление могут вставлять записи из текущей (открытой) базы данных в другую (внешнюю) базу данных. В этом случае запросы на до­бавление реализуют функции экспорта данных, решая задачи по обмену, архивации или резервированию данных. Однако чаще данные запросы применяются для добавления записей из одной таблицы базы данных в другую таблицу.

* Не обязательно имена, но обязательно типы полей.

 

Запросы на добавление реализуются SQL-инструкцией INSERT INTO. Предположим, в базе данных имеются две таб­лицы «Студенты» и «Научные работники» с однотипным набо­ром полей. Предположим также, что 100% студентов группы И-405 приняли участие в конкурсе научных студенческих ра­бот и опубликовали свои труды в университетском сборнике. Тем самым, будучи еще студентами, они перешли в разряд на­учных работников. В этом случае запросом на добавление од­ной операцией в таблицу «Научные работники» можно доба­вить группу новых записей. Вариант SQL-инструкции, реали­зующей такой запрос, может иметь вид:

INSERТ INTO НаучныеРаботники

SELECT Cтуденты. *

FRОМ Студенты

WHERE ((Студенты.Группа)=«И-405»);

Запросы на создание таблицы за одну операцию создают новую таблицу с заполненными данными на основе всех или ча­сти данных из одной или нескольких таблиц. Так же как и зап­росы на добавление, эти запросы чаще всего решают задачи по реформированию (реорганизации) базы данных, архивированию или резервированию данных, а также могут применяться для создания отчетов или состояний базы данных по определен­ным временным промежуткам. Реализуются SQL-инструкцией SELECT...INTO. Для примера приведем задачу создания спе­циального набора (отчета) данных за месяц, скажем за январь, из таблицы «Заказы» в виде отдельной таблицы (для отдельно­го хранения или обработки). Вариант соответствующей SQL-инструкции может выглядеть следующим образом:

SELECT Заказы *

INTO Заказы Января

FROM Заказы

WHERE ((Заказы.Дата)= BETWEEN #1/01/ 98#AND #1/02/98 #;

4.3.2.3. Управляющие запросы

В большинстве современных СУБД проектирование и со­здание таблиц осуществляются через специальные диалогово-наглядные конструкторы или пошаговые мастера. Тем не ме­нее, как уже отмечалось, в составе языка описания данных DDL имеются ряд SQL-инструкций, на основе которых строятся зап­росы по созданию/модификации реляционных таблиц или от­дельных их элементов. Такие запросы называются управляющими.

Имеется четыре вида управляющих запросов:

• запросы на создание таблицы;*

• запросы на добавление в существующую таблицу нового поля или индекса;

• запросы на удаление таблицы или индекса определенно­го поля таблицы;

• запросы на создание индекса для поля или группы полей таблицы.

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

 

Запросы на создание таблицы реализуются SQL-инструкцией CREAТЕ TABLE с ключевыми словами, определяющими типы полей (CHARACTER, INTEGER, DATETIME и т.д.), пред­ложением CONSTRAINT для создания ограничений на значе­ния полей или связей между таблицами, ключевым словом UNIQUE, задающим свойство уникальности (требование на отсутствие совпадений) индекса таблицы, а также ключевого слова PRIMARYKEY, определяющего ключевое поле создаваемой таблицы.

В качестве примера приведем запрос на создание таблицы «Сотрудники» с полями «Фамилия», «Имя», «ДатаРождения», уникальным составным индексом «ИндексСотрудники» для полей «Фамилия», «Имя», «ДатаРождения», с тем же набором полей для составного ключа «КлючСотрудники».*

* В стандартах SQL и в большинстве диалектов SQL символы кириллицы в на­званиях полей не допускаются.

 

CREAТЕ TABLE Cотрудники

(Фамилия TEXT, Имя TEXT, ДатаРождения DA TETIME, CONSTRAINT ИндексCотрудники UNIQUE (Имя,Фамилия, ДатаРождения)

КлючСотрудники PRIMARY KEY);

Запросы на добавление полей или индексов реализуются SQL-инструкцией ALTER TABLE с использованием зарезервированных слов ADD COLUMN (добавить поле) и ADD CONSTRAINT (добавить индекс). Этим же запросом с по­мощью зарезервированного слова DROP COLUMN можно уда­лить поле из существующей таблицы. Как правило, запросы на добавление полей также используются для создания внешних ключей, задающих связи-отношения между таблицами. С этой целью используются зарезервированные слова FOREIGN KEY и REFERENCES.







Дата добавления: 2015-08-12; просмотров: 976. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

Значення творчості Г.Сковороди для розвитку української культури Важливий внесок в історію всієї духовної культури українського народу та її барокової літературно-філософської традиції зробив, зокрема, Григорій Савич Сковорода (1722—1794 pp...

Методы анализа финансово-хозяйственной деятельности предприятия   Содержанием анализа финансово-хозяйственной деятельности предприятия является глубокое и всестороннее изучение экономической информации о функционировании анализируемого субъекта хозяйствования с целью принятия оптимальных управленческих...

Образование соседних чисел Фрагмент: Программная задача: показать образование числа 4 и числа 3 друг из друга...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия