- •БАЗЫ ДАННЫХ
- •SQL (Structured Query Language) ─
- •SQL - это гибкий и эффективный язык, все средства которого применяются для манипулирования
- •Структура SQL:
- •Типы данных языка SQL/92 :
- •INTEGER или INT ─ целые числа. SMALLINT ─ целые числа меньшего диапазона.
- •VARCHAR(n) - строка символов переменной длины. BIT(n) ─ строка битов постоянной длины.
- •В стандарте SQL определены стандартные встроенные функции для обработки текста, чисел, даты-времени, определены
- •Операторы определения данных:
- •Операторы манипулирования данными:
- •Администрирование данных:
- •Соглашения:
- •Синтаксис оператора SELECT:
- •Простые запросы:
- •Выборка по условию:
- ••IN – предикат TRUE, когда сравниваемое значение входит в заданное множество (NOT IN
- ••IS NULL – предикат, применяющийся для выявления равенства значения некоторого атрибута неопределенному значению
- •Запросы (использовать все варианты ответа):
- •ORDER BY – список полей упорядочивания результата (ASC – возрастание, DESC – убывание).
- •Агрегатные функции:
- •Запросы:
- •Вычисляемые поля
- •GROUP BY – группирование результатов. SELECT и GROUP BY тесно связаны между собой.
- •Запросы:
- •Вывести среднее значение стипендии по группам:
- •Вложенные подзапросы
- •Виды подзапросов:
- •Накладываемые ограничения:
- ••В стандарте языка операторы сравнения расширены до многократных сравнений с использованием слов ANY
- •Определить студентов, у которых стипендии превышают начисления хотя бы одного студента в группе
- •Определить студентов, у которых стипендии превышают начисления любого студента в группе 1223
- •Предложение HAVING
- •Запрос: Получить группы, количество студентов в группе, среднюю стипендию для групп, у которых
- •Порядок обработки предложений в SELECT:
- •Многотабличные запросы
- •Самый простой запрос:
- •Поэтому перечисление таблиц используется с условием соединения записей из разных таблиц в предложении
- •Соединения равенства
- •Запрос: Вывести сведения о клиентах и их покупках (сведения в таблице ПРОДАЖИ).
- •Запрос: Вывести для каждого клиента суммарное количество покупок
- •Выборка из 3 таблиц проводится аналогично.
- •Внешнее соединения
- •Различают:
- •Синтаксис:
- •Запрос: Выбрать из таблицы «Товары» список товаров, а из таблицы «Продажи» - суммарное
- •Команда создания таблицы — CREATE TABLE
- •ограничение_столбца — с помощью этого предложения указываются ограничения, которые будут определены для столбца.
- •CONSTRAINT — необязательное ключевое слово, после которого указывается название ограничения на значения столбца
- •PRIMARY KEY — определение первичного ключа на уровне одного столбца (т. е. первичный
- •ON DELETE {CASCADE | NO ACTION} - эти ключевые слова определяют действия, предпринимаемые
- •CREATE TABLE Учебный_план (ID_План INTEGER NOT NULL,
- •Изменение структуры таблицы — ALTER TABLE
- •Добавим, например, в таблицу «Студенты» столбец Год_поступления следующим образом:
- •Удаление из таблицы «Студенты» столбца «Год_поступления»:
- •Удаление таблиц — DROP TABLE
- •Добавление данных —INSERT
- •Оператор удаления данных DELETE
- •Операция обновления данных UPDATE
- •Операторы создания и удаления индекса
- •Product
БАЗЫ ДАННЫХ
Лекции № 6 Язык SQL
SQL (Structured Query Language) ─
структурированный язык запросов ─ стандартный язык запросов по работе с реляционными БД.
Язык SQL появился после реляционной алгебры, и его прототип был разработан в конце 70-х годов в компании IBM Research.
Он был реализован в первом прототипе реляционной
СУБД фирмы IBM System R.
В дальнейшем этот язык применялся во многих коммерческих СУБД и в силу своего широкого распространения постепенно стал стандартом для языков манипулирования данными в реляционных
СУБД.
SQL - это гибкий и эффективный язык, все средства которого применяются для манипулирования реляционными данными и для их исследования.
SQL является языком четвертого поколения (4GL).
Это означает, что данный язык описывает то, что нужно выполнить, но не как это должно быть сделано.
Языки третьего поколения (C, Cobol) - процедурные.
Программа, составленная на языке третьего поколения, реализуется путем выполнения пошагового алгоритма.
Структура SQL:
SQL является полным языком, в нем присутствуют не только операции запросов, но и операторы, соответствующие DDL ─ Data Definition Language ─ языку описания данных.
Кроме того, язык содержит операторы, предназначенные для управления БД, управления транзакциями, администрирования данных.
Типы данных языка SQL/92 :
CHARACTER(n) или CHAR(n) ─ символьные строки постоянной длины в n символов. При задании данного типа под каждое значение всегда отводится n символов, и если реальное значение занимает менее, чем n символов, то СУБД автоматически дополняет недостающие символы пробелами.
NUMERIC[(n,m)] ─ точные числа, n ─ общее количество цифр в числе, m ─ количество цифр слева от десятичной точки. //[не обязательные элементы]
DECIMAL[(n,m)] ─ точные числа, n ─ общее количество цифр в числе, m ─ количество цифр слева от десятичной точки.
DEC[(n,m)] - то же, что и DECIMAL[(n,m)].
INTEGER или INT ─ целые числа. SMALLINT ─ целые числа меньшего диапазона.
FLOAT[(n)] ─ числа большой точности, хранимые в форме с плавающей точкой. Здесь n ─ число байтов, резервируемое под хранение одного числа. Диапазон чисел определяется конкретной реализацией.
REAL ─ вещественный тип чисел, который соответствует числам с плавающей точкой, меньшей точности, чем
FLOAT.
DOUBLE PRECISION специфицирует тип данных с определенной в реализации точностью большей, чем определенная в реализации точность для REAL.
VARCHAR(n) - строка символов переменной длины. BIT(n) ─ строка битов постоянной длины.
DATE ─ календарная дата. INTERVAL ─ временной интервал.
В стандарте определены следующие константы:
-строковые константы: 'Иванов ', ' Петров '.
-константы с плавающей запятой: 2.9Е-4 0.54Е18.
-константы времени, даты и временного интервала представляются в виде строковых констант.
Набор типов зависит от конкретной СУБД.
В стандарте SQL определены стандартные встроенные функции для обработки текста, чисел, даты-времени, определены арифметические операции (подробнее см. литературу).
Операторы определения данных:
CREATE TABLE – создать таблицу, DROP TABLE – удалить таблицу, ALTER TABLE – изменить таблицу, CREATE VIEW - создать представление, ALTER VIEW - изменить представление, DROP VIEW – удалить представление.
Операторы манипулирования данными:
DELETE – удаляет одну или несколько строк из таблицы,
INSERT – вставляет строку в таблицу,
UPDATE – обновляет значение полей в одной или нескольких строках.
Язык запросов:
SELECT – выборка и отображение данных одной или нескольких таблиц; формирует результирующую таблицу в соответствии с запросом.