Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Топ:
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Интересное:
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Дисциплины:
2017-12-09 | 152 |
5.00
из
|
Заказать работу |
|
|
Некоторые СУБД позволяют использовать функции, определяемые пользователем (UDF – User Defined Functions). Эти функции обычно хранятся во внешних библиотеках и должны быть зарегистрированы в базе данных, после чего их можно использовать в запросах, триггерах и хранимых процедурах.
В качестве средств разработки этих функций можно использовать любые языки программирования, которые позволяют создавать библиотеки для платформы, на которой функционирует данная СУБД.
Транзакции
Транзакция (Transaction) – это группа операций над данными в базе, которые либо выполняются все вместе, либо все вместе отменяются.
Транзакция может состоять из нескольких вложенных транзакций.
Если все операции, входящие в состав транзакции, успешно выполнены. То результат их работы сохраняется в базе данных. Говорят, что транзакция успешно завершена (Commit).
Если в ходе выполнения транзакции произошёл сбой, то осуществляется откат транзакции (Rollback) на её начало или к контрольной точке. При выполнении отката все уже выполненные операции отменяются, и все объекты базы данных возвращаются в исходное состояние.
Для поддержки такого алгоритма работы почти все СУБД поддерживают ведение, так называемого, журнала транзакций в виде специальных log-файлов, куда записываются все данные, необходимые для восстановления базы данных.
Введение в SQL
Стандарты
SQL (ˈɛsˈkjuˈɛl; англ. Structured Query Language — «язык структурированных запросов») — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL основывается на исчислении кортежей [http://ru.wikipedia.org/wiki/SQL].
Стандарты:
Год | Название | Иное название | Изменения |
SQL-86 | SQL-87 | Первый вариант стандарта, принятый институтом ANSI и одобренный ISO в 1987 году. | |
SQL-89 | FIPS 127-1 | Немного доработанный вариант предыдущего стандарта. | |
SQL-92 | SQL2, FIPS 127-2 | Значительные изменения (ISO 9075); уровень Entry Level стандарта SQL-92 был принят как стандарт FIPS 127-2. | |
SQL:1999 | SQL3 | Добавлена поддержка регулярных выражений, рекурсивных запросов, поддержка триггеров, базовые процедурные расширения, нескалярные типы данных и некоторые объектно-ориентированные возможности. | |
SQL:2003 | Введены расширения для работы с XML-данными, оконные функции (применяемые для работы с OLAP-базами данных), генераторы последовательностей и основанные на них типы данных. | ||
SQL:2006 | Функциональность работы с XML-данными значительно расширена. Появилась возможность совместно использовать в запросах SQL и XQuery. | ||
SQL:2008 | Улучшены возможности оконных функций, устранены некоторые неоднозначности стандарта SQL:2003[5] |
Возможности SQL
|
Каждое предложение SQL — это либо запрос данных из базы, либо обращение к базе данных, которое приводит к изменению данных в базе. В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов:
· запросы на получение данных;
· запросы на добавление новых данных (записей)
· запросы на удаление данных;
· обращения к СУБД.
Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы — это операции над таблицами. В соответствии с этим, запросы делятся на
· запросы, оперирующие самими таблицами (создание и изменение таблиц);
· запросы, оперирующие с отдельными записями (или строками таблиц) или наборами записей.
Каждая таблица описывается в виде перечисления своих полей (столбцов таблицы) с указанием
|
· типа хранимых в каждом поле значений;
· связей между таблицами (задание первичных и вторичных ключей);
· информации, необходимой для построения индексов.
Запросы первого типа, в свою очередь, делятся на запросы, предназначенные для создания в базе данных новых таблиц, и на запросы, предназначенные для изменения уже существующих таблиц. Запросы второго типа оперируют со строками, и их можно разделить на запросы следующего вида:
· вставка новой строки;
· изменение значений полей строки или набора строк;
· удаление строки или набора строк.
Самый главный вид запроса — это запрос, возвращающий (пользователю) некоторый набор строк, с которым можно осуществить одну из трёх операций:
· просмотреть полученный набор;
· изменить все записи набора;
· удалить все записи набора.
Таким образом, использование SQL сводится, по сути, к формированию всевозможных выборок строк и совершению операций над всеми записями, входящими в набор.
Запросы на выборку данных
Для формирования запросов на выборку данных из таблиц используется команда SELECT.
Рассмотрим основные опции данной команды.
SELECT [DISTINCT|ALL] <Список вывода>
[FROM <Список таблиц>]
[WHERE <Условие выборки>]
[GROUP BY <Условие группировки>
[HAVING <Условие выбора группы>]]
[ORDER BY <Условие сортировки>];
DISTINCT – при выводе исключить повторяющиеся строки;
ALL – вывести всё, режим по умолчанию;
WHERE – выбор строк таблиц, значения полей (граф) в которых удовлетворяют условию выборки;
GROUP BY – объединение строк, имеющих одинаковое значение условия группировки, в группу, как правило, с целью подведения итогов по графам таблицы; не является сортировкой, т.к. группы формируются в произвольном порядке;
HAVING – аналогично WHERE, но внутри группы строк таблицы;
ORDER BY – сортировка по указанному полю (полям) в порядке возрастания (ASC) или порядке убывания (DESC).
Примеры запросов
Рассмотрим учебную БД, состоящую из трёх таблиц:
КЛИЕНТ (№клиента, Ф, И, О, СуммаКредита, Город);
ТОВАР (КодТовара, НазваниеТовара, Цена);
ПОКУПКА (№клиента, КодТовара, Количество).
Пример 1. Вывести список клиентов, проживающих в г. Ижевске, в порядке убывания их кредита.
Вариант 1:
SELECT №клиента, Ф, И, О, СуммаКредита
FROM КЛИЕНТ
WHERE Город = ‘Ижевск’
ORDER BY СуммаКредита DESC;
Вариант 2 (переименование граф результирующей таблицы):
|
SELECT №клиента AS Номер клиента, Ф AS Фамилия, И AS И., О AS О., СуммаКредита AS Сумма кредита
FROM КЛИЕНТ
WHERE Город = ‘Ижевск’
ORDER BY СуммаКредита DESC;
Пример 2. Вывести список товаров, стоимость которых находится в диапазоне от 500 до 1000.
Вариант 1:
SELECT КодТовара, НазваниеТовара, Цена
FROM ТОВАР
WHERE Цена BETWEEN 500 AND 1000;
Вариант 2:
SELECT *
FROM ТОВАР
WHERE Цена BETWEEN 500 AND 1000;
Вариант 3:
SELECT *
FROM ТОВАР
WHERE Цена >= 500 AND Цена <=1000;
Пример 3. Выбрать все товары, наименование которых начинается с буквы «Т».
SELECT *
FROM ТОВАР
WHERE НазваниеТовара LIKE ‘Т%’;
В примере использован один из символов шаблона:
% - заменяет любую последовательность символов;
_ - одиночный символ.
Пример 4. Выбрать номера клиентов, которым продан товар с названием «Стул 5АС».
SELECT №клиента
FROM ТОВАР, ПОКУПКА
WHERE НазваниеТовара = ‘Стул 5АС’ AND КЛИЕНТ.№клиента = ПОКУПКА.№клиента;
Пример 5. Определить номера клиентов, сумма кредита которых больше или равна средней сумме кредита для города, в котором проживает клиент.
SELECT №клиента, СуммаКредита, Город
FROM КЛИЕНТ X, КЛИЕНТ Y
WHERE СуммаКредита >= (SELECT AVG(СуммаКредита)
FROM Y
WHERE X.Город = Y.Город);
В примере использована одна из стандартных агрегатных функций:
AVG – подсчёт среднего значения по графе всей таблицы или по группе строк таблицы;
COUNT – подсчёт количества строк таблицы в целом или в выделенной группе строк;
SUM – подсчёт суммы по графе (таблицы или группы);
MAX – поиск максимального значения в графе (таблицы или группы);
MIN – поиск минимального значения (таблицы или группы).
Данная задача может быть решена двумя запросами.
Пример 6. Определить общий объём покупок по каждому товару в количественном выражении.
SELECT КодТовара, SUM(Количество)
FROM ПОКУПКА
GROUP BY КодТовара;
Примеры команды SELECT
Более подробно вопросы работы с базами данных можно посмотреть в учебнике:
Базы данных. Вводный курс
Сергей Кузнецов
Содержание
Предисловие
|
|
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!