Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инф.сис_вместе..doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.8 Mб
Скачать

Delete (Удаление записей).

Для удаления записей используется оператор DELETE, имеющий формат:

DELETE FROM <имя таблицы>

WHERE <условие отбора>;

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

Пример. Удалить из таблицы ‘’Сотрудники’’ запись об экономисте Воронине:

DELETE FROM Сотрудники

WHERE Табномер = 7738

или

DELETE FROM Сотрудники

WHERE Фамилия = ‘Воронин’ AND Должность = ‘Экономист’

Оператор select.

Оператор SELECT является одним из самых главных. Он выполняется над некоторыми таблицами, входящих в БД. На самом деле в БД могут быть не только постоянно хранимые таблицы, но также и временные таблицы и так называемые представления.

Представления – это просто хранящиеся в БД SELECT – выражения.

С точки зрения пользователя представление – это таблица, которая постоянно не хранится в БД, а возникает при обращении.

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

Результатом выполнения операции SELECT всегда является таблица.

Оператор SELECT имеет следующий формат:

SELECT [DISTINCT]

<Список полей> или *

FROM <Список таблиц>

[WHERE <Условие отбора>]

[ORDER BY <Список полей для сортировки>]

[GROUP BY <Список полей для группирования>]

[HAVING <Условие группирования>]

[UNION <Вложенный оператор SELECT>]

Выбрать все поля

SELECT *

FROM <имя таблицы>

Выбор определенных полей

SELECT <имя столбца 1>,…,<имя столбца n>

FROM <имя таблицы>

Пример. Выбрать все поля таблицы «Сотрудники»:

SELECT *

FROM Сотрудники

Пример. Выбрать определенные поля таблицы «Сотрудники»:

SELECT Табномер, Фамилия, Отдел

FROM Сотрудники

Выбор полей, удовлетворяющих некоторому условию

SELECT <имя столбца 1>,…,<имя столбца n>

FROM <имя таблиц(ы)>

WHERE <условие отбора>;

Пример. В результате запроса выдать фамилию и отдел работы всех сотрудников с должностью 'Заведующий':

SELECT Отдел, Фамилия

FROM Сотрудники

WHERE Должность = ''Заведующий''

Модификатор distinct (предотвращение выборки повторяющихся слов).

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

Иногда (в зависимости от задачи) бывает необходимо устранить все повторы строк из результирующего набора. Этой цели служит модификатор DISTINCT. Данный модификатор может быть указан только один раз в списке выбираемых элементов и действует на весь список.

SELECT [DISTINCT] <имя столбца 1>,…,< имя столбца n>

FROM <имя таблиц(ы)>

WHERE <условие отбора>;

Пример. Выбрать все должности таблицы «Сотрудники»:

SELECT DISTINCT Должность

FROM Сотрудники;

Order by (упорядочение строк в результате запроса).

Операнд ORDER BY содержит список полей, определяющих порядок сортировки записей результирующего набора данных. По умолчанию сортировка по каждому полю выполняется в порядке возрастания значений. Если необходимо задать для поля сортировку по убыванию, то после имени этого поля указывается описатель DESC.

ORDER BY <порядок строк> [ASC | DESC]

Операнд ORDER BY всегда должен следовать за WHERE.

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

именами столбцов

номерами столбцов.

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

Пример. Упорядочить записи по табельному номеру сотрудников:

SELECT *

FROM Сотрудники

ORDER BY ТабНомер ASC | DESC;

Пример. Выдать фамилию и наименование отдела работы для всех заведующих, при этом записи упорядочить по фамилии:

SELECT Отдел, Фамилия

FROM Сотрудники

WHERE Должность = 'Заведующий'

ORDER BY 2

Пример. Выдать все записи таблицы «Сотрудники», при этом записи упорядочить по фамилии, а затем по табельному номеру в возрастающем порядке:

SELECT *

FROM Сотрудники

ORDER BY Фамилия, ТабНомер ASC;