Языки баз данных

Автор: Пользователь скрыл имя, 13 Ноября 2011 в 17:04, реферат

Описание работы

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

Работа содержит 1 файл

Раздел 3.doc

— 128.00 Кб (Скачать)

Раздел 3. Языки баз данных

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

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

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

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

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

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

     Непроцедурный язык SQL (Structured Query Language - структурированный  язык запросов) ориентирован на операции с данными, представленными в виде логически взаимосвязанных совокупностей таблиц.

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

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

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

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

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

Создание SQL-запросов

 SQL-запрос – это структурированный язык выбора данных из одной или нескольких таблиц. 

 

Команда SELECT 

Для формирования запроса используется команда SELECT.

Обобщенный синтаксис:

SELECT [DISTINCT] Список Выбираемых Полей

FROM Список Таблиц

[WHERE Условие Выборки]

[GROUP BY Условие Группировки]

[HAVING Условие ограничения, накладываемое на  группу]

[ORDER BY Условие Упорядочивания] 

Обозначения: Необязательные опции заключаются в квадратные скобки. Вертикальная черта обозначает, что может быть выбрана одна из опций, которые стоят слева и справа от черты, но не обе сразу.

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

Команда INTO направляет запрос в новую таблицу.

В списке выбираемых полей необходимо перечислить поля разделять запятой. В конце запроса ставится точка с запятой. При выборке всех полей ставится *. 

Дано:

Таблица "Pokup" (Покупатели), с полями:

Фамилия   Cfam

Код товара   Nkod

Вид оплаты   Cvid

Стоимость товара  Ntov

Стоимость доставки  Ndos

Дата поступления  заявки Dpos

Дата и время  выполнения Tvip

Pokup

Cfam Nkod Cvid Ntov Ndos Dpos Tvip
Гребенев  А. Н. 441 безналичный 389.00 12.00 12/04/98 13/04/98 10:40:00
Степанова Е. Д. 321 наличный  124.00 8.00 11/04/98 13/04/98 09:15:00
Гребенев А. Н. 910 безналичный 500.00 56.00 12/04/98 12/04/98 03:10:00
Акимченко В. Г. 310 безналичный 560.00 20.00 13/04/98 15/04/98 02:50:00
Звягинцев Р. Т. 910 безналичный 125.00 23.00 15/04/98 15/04/98 09:30:00
Шараева Е. Н. 315 наличный  875.00 100.00 10/04/98 12/04/98 10:10:00
Денисов А. В. 360 наличный  1200.00 267.00 14/04/98 15/04/98 09:30:00
Скрынников  Е. В. 321 безналичный 498.00 19.00 12/04/98 13/04/98 10:25:00
 

Таблица "Tovary" (Товары):

Код товара   Nkod

Наименование  товара Cnaim

Цена    Nzena

Сорт    Nsort

Tovary

Nkod Cnaim Nzena Nsort
441 Лак паркетный 38.90 1
321 Кафель отделочный 124.00 1
910 Обои 23.00 2
310 Зеркало 560.00 1
315 Краска 25 3
360 Натяжной потолок 200 1
520 Клеенка 24 1
 
 

Импортировать заданные таблицы в новую базу данных.

 

Создать запросы к таблицам Pokup и Tovary,  используя команду SELECT 

  1. Выбрать поля "Фамилия" и "Дата поступления  заявки" из таблицы "Pokup".

                   SELECT Cfam, Dpos

                   FROM Pokup; 

  1. Выбрать все  поля таблицы "Pokup".

                   SELECT Pokup.*

                   FROM Pokup; 

    Итоговые запросы

   Список  выбираемых полей может содержать "выражения от полей": сумму, разность, произведение, частное от деления значений полей или сложное выражение в комбинации с числовыми константами.  Помимо математических операций можно применять агрегатные функции.

В качестве агрегатных функций можно использовать:

SUM()  вычисляет сумму всех значений,  содержащихся в столбце;

MIN()  Минимальное значение;

MAX() Максимальное значение;

AVG()  Среднее значение;

SUM()  Сумма;

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

COUNT(*) подсчитывает количество строк в таблице результатов запроса. 

Новому полю, являющемуся выражением от других полей  присваивается имя:

AS имя поляКлючевое слово AS можно использовать для присваивания псевдонимов столбцам. 

  1. Выбрать поля "Фамилия", "КодТовара", рассчитать сумму стоимости товара и доставки, название поля СуммарнаяЦена.

                  SELECT Pokup.Cfam, Pokup.Nkod, Ntov+Ndos AS s_m

                  FROM Pokup; 

    3_1. Выбрать поля "Cnaim", "Nzena" из 2 таб, вывести новую цену , увеличенную в 3 раза, название поля  «НоваяЦена».

                   SELECT tovary.Cnaim, tovary.Nzena, nzena*3 AS НоваяЦена

                   FROM tovary; 

  1. Рассчитать, используя агрегатные функции общее  количество покупателей, среднюю стоимость товара, максимальную, минимальную стоимость и суммарную стоимость товара.

      SELECT COUNT(cfam) AS kol_vo, AVG(ntov) AS sred, max(ntov) AS m_x, min(ndos) AS m_n

         FROM Pokup; 

 Применение  ключевого слова DISTINCT, записанного перед аргументом агрегатной функции к столбцу, приводит к удалению из него повторяющихся значений. 

Отбор строк с использованием условий поиска

  1. Выберем из таблицы "Pokup" поля "Фамилия покупателя", "Код товара" и "Стоимость товара" для всех товаров с кодом больше 400 (условие выборки)

                  SELECT cfam, nkod, ntov

                  FROM Pokup

                  WHERE nkod>400; 

    Условие может строиться с использованием логической операции AND (И), OR (ИЛИ), NOT (НЕ), включать в себя операции сравнения: <, <=, >, >=, =. 

Информация о работе Языки баз данных