
- •Язык запросов sql
- •Введение в sql(0-0)
- •Аннотация к лекции
- •Краткая история развития sql
- •Возможности языка
- •Основы sql
- •Типы данных sql
- •Литералы
- •Операторы и выражения
- •Именование объектов
- •Комментарии
- •Итоги лекции
- •Простейшие запросы (0-0)
- •Аннотация к лекции
- •О предложении select
- •Основные фразы – select и from
- •Фраза select
- •Синтаксис фразы select
- •Указание выводимых столбцов
- •Исключение повторяющихся строк
- •Использование вычисляемых выражений
- •Переопределение имен результирующих столбцов
- •Включение литералов в результат запроса
- •Вывод результатов в файл
- •Фраза from
- •Синтаксис фразы from
- •Синонимы таблиц
- •Запрос в качестве имени таблицы
- •Итоги лекции
- •Отбор строк по условию (0-0)
- •Аннотация к лекции
- •Простейшие условия
- •Операторы сравнения
- •Логические операторы
- •Использование выражений над столбцами
- •Специальные операторы
- •Проверка на принадлежность множеству
- •Проверка на принадлежность диапазону значений
- •Проверка на соответствие шаблону
- •Проверка на неопределенное значение
- •Итоги лекции
- •Многотабличные запросы (0-0)
- •Аннотация к лекции
- •Декартово произведение таблиц
- •Условие соединения
- •Соединение таблиц по равенству
- •Соединение таблиц по неравенству
- •Самосоединение таблицы
- •Внешнее соединение таблиц
- •Соединение с использованием фразы from
- •Итоги лекции
- •Использование функций (0)
- •Аннотация к лекции
- •Агрегатные функции
- •Однострочныефункции
- •Строковые функции
- •Числовые функции
- •Временные функции
- •Функции преобразования
- •Итогилекции(урока)
- •Группировка и сортировка (0)
- •Аннотация к лекции
- •Запросы с группировкой строк
- •Понятие группировки строк
- •Группировка по одному столбцу
- •Группировка по нескольким столбцам
- •Использование выражений
- •Условиеотборагрупп
- •Сортировка строк
- •Сортировка по столбцу или выражению
- •Сортировка по нескольким столбцам или выражениям
- •Итоги лекции
- •Множественные операции над таблицами (0-0)
- •Аннотация к лекции
- •Множественные операции в стандарте sql
- •Объединение таблиц
- •Пересечение таблиц
- •Разность таблиц
- •Дополнительные аспекты использования множественных операций
- •Множественные операции и группировка
- •Множественные операции и сортировка
- •Итоги лекции
- •Определение таблиц и представлений (0-0)
- •Аннотация к лекции
- •Создание таблицы
- •Изменениетаблицы
- •Возможности изменения таблиц
- •Добавление столбца
- •Изменение определения столбца
- •Удаление столбца
- •Переименование таблицы
- •Удаление таблицы
- •Определение индексов
- •Представления
- •Итоги лекции
- •Манипулирование данными (0-0)
- •Аннотация к лекции
- •Добавление новых строк
- •Варианты добавления строк
- •Вставка отдельных строк
- •Использование запроса при вставке строк
- •Вставка значений по умолчанию
- •Обновление существующих данных
- •Удаление существующих строк
- •Импорт и экспорт данных
- •Итоги лекции
- •Определение ограничений целостности, ключей, задание прав доступа к данным (0-18)
- •Аннотация к лекции
- •Виды ограничений целостности
- •Ограничение на отсутствие значения
- •Ограничениеуникальности
- •Ограничение первичного ключа
- •Ограничение ссылочной целостности
- •Изменение ограничений целостности
- •Итоги лекции
- •Программирование бд (19)
Импорт и экспорт данных
Предложения INSERT, DELETE и UPDATE являются чрезвычайно важными для их использования в программах, работающих с базами данных. Эти команды, совместно с SELECT, образуют основу оперирования базами данных. Однако SQL не обладает средствами экспорта и импорта данных из других источников. Например, предположим, что компания на протяжении многих лет вела базу данных в СУБД ACCESS. В связи с растущими потребностями в распределенной обработке данных в клиент-серверной архитектуре появилась необходимость в использовании другой более мощной СУБД, например Oracle. Если ваша исходная база данных слишком большая, следует приложить огромные усилия, чтобы с помощью команды INSERT загрузить в Oracle существующую в ACCESS базу данных. Очевидно, что команды INSERT, DELETE и UPDATE становятся полезными, когда база данных уже загружена, однако вряд ли вы захотите ввести вручную 400 000 команд INSERT, чтобы перезагрузить существующую базу данных.
Эта проблема решается намного проще в связи с тем, что большинство современных СУБД предоставляют средства экспорта/импорта баз данных. Одни СУБД имеют в своем составе программы-конверторы между собственным форматом хранения данных и форматами баз данных других СУБД. В этом случае при инициировании диалога импорта данных предоставляется возможность указать формат базы данных, из которой будет производиться импорт. Другие СУБД позволяют импортировать и экспортировать данные, используя формат текстовых файлов.
Например, СУБД Microsoft Access позволяет экспортировать/импортировать текстовые файлы и файлы форматов баз данных dBASE, FoxPro и SQL Database: Microsoft SQL Server — текстовые файлы специального формата, a Oracle – данные из текстовых файлов, представляющих записи переменной или фиксированной длины.
Итоги лекции
Усвоив материал этой лекции, студенты научились:
вставлять в таблицу базы данных отдельные строки, содержащие значения всех столбцов таблицы;
вставлять в таблицу базы данных отдельные строки, содержащие значения не всех столбцов таблицы;
изменять порядок перечисления значений столбцов во вставляемых строках;
использовать в качестве вставляемых значений выражения;
обновлять значения столбцов во всех строках таблицы;
обновлять значения столбцов в выборочных строках таблицы;
удалять все строки таблицы;
удалять выборочные строки таблицы.
Определение ограничений целостности, ключей, задание прав доступа к данным (0-18)
Аннотация к лекции
Эта лекция посвящена ограничениям целостности - составной части определения таблицы. С их помощью можно ограничить допустимые значения столбцов, совокупности столбцов, всей таблицы в целом или значений между таблицами. СУБД будет запрещать вводить или обновлять любые значения столбцов таблицы, нарушающие заданные ограничения целостности.
Виды ограничений целостности
Ограничения целостности используются для описания и поддержки действующих в предметной области ограничений на возможные значения данных. После определения ограничения целостности все данные в таблице должны соответствовать тем правилам, которые представлены в этом определении. При последующем выполнении команд SQL по модификации данных в таблице СУБД должна гарантировать, что результирующие данные удовлетворяют указанным ограничениям. Без использования ограничений целостности соответствующие правила, действующие в предметной области, пришлось бы поддерживать с помощью программных средств вашего приложения.
Стандарт SQL допускает при определении таблиц базы данных специфицировать ограничения целостности следующих типов:
[NOT] NULL – допускает или запрещает вставлять строки, которые содержат в столбце неопределенные значения;
UNIQUE – разрешает вставлять в таблицу только такие строки, которые содержат уникальные значения столбца (столбцов);
PRIMARY KEY – ограничение первичного ключа указывает, что все строки таблицы уникально идентифицируются значениями столбца (столбцов);
FOREIGN KEY – ограничение внешнего ключа (или ссылочное) устанавливает, что значения столбца (столбцов) должны соответствовать значениям столбца (столбцов) другой таблицы;
CHECK – позволяет задавать для столбца (столбцов) сложные условия на значение, которые должны соблюдаться при манипулировании строками таблицы.
Кроме того, стандарт SQL предоставляет возможность специфицировать самостоятельные, независимые от определения таблиц ограничения целостности, получившие название утверждений.
Ограничения целостности можно задавать для:
столбца– это ограничение, которое специфицируется относительно значений конкретного столбца и указывается после определения типа данных столбца (но перед запятой);
таблицы– это ограничение рассматривается как единое для группы столбцов и помещается в конец определения таблицы (после последнего имени столбца, но перед заключительной круглой скобкой).
Упрощенный вариант синтаксиса команды CREATE TABLE с указанием ограничений выглядит так:
CREATE TABLE имя_таблицы (
имя_столбца тип_данных ограничения_столбца[,
имя_столбца тип_данных ограничения_столбца]... [,
ограничение_таблицы]...);
Ограничение целостности как столбца, так и таблицы может предваряться фразой CONSTRAINT:
CONSTRAINT имя_ограничения
Она позволяет приписать ограничению имя, по которому в дальнейшем можно ссылаться на это ограничение, например, чтобы его удалить. Эта фраза не является обязательной.