Общая характеристика структурированного языка запросов sql реферат

Обновлено: 05.07.2024

Структурированный язык запросов SQL основан на реляционном исчисле­нии с переменными кортежами. Язык имеет несколько стандартов, наиболее распространенными из которых являются SQL-89 и SQL-92.

Язык SQL предназначен для выполнения операций над таблицами (созда­ние, удаление, изменение структуры) и над данными таблиц (выборка, изме­нение, добавление и удаление), а также некоторых сопутствующих операций. SQL является непроцедурным языком и не содержит операторов управления, организации подпрограмм, ввода-вывода и т. п. В связи с этим SQL автоном­но не используется, обычно он погружен в среду встроенного языка програм­мирования СУБД (например, FoxPro СУБД Visual FoxPro, ObjectPAL СУБД Paradox, Visual Basic for Applications СУБД Access).

В современных СУБД с интерактивным интерфейсом можно создавать зап­росы, используя другие средства, например QBE. Однако применение SQL зачастую позволяет повысить эффективность обработки данных в базе. На­пример, при подготовке запроса в среде Access можно перейти из окна Конст­руктора запросов (формулировки запроса по образцу на языке QBE) в окно с эквивалентным оператором SQL. Подготовку нового запроса путем редакти­рования уже имеющегося в ряде случае проще выполнить путем изменения оператора SQL. В различных СУБД состав операторов SQL может несколько отличаться.

Язык SQL не обладает функциями полноценного языка разработки, а ори­ентирован на доступ к данным, поэтому его включают в состав средств разра­ботки программ. В этом случае его называют встроенным SQL. Стандарт язы­ка SQL поддерживают современные реализации следующих языков программирования: PL/1, Ada, С, COBOL, Fortran, MUMPS и Pascal.

В специализированных системах разработки приложений типа клиент-сер­вер среда программирования, кроме того, обычно дополнена коммуникаци­онными средствами (установление и разъединение соединений с серверами БД, обнаружение и обработка возникающих в сети ошибок и т.д.), средствами разработки пользовательских интерфейсов, средствами проектирования и отладки.

Различают два основных метода использования встроенного SQL: стати­ческий и динамический.

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

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

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

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

Для удобства работы с представлениями в язык SQL введено понятие кур­сора. Курсор представляет собой своеобразный указатель, используемый для перемещения по наборам записей при их обработке.

Описание и использование курсора в языке SQL выполняется следующим обра­зом. В описательной части программы выполняют связывание переменной типа кур­сор (CURSOR) с оператором SQL (обычно с оператором SELECT). В выполняемой части программы производится открытие курсора (OPEN ), переме­щение курсора по записям (FETCH ), сопровождаемое соответству­ющей обработкой, и, наконец, закрытие курсора (CLOSE ).

Содержимое работы - 1 файл

Язык запросов SQL.docx

Язык запросов SQL.

SQL является непроцедурным языком и не содержит операторов управления, организации подпрограмм, ввода-вывода и т.п. В связи с этим SQL автономно не используется, обычно он погружен в среду встроенного языка программирования СУБД (например, FoxPro СУБД Visual FoxPro, ObjectPAL СУБД Paradox, Visual Basic for Applications СУБД Access).

В современных СУБД с интерактивным интерфейсом можно создавать запросы, используя другие средства, например QBE. Однако применение SQL зачастую позволяет повысить эффективность обработки данных в базе. Например, при подготовке запроса в среде Access можно перейти из окна Конструктора запросов (формулировки запроса по образцу на языке QBE) в окно с эквивалентным оператором SQL. Подготовку нового запроса путем редактирования уже имеющегося в ряде случае проще выполнить путем изменения оператора SQL. В различных СУБД состав операторов SQL может несколько отличаться.

Язык SQL не обладает функциями полноценного языка разработки, а ориентирован на доступ к данным, поэтому его включают в состав средств разработки программ. В этом случае его называют встроенным SQL. Стандарт языка SQL поддерживают современные реализации следующих языков программирования: PL/1, Ada, С, COBOL, Fortran, MUMPS и Pascal.

В специализированных системах разработки приложений типа клиент-сервер (данную архитектуру мы рассмотрим позже) среда программирования, кроме того, обычно дополнена коммуникационными средствами (установление и разъединение соединений с серверами БД, обнаружение и обработка возникающих в сети ошибок и. т. д.), средствами разработки пользовательских интерфейсов, средствами проектирования и отладки.

Различают два основных метода использования встроенного SQL: статический и динамический.

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

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

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

История. Первые разработки.

Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования. Собственно разработкой языка запросов занимались Дональд Чэмбэрлин (Donald D Chamberlin) и Рэй Бойс (Ray Boyce). Пэт Селинджер (Pat Selinger) занималась разработкой стоимостного оптимизатора (cost - based optimizer), Рэймонд Лори (Raymond Lorie) занимался компилятором запросов.

Стоит отметить, что SEQUEL был не единственным языком подобного назначения. В Калифорнийском Университете Беркли была разработана некоммерческая СУБД Ingres (являвшаяся, между прочим, дальним прародителем популярной сейчас некоммерческой СУБД PostgreSQL ), которая являлась реляционной СУБД, но использовала свой собственный язык QUEL , который, однако, не выдержал конкуренции по количеству поддерживающих его СУБД с языком SQL.

Первыми СУБД, поддерживающими новый язык, стали в 1979 году Oracle V2 для машин VAX от компании Relational Software Inc. (впоследствии ставшей компанией Oracle ) и System/38 от IBM, основанная на System/R.

Стандартизация.

Поскольку к началу 80-х годов существовало несколько вариантов СУБД от разных производителей, причём каждый из них обладал собственной реализацией языка запросов, то было принято решение разработать стандарт языка, который будет гарантировать переносимость ПО с одной СУБД на другую (естественно, обе из которых в полной мере будут поддерживать этот стандарт).

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

Сразу после завершения работы над стандартом SQL1 в 1987 году была начата работа над новой версией стандарта, который должен был заменить стандарт SQL89, получив название SQL2, поскольку дата принятия документа на тот момент была неизвестна. Таким образом, фактически SQL89 и SQL2 разрабатывались параллельно. Новая версия стандарта была принята в 1992 году, заменив стандарт SQL89. Новый стандарт, озаглавленный как SQL92, представлял собой по сути расширение стандарта SQL1, включив себя множество дополнений имевшихся в предыдущих версиях инструкций.

SQL1 Уровень 1 -> SQL1 Уровень 2 -> SQL92 "Начальный" -> SQL92 "Средний" -> SQL92 "Полный".

SQL является, прежде всего, информационно - логическим языком , предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных . SQL нельзя назвать языком программирования .

Изначально, SQL был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций:

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

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

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

Каждое предложение SQL - это запрос или обращение к базе данных, которое приводит к изменению в базе данных. В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов:

  • запросы на создание или изменение в базе данных новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта);
  • запросы на получение данных;
  • запросы на добавление новых данных (записей)
  • запросы на удаление данных;
  • обращения к СУБД.

Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы - это операции над таблицами. В соответствии с этим, запросы делятся на:

Гост

ГОСТ

В основе структурированного языка запросов SQL лежит реляционное исчисление кортежей.

Общая характеристика языка запросов SQL

SQL может выполнять операции над таблицами и над данными таблиц.

Язык SQL называют встроенным, т.к. он содержит функций полноценного языка разработки, а ориентируется на доступ к данным, вследствие чего он входит в состав средств разработки приложений. Стандарты языка SQL поддерживают языки программирования Pascal, Fortran, COBOL, С и др.

Существует 2 метода использования встроенного SQL:

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

Язык SQL (как и другие языки для работы с БД) предназначен для подготовки и выполнения запросов. В результате выполнения запроса данных из одной или нескольких таблиц получают множество записей, которое называют представлением.

Представление – это таблица, которая формируется в результате выполнения запроса.

Основные операторы языка запросов SQL

Операторы языка SQL условно разделяются на 2 подъязыка:

  1. Язык определения данных DDL;
  2. Язык манипулирования данными DML.

В таблице символом * помечены специфические операторы языка.

Рассмотрим важнейшие операторы SQL.

Оператор создания таблицы:

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

Для отдельных полей можно указывать дополнительные правила контроля значений, которые в них вводятся. Например, NOT NULL обозначает, что поле не может быть пустым и в него должно быть введено значение.

Для создания таблицы books каталога книг, которая содержит поля:

type – тип книги,

author – автор книги,

name – название книги,

price – цена книги

оператор может выглядеть следующим образом:

Оператор изменения структуры таблицы:

При изменении структуры таблицы можно добавлять (ADD), изменять (MODIFY) или удалять (DROP) один или несколько столбцов таблицы. Правила записи данного оператора такие же, как и для оператора CREATE TABLE. Чтобы удалить столбец указывать не нужно.

Для добавления к таблице books поля number, в котором будет храниться количество книг, можно записать оператор:

Оператор удаления таблицы:

Например, чтобы удалить существующую таблицу с именем books достаточно воспользоваться оператором:

Оператор создания индекса:

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

Необязательная опция UNIQUE отвечает за обеспечение уникальности значений во всех столбцах, которые указаны в операторе.

ASC задает автоматическую сортировку значений в столбцах в порядке возрастания (по умолчанию), а DESC – в порядке убывания.

Оператор удаления индекса:

Оператор создания представления:

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

Оператор удаления представления:

Оператор выборки записей:

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

Операнд FROM содержит список таблиц, из которых берутся записи для отбора данных.

Оператор изменения записей:

Новые значения полей в записях могут не содержать значений (NULL) или вычисляться согласно арифметическому выражению.

Оператор вставки новых записей:

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

Во втором записи оператора INSERT вводятся новые строки, отобранные из другой таблицы через предложение SELECT.

Оператор удаления записей:

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

По возможностям манипулирования данными при описании запросов указанные языки практически эквивалентны. Отличаются языки способом формирования запросов: язык QBE предполагает ручное или визуальное формирование запроса, в то время как использование SQL означает программирование запроса. Запрос представляет собой специальным образом описанное требование, определяющее состав производимых над БД… Читать ещё >

Структурированный язык запросов SQL ( реферат , курсовая , диплом , контрольная )

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

Для подготовки запросов с помощью различных СУБД чаще всего используются два основных языка описания запросов:

  • · QBE (QueryByExample) — язык запросов по образцу;
  • · SQL (StructuredQueryLanguage) — структурированный язык запросов.

По возможностям манипулирования данными при описании запросов указанные языки практически эквивалентны. Отличаются языки способом формирования запросов: язык QBE предполагает ручное или визуальное формирование запроса, в то время как использование SQL означает программирование запроса.

Язык SQL имеет несколько стандартов, наиболее распространенными из которых являются SQL-89 и SQL-92. Язык предназначен для выполнения операций над таблицами (создание, удаление, изменение структуры) и над данными таблиц (выборка, изменение, добавление и удаление), а также некоторых сопутствующих операций. SQL является непроцедурным языком и не содержит операторов управления, организации подпрограмм, ввода-вывода и т. п. В связи с этим SQL автономно не используется, обычно он погружен в среду встроенного языка программирования СУБД (например, FoxPro СУБД Visual FoxPro, ObjectPAL СУБД Paradox, Visual Basic for Applications СУБД Access).

Операторы языка SQL можно условно разделить на два подъязыка: язык определения данных (Data Definition LanguageDDL) и язык манипулирования данными (Data Manipulation LanguageDML).

Читайте также: