Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инф-госы теория и практика.doc
Скачиваний:
28
Добавлен:
29.08.2019
Размер:
3.77 Mб
Скачать

Манипулирование данными

Операторы языка SQL DML:

  • SELECT — выборка данных из базы;

  • INSERT — вставка данных в таблицу;

  • UPDATE — обновление (изменение) данных в таблице;

  • DELETE — удаление данных из таблицы.

Литералы

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

Простые запросы

Назначение оператора SELECT состоит в выборке и отображении данных одной или более таблиц базы данных. Оператор SELECT является чаще всего используемой командой языка SQL. Общий формат оператора SELECT имеет следующий вид:

SELECT [DISTINCT | ALL] {* | [column_expression [AS new_name]] [,…]}

FROM table_name [alias] [,…]

[WHERE condition]

[Group BY column_list] [HAVING condition]

[ORDER BY column_list]

Здесь параметр со1umn_expression представляет собой имя столбца или выражение из нескольких имен. Параметр table_name является именем существующих в базе данных таблицы или представления, к которым необходимо получить доступ. Необязательный параметр alias — это сокращение, устанавливаемое для имени таблицы table_name. 06работка элементов оператора SELECT выполняется в следующей последовательности.

FROM - Определяются имена используемой таблицы или нескольких таблиц

WHERE - Выполняется фильтрация строк объекта в соответствии с заданными условиями

GROUP BY - Образуются группы строк, имеющих одно и то же значение в указанном столбце

HAVING Фильтруются группы строк объекта в соответствии с указанным условием

SELECT Устанавливается, какие столбцы должны присутствовать в выходных данных

ORDER BY Определяется упорядоченность результатов выполнения оператора

Порядок предложений и фраз в операторе SELECT не может быть изменен. Только два предложения оператора — SELECT и FROM — являются обязательными, все остальные предложения и фразы могут быть опущены.

Добавление новых данных в таблицу (оператор INSERT):

Существует две формы оператора INSERT. Первая предназначена для вставки единственной строки в указанную таблицу. Эта форма имеет вид:

INSERT INTO table_name [(column_list)]

VALUES (data_value_list)

Здесь параметр table_name (имя таблицы) может представлять либо имя таблицы БД, либо имя обновляемого представления. Параметр column_list (список столбцов) представляет список, состоящий из имен одного или более столбцов, разделенных запятыми. Параметр column_list является необязательным. Если опускаются какие-то столбцы, то они принимают значение NULL. Параметр data_value_list (список значений данных) должен следующим образом соответствовать параметру column_list:

  1. Кол-во элементов в обоих списках должно быть одинаково:

  2. должно существовать прямое соотношение между позициями элементов в обоих списках (первый элемент data_value_list к первому элементу column_list, второй ко второму и т.д.)

  3. типы данных элементов списка data_value_list должны быть совместимы с типом данных соответствующих столбцов таблицы.

Модификация данных в базе (оператор UPDATE)

Оператор UPDATE позволяет изменять содержимое уже существующих строк указанной таблицы. Этот оператор имеет вид:

UPDATE table_name

SET column_name1 = data_value1 [ , column_name2 = data_value2 . . .]

[WHERE search_condition]

Здесь параметр table_name представляет либо имя таблицы БД, либо имя обновляемого представления. В предложении SET указывается имена одного или более столбцов, данные в которых необходимо изменить. Предложение WHERE является необязательным. Если оно опущено, значения указанных столбцов будут изменены во всех строках таблицы. Если предложение WHERE присутствует, то обновлены будут только те строки, которые удовлетворяют условию поиска, заданному в параметре search_condition. Параметры data_value представляют новые значения соответствующих столбцов и должны быть совместимы с ними по типу данных.

Удаление данных из базы (оператор DELETE)

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

ELETE FROM table_name

[WHERE search_condition]

Здесь параметр table_name представляет либо имя таблицы БД, либо имя обновляемого представления.

Параметр search_condition яляется необязательным – если он опущен, из таблицы будут удалены все существующие в ней строки. Однако сама по себе таблица удалена не будет. Если предложение WHERE присутствует, из таблицы будут удалены только те строки, которые удовлетворяют условию отбора, заданному параметром search_condition.

Работа со схемой.

SQL сочетает в себе возможности не только ЯМД, но и ЯООД поэтому в нем предусмотрены широкие возможности для непосредственной работы с со схемой базы данных.

Основными командами, предназначенными для этих целей являются:

A) CREATE TABLE. Команда позволяет создать новое отношение. При этом фактически определяются ограничения целостности (прежде всего по методу ключа), присущие отношению. Формат команды является относительно сложным, поэтому опустим его формальное описание и ограничимся примером.

B) ALTER TABLE. Данная команда позволяет изменять структуру таблицы путем добавления (ADD) или удаления (DROP) атрибутов.

C) DROP TABLE. Команда предназначена для удаления отношения из базы данных.

Формат команды: DROP TABLE <имя отношения>.

Пример: DROP TABLE ПРЕПОДАВАТЕЛИ

Добавление, удаление и модификация данных.

Для добавления кортежа в отношение используется команда:

INSERT INTO <отношение> (<cписок атр.>) VALUES (<знач. атр>).

Примеры.

A) INSERT INTO ПРЕПОДАВАТЕЛИ (ФИО, возраст, стаж) VALUES (Сидоров, 45, 14).

Эта операция приведет к добавлению записи в таблицу. При этом значение поля id будет выставлено автоматически

B) INSERT INTO ПРЕПОДАВАТЕЛИ (*) VALUES (9, Сидоров, 45, 14)

Эта команда будет выполнена только в том случае, если в таблице на момент выполнения отсутствует запись c id=9.

C) INSERT INTO ПРЕПОДАВАТЕЛИ (ФИО) VALUES (Сидоров).

В этом случае значения атрибутов «возраст» и «стаж» останутся неопределенными, или будут определены в значение по умолчанию, принятого для атрибутов данного типа.

Для удаления кортежа из отношения используется команда:

DELETE FROM <отношение> WHERE <условие>.

Эта команда работает по тому же принципу, что и команда SELECT, указывается условие, накладываемое на удаляемые данные.

Если спросят: Подзапросы

Внешний (второй) оператор SELECT использует результат выполнения внутреннего (первого) оператора для определения содержания окончательного результата всей операции. Внутренние запросы могут быть помещены в предложения WHERE и HAVING внешнего оператора SELECT — в этом случае они получают название подзапросов, или вложенных запросов. Кроме того, внутренние операторы SELECT могут использоваться в операторах INSERT, UPDATE и DELETE.

Существует три типа подзапросов:

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

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

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

В общем, сортировку следует понимать как процесс перегруппировки заданного множества объектов в некотором определенном порядке. Цель сортировки – облегчить последующий поиск элементов в таком отсортированном множестве.