Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
языки БД.doc
Скачиваний:
4
Добавлен:
26.11.2018
Размер:
153.6 Кб
Скачать

Языки баз данных Структурированный язык запросов sql

Хранимые в базе данные необходимо обрабатывать. Для повышения эффективности работы с БД применяю запросы, позволяющие производить множественную обработку данных, вводить, редактировать, удалять множество данных, а также выбирать данные из таблиц.

Запрос – специальным образом описанное требование, определяющее состав производимых над БД операций по выборке, удалению или модификации данных.

Для подготовки запросов применяются два основных языка описания запросов:

  • Язык QBE (Query By Example) – язык запросов по образцу;

  • SQL (Structured Query Language) – структурированный язык запросов.

Основное отличие между ними в способе формирования запросов:

QBE – ручное или визуальное формирование запросов;

SQL – программирование запроса.

Наглядным примером применения QBE являются запросные формы в MS Access. В диалоговом окне находятся связанные таблицы, и информация о запросе по каждому из полей, т.е. создается образец запроса.

Структурированный язык запросов SQL предназначен для обработки и чтения информации, хранящейся в БД, является непроцедурным языком программирования и не содержит операторов управления, организации подпрограмм, ввода-вывода и т.д. В связи с этим SQL автономно не используется, обычно он погружен в среду встроенного языка программирования СУБД.

Язык SQL появился в 1970-е годы. Его прототип был разработан фирмой IBM и известен под названием SEQUEL (Structured English Query Language). SQL вобрал в себя достоинства реляционной модели, в частности достоинства лежащего в ее основе математического аппарата реляционной алгебры и реляционного исчисления, используя при этом сравнительно небольшое число операторов и относительно простой синтаксис. Благодаря своим качествам язык SQL стал официально утвержденным в качестве стандарта языком работы с реляционными базами данных. Этот стандарт поддерживается всеми ведущими мировыми фирмами, действующими в сфере технологий баз данных. Использование выразительного и эффективного стандартного языка позволило обеспечить независимость разрабатываемых прикладных программных систем от конкретного типа используемой СУБД.

Говоря о стандарте языка SQL, следует заметить, что большинство его коммерческих реализаций имеют некоторые отличия от стандарта. Это, конечно, ухудшает совместимость систем, использующих различные "диалекты" SQL. Но, с другой стороны, полезные расширения реализаций языка обеспечивают его развитие и со временем включаются в новые редакции стандарта. Учитывая место, занимаемое SQL в современных информационных технологиях, его знание необходимо любому специалисту, работающему в этой области.

Язык работы с данными, который способна воспринимать СУБД, состоит из двух частей: язык определения данных (DDL) и язык манипулирования данными (DML).

DDL используется для определения схемы БД, а язык DML - для чтения и обновления данных, хранимых в базе. Эти языки называются подъязыками данных, т.к. в них нет конструкций для выполнения вычислительных операций, условных операторов и операторов цикла.

Во многих СУБД предусмотрена возможность включения операторов подъязыка данных в программы, написанные на языках программирования высокого уровня. Кроме того предусмотрены средства интерактивного выполнения операторов, вводимых пользователем непосредственно с компьютера.

Унификация полных языков современных профессиональных СУБД достигается за счет внедрения объектно-ориентированного языка четвертого поколения 4GL, последний позволяет организовывать циклы, условные предложения, меню, экранные формы и сложные запросы к базам данных.

Непроцедурный язык SQL ориентирован на операции с данными, представленными в виде логически взаимосвязанных совокупностей таблиц, является компактным языком с небольшим (менее 30) набором предложений.

В нем существуют:

  • предложения определения данных (определение баз данных, а также определение и уничтожение таблиц и индексов);

  • запросы на выбор данных (предложение SELECT);

  • предложения модификации данных (добавление, удаление и изменение данных);

  • предложения управления данными (предоставление и отмена привилегий на доступ к данным, управление транзакциями и другие).

Кроме того, он предоставляет возможность выполнять в этих предложениях:

  • арифметические вычисления (включая разнообразные функциональные преобразования), обработку текстовых строк и выполнение операций сравнения значений арифметических выражений и текстов;

  • упорядочение строк и (или) столбцов при выводе содержимого таблиц на печать или экран дисплея;

  • создание представлений (виртуальных таблиц), позволяющих пользователям иметь свой взгляд на данные без увеличения их объема в базе данных;

  • запоминание выводимого по запросу содержимого таблицы, нескольких таблиц или представления в другой таблице (реляционная операция присваивания).

  • агрегатирование данных: группирование данных и применение к этим группам таких операций, как среднее, сумма, максимум, минимум, число элементов и т.п.

Основные элементы языка SQL

Инструкции и имена

SQL представлен множеством инструкций, каждая предписывает выполнять определенные действия. Инструкция начинается с команды – ключевого слова, описывающего выполняемое действие.

Команды: CREAT (создать), INSERT (добавит), SELECT(выбрать), DELETE (удалить).

Далее следует предложение, описывающее данные для инструкции или действие, выполняемое инструкцией. Предложения делятся на обязательные и необязательные.

Каждое предложение начинается с ключевого слова, например, WHERE (где), FROM(откуда), INTO(куда). Многие предложения в качестве параметров содержат имена таблиц или столбцов, а также могут содержать дополнительные ключевые слова, константы и выражения.

У каждого объекта в базе есть уникальное имя. Имена используются в инструкциях и указывают над каким объектом базы данных инструкция должна выполнить действие. Имена могут содержать от 1 до 128 символов, начинаться с буквы, не содержать пробелов или символов пунктуации. На практике в разных СУБД поддержка имен может быть реализована по-разному.

В инструкциях SQL используются имена объектов БД, они могут быть как полные, так и короткие. Полное имя таблицы содержит имя пользователя и имя таблицы, разделенные точкой: <Имя пользователя >.<Имя таблицы>

Полное имя столбца <Имя пользователя >.<Имя таблицы>.<Имя поля>

Короткое имя столбца <Имя таблицы>.<Имя поля>

В одной таблице не может быть двух столбцов с одинаковыми именами, но в разных таблицах это возможно. В инструкциях используется полное именование одинаковых столбцов, если они принадлежат разным таблицам.

Типы данных

В столбцах могут храниться следующие типы данных.

Целые числа: INT, SMALLINT - хранят данные о количестве, возрасте, идентификаторы.

Десятичные числа: NUMERIC, DECIMAL - дробные числа с фиксированным количеством знаков после запятой (например, курсы валют)

Числа с плавающей запятой: REAL, FLOAT – больший диапазон действительных чисел

Строки символов постоянной длины: CHAR – хранят фамилии, имена, адреса, географические названия.

Строки символов переменной длины: VARCHAR – стоки символов изменяющихся в заданном диапазоне.

Денежные величины: MONEY, SMALLMONEY

Дата и время: DATETIME, SMALLDATETIME

Булевы величины: BIT - для хранения логических значений TRUE (1), FALSE (0)

Длинный текст: TEXT – для хранения документов до 64КБ

Неструктурированные потоки данных: BINARY, VARBINARY, IMAGE – хранят графические и видеоизображения, исполняемые файлы и др.

Выражения

В выражениях можно использовать 4 арифметические операции: сложение (X+Y), вычитание (X-Y), умножение (X*Y) и деление (X/Y). Для формирования сложных выражений используются круглые скобки.

Значения NULL

При заполнении таблиц отдельные элементы могут в ней отсутствовать, но строка должна быть введена в таблицу и участвовать в запросах на выдачу информации. Такое значение в SQL обозначается величиной NULL. Это значение показывает, что в конкретной строке элемент данных отсутствует. При этом NULL не является значением данных и в связи с этим не имеет определенного типа. Это признак, показывающий, что значение элемента данных не задано.

Операции с таблицами

При помощи языка SQL можно создавать, удалять, изменять таблицы и столбцы в имеющихся таблицах, вносить и удалять данные.