
- •Введение
- •Прочие команды
- •Структура базы данных
- •Ключи, ограничения
- •Индексы
- •Представления
- •Процедуры и функции
- •Триггеры
- •Пользователи и сессии
- •Инструментарий скачать субд
- •Инсталляция
- •Выполнение запросов
- •Использование примеров
- •Комментарий
- •Идентификаторы
- •Обзор типов данных
- •Интервал времени
- •Литералы
- •Выражения и операции
- •Cтроковые операции
- •Алгебраические операции
- •Операции отношения
- •Логические операции и предикаты
- •Условные выражения
- •Прочие операции
- •Обзор функций
- •Математические функции
- •Строковые функции
- •Работа с датами
- •Преобразование типов
- •Функции Oracle
- •Функции PostgreSql
- •Функции MySql
- •Создание таблицы
- •Значения полей по умолчанию
- •Ключи и ограничения
- •Настройка внешнего ключа
- •Создание по выборке
- •Дополнительные параметры таблицы
- •Изменение, удаление таблицы
- •Переименование таблицы или ее столбца
- •Добавление/удаление столбца
- •Первичный ключ
- •Уникальный ключ
- •Внешний ключ
- •Безошибочное удаление таблиц
- •Добавление записей
- •Значения по умолчанию
- •Подзапросы
- •Вставка по условию
- •Обновление записей
- •Обновление подзапросом
- •Обновление по данным другой таблицы
- •Удаление записей
- •Выборка записей
- •Выборка констант
- •Выборка по столбцам таблиц
- •Синонимы (алиасы)
- •Уникальные записи
- •Выборка по условию
- •Выборка по группам
- •Соединения
- •Агрегатные функции, группировка данных
- •Операции над выборками
- •Добавление итогов
- •Нумерация записей
- •Обеспечение уникальности первичного ключа
- •Столбцы с автоинкрементом
- •Индексы
- •Представления
- •Динамический sql (dsql)
- •Процедурные операторы блоковая структура кода
- •Присвоение
- •Условный оператор
- •Оператор выбора
- •Безусловный цикл
- •Цикл с предусловием
- •Цикл по счетчику
- •Цикл по элементам
- •Операторы выхода/продолжения итерации
- •Выборка в переменные
- •Хранимые процедуры
- •Вызов процедур
- •Исключения
- •Курсоры
- •Триггеры
- •Числа прописью
- •Транзакции, конкурирующие запросы
- •Управление аккаунтами пользователи
- •Права доступа
- •Права доступа MySql
- •Права доступа PostgreSql
- •Права доступа Oracle
- •Удаление прав доступа
- •Роли PostgreSql
- •Роли Oracle
- •Роли MySql
- •Файловый вывод/ввод
- •Информация о базе данных
Индексы
Если предполагается частый поиск записей или сортировка, то используемые при этом столбцы индексируют. Для этого создается специальный объект БД - индекс, содержащий ссылки (индексы) на все записи таблицы отсортированных по одному и более столбцов. Для внутренней организации индексов могут использоваться различные структуры данных как деревья. Столбцы, входящие в первичный или уникальный ключ, обычно индексируются автоматически.
Представления
Конечной целью создания БД являются запросы данных от пользователей. Если запрос используется клиентскими программами, например, для генерации отчета или очень сложен (код запроса занимает страницы), то имеет смысл сохранить его. Для хранения запросов используются специальные объекты - представления или на сленге вьюхи (от view), содержащие в себе код запроса данных на языке SQL. Представления также называют виртуальными таблицами, которые отличаются от обычных таблиц тем, что доступны только для чтения. В результате код новых запросов с подзапросами становится более понятным. А также упрощается работа создателей отчетов, которые могут даже не знать структуру БД, ведь им достаточно знать имя представления.
Процедуры и функции
Серьезные СУБД поддерживают в различной степени динамический SQL, с которым связаны дополнительные типы объектов. В первую очередь это хранимые функции и процедуры. Их аргументы могут быть как входными, так и выходными, т.е. в них можно сохранить результат работы процедуры. В Oracle множество функций, процедур, различные пользовательские типы и переменные можно объединить в специальный объект - пакет (package), выполняющий роль модуля или библиотеки обычных языков программирования. Например, пакет DBMS_OUTPUT служит для вывода данных из хранимых процедур. Помимо обычных функций, СУБД поддерживают агрегатные функции, работающие сразу со множеством записей. К таким функциям относятся подсчет записей в выборке, поиск записи с минимальным или максимальным значением в указанном поле.
Триггеры
Для обработки событий вставки, изменения и удаления записей в таблице могут быть назначены триггеры - процедурные объекты, автоматически выполняющиеся при наступлении указанного события.
схема
Объект схема (schema) позволяет логически сгруппировать множество других объектов БД для определенной цели. Например, одна схема может служить для управления книжным фондом библиотеки, а другая ее бухгалтерией. Таким образом, несколько клиентских программ могут работать с одной СУБД не мешая друг другу.
Пользователи и сессии
Информация о пользователях также хранится в БД. Каждый пользователь характеризуется именем, паролем для входа, правами доступа к объектам БД и числом одновременных подключений (сессий). Для облегчения права доступа могут быть сгруппированы в роли. Ограничение в правах разумно не только с точки зрения безопасности целостности БД (можно случайно уничтожить таблицу с данными) и сокрытия данных (например, адреса клиентов). Клиентские программы могут анализировать доступные права и выстраивать соответствующий пользовательский интерфейс, например, убрать лишние пункты меню.
В каждой СУБД свой перечень используемых типов объектов. Выше обозначены лишь более-менее стандартные объекты.