- •Ис(2) обзор возможностей и особенностей различных сбд
- •3. Внутренний уровень; внутреннее представление бд — представление структуры хранения записей, состоит из множества типов внутренних записей (хранимых записей).
- •Ис(3)Язык запросов, как универсальный язык реляционной бд.
- •Ис(4). Логическая модель предметной области.
- •Правила первичных и альтернативных ключей
Ис(3)Язык запросов, как универсальный язык реляционной бд.
SQL (Structured Query Language)-структурированный язык запросов - стандартный язык запросов по работе с реляционными БД. SQL нельзя в полной мере отнести к традиционным языкам програм-ния, он не содержит традиционные операторы, управляющие ходом выполнения программы, операторы описания типов и многое другое, он содержит только набор стандартных операторов доступа к данным, хранящимся в базе данных. Операторы SQL встраиваются в базовый язык программир., кот-ым может быть любой стандартный язык типа C++, PL, COBOL и т.д. Кроме того, операторы SQL могут выполняться непосредственно в интерактивном режиме. SQL является полным языком, в нем присутствуют не только операции запросов, но и операторы, соответствующие DDL — Data Definition Language — языку описания (определения) данных, DML(-manipulation-) язык манипуляции данными, DCL(-control-) язык доступа к данным, TCL(transaction control) язык подтверждения данных.
Операторы языка определения данных DDL (CREATE, DROP, ALTER)
CREATE TABLE-.создаёт новую таблицу из БД.
DROP TABLE- удалить таблицу из БД
ALTER TABLE – изменяет структуру существующей таблицы.
Операторы языка манипулирования данными DML (INSERT, DELETE,SELECT, UPDATE).
DELETE |
Удалить строки |
INSERT |
Вставить строку |
SELECT |
Выбрать строки |
UPDATE |
Обновить строку |
Язык запросов (Data Query Language) в SQL состоит из единственного оператора SELECT. Этот единственный оператор поиска реализует все операции реляционной алгебры. Синтаксис оператора SELECT имеет следующий вид:SELECT [ALL(т.е. в результирующий набор строк включаются все строки) | DISTINCT(т.е. включаются только различные строки)] «писок полей>|*( т.е. в результирующий набор включаются все столбцы из исходных таблиц запроса))
FROM <Список таблиц>
[WHERE <Предикат-условие выборки или соединения>]
[GROUP BY <Список полей результата>]
[HAVING <Предикат-условие для группы>]
[ORDER BY <Список полей, по которым упорядочить вывод>]
В разделе FROM задается перечень исходных отношений (таблиц) запроса.
В разделе WHERE задаются условия отбора строк результата или условия соединения кортежей исходных таблиц, подобно операции условного соединения в реляционной алгебре. В разделе GROUP BY задается список полей группировки.
В разделе HAVING задаются предикаты-условия, накладываемые на каждую группу.
В части ORDER BY задается список полей упорядочения результата, т.е. список полей, кот-ый определяет порядок сортировки в результирующем отношении.
inner join Объединяет две таблицы, где каждая строка обеих таблиц в точности соответствует условию. Если для строки одной таблицы не найдено соответствия в другой таблице, строка не включается в набор.
,left join К левой таблице присоединяются все записи из правой, соответствующие условию (по правилам inner join), плюс все не вошедшие записи из левой таблицы, поля правой таблицы заполняются значениями NULL.
right join К левой таблице присоединяются все записи из правой соответствующие условию (по правилам inner join) плюс все не вошедшие записи из правой таблицы, поля левой таблицы заполняются значениями NULL
full join К левой таблице присоединяются все записи из правой, соответствующие условию (по правилам inner join), плюс все не вошедшие записи из правой таблицы, поля левой таблицы заполняются значениями NULL и плюс все не вошедшие записи из левой таблицы, поля правой таблицы заполняются значениями NULL); использование агрегатных функций, группировка записей (предложение group by). Запросы могут производить обобщенное групповое значение полей точно также как и значение одного поля. Это делает с помощью агрегатных функций, они производят одиночное значение для всей группы таблицы. Имеется список этих функций: * COUNT – производит номера строк или не – NULL значения полей которые выбрал запрос.
* SUM – производит арифметическую сумму всех выбранных значений данного пол. * AVG - производит усреднение всех выбранных значений данного пол. * MAX – производит наибольшее из всех выбранных значений данного пол. * MIN – производит наименьшее из всех выбранных значений данного пол.