Структурированный язык запросов – SQL: история, стандарты, основные операторы языка

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

2015-01-16

12.1 KB

23 чел.


Поделитесь работой в социальных сетях

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


Структурированный язык запросов – SQL: история, стандарты,

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

Структурированный язык запросов SQL основан на реляционном исчислении с переменными кортежами. Язык имеет несколько стандартов. Язык 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 <имя курсора>).

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

Опишем минимальное подмножество языка SQL, опираясь на его реализацию в стандартном интерфейсе ODBC (Open Database Connectivity – совместимость открытых баз данных) фирмы Microsoft. Операторы языка SQL можно условно разделить на два подъязыка: язык определения данных (Data Definition Language – DDL) и язык манипулирования данными (Data Manipulation Language-DML).Основные операторы языка SQL представлены в таблице.

Рассмотрим формат и основные возможности важнейших операторов, за исключением специфических операторов, отмеченных в таблице символом «*». Несущественные операнды и элементы синтаксиса (например, принятое во многих системах программирования правило ставить «;» в конце оператора) будем опускать.

1. Оператор создания таблицы имеет формат вида:

CREATE TABLE <имя таблицы>

(<имя столбца> <тип данных> [NOT NULL]

[,<имя столбца> <тип данных> [NOT NULL]]... )

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

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

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

Вид

Название

Назначение

DDL

CREATE TABLE

DROP TABLE

ALTER TABLE

CREATE INDEX

DROP INDEX

CREATE VIEW

DROP VIEW

GRAND*

REVOKE*

создание таблицы

удаление таблицы

изменение структуры таблицы

создание индекса

удаление индекса

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

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

назначение привилегий

удаление привилегий

DML

SELECT

UPDAT

INSERT

DELETE

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

изменение записей

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

удаление записей

В общем случае в разных СУБД могут использоваться различныетипы данных. В интерфейсе ODBC поддерживаются свои стандартные типы данных, например, символьные (SQL_CHAR, SQL_VARCHAR, SQL_LONGVARCHAR) и др. При работе с БД некоторой СУБД посредством интерфейса ODBC выполняется автоматическое преобразование стандартных типов данных, поддерживаемых интерфейсом, в типы данных источников и обратно. При необходимости обмен данными между программой и источником данных может вестись без преобразования – во внутреннем формате данных источника.

Пример 1. Создание таблицы.

Пусть требуется создать таблицу goods описания товаров, имеющую поля: type – вид товара, comp_id – идентификатор компании-производителя, name – название товара и price – цена товара. Оператор определения таблицы может иметь следующий вид:

CREATE TABLE goods (type SQL_CHAR(8) NOT NULL,

comp_id SQL_CHAR(10) NOT NULL, name SQL_VARCHAR(20),

price SQL_DECIMAL(8,2)).

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

ALTER TABLE <имя таблицы>

({ADD, MODIFY, DROP} <имя столбца> [<тип данных>] [NOT NULL]

[,{ADD, MODIFY, DROP} <имя столбца> [<тип данных>][NOT NULL]]...)

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

3. Оператор удаления таблицы имеет формат вида:

DROP TABLE <имя таблицы>

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

4. Оператор создания индекса имеет формат вида:

CREATE [UNIQUE] INDEX <имя индекса>

ON <имя таблицы>

(<имя столбца> [ ASC | DESC ]

[,<имя столбца> [ ASC | DESC ]... )

Оператор позволяет создать индекс для одного или нескольких столбцов заданной таблицы с целью ускорения выполнение запросных и поисковых операций с таблицей. Для одной таблицы можно создать несколько индексов.Задав необязательную опцию UNIQUE, можно обеспечить уникальность значений во всех указанных в операторе столбцах. По существу, создание индекса с указанием признака UNIQUE означает определение ключа в созданной ранее таблице. При создании индекса можно задать порядок автоматической сортировки значений в столбцах – в порядке возрастания ASC (по умолчанию), или в порядке убывания DESC. Для разных столбцов можно задавать различный порядок сортировки.

5. Оператор удаления индекса имеет формат вида:

DROP INDEX <имя индекса>

Этот оператор позволяет удалять созданный ранее индекс с соответствующим именем. Так, например, для уничтожения индекса main_indx к таблице emp достаточно записать оператор DROP INDEX main_indx.

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

CREATE VIEW <имя представления>

[(<имя столбца> [,<имя столбца> ]...)]

AS <оператор SELECT>

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

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

DROP VIEW <имя представления>

Оператор позволяет удалить созданное ранее представление. Заметим, что при удалении представления таблицы, участвующие в запросе, удалению не подлежат. Удаление представления герг производится оператором вида: DROP VIEW repr.

8. Оператор выборки записей имеет формат вида:

SELECT [ALL | DISTINCT]

<список данных>

FROM <список таблиц>

[WHERE <условие выборки>]

[GROUP BY <имя столбца> [,<имя столбца>] ... ]

[HAVING <условие поиска>]

[ORDER BY <спецификация> [,<спецификация>]...]

Это наиболее важный оператор из всех операторов SQL. Функциональные возможности его огромны. Рассмотрим основные из них. Оператор SELECT позволяет производить выборку и вычисления над данными из одной или нескольких таблиц. Результатом выполнения оператора является ответная таблица, которая может иметь (ALL), или не иметь (DISTINCT) повторяющиеся строки. По умолчанию в ответную таблицу включаются все строки, в том числе и повторяющиеся. В отборе данных участвуют записи одной или нескольких таблиц, перечисленных в списке операнда FROM. Список данных может содержать имена столбцов, участвующих в запросе, а также выражения над столбцами. В простейшем случае в выражениях можно записывать имена столбцов, знаки арифметических операций (+, –, *, /), константы и круглые скобки. Если в списке данных записано выражение, то наряду с выборкой данных выполняются вычисления, результаты которого попадают в новый (создаваемый) столбец ответной таблицы. При использовании в списках данных имен столбцов нескольких таблиц для указания принадлежности столбца некоторой таблице применяют конструкцию вида: <имя таблицы>.<имя столбца>.

Операнд WHERE задает условия, которым должны удовлетворять записи в результирующей таблице. Выражение <условие выборки> является логическим. Его элементами могут быть имена столбцов, операции сравнения, арифметические операции, логические связки (И, ИЛИ, НЕТ), скобки, специальные функции LIKE, NULL, IN и т.д. Операнд GROUP BY позволяет выделять в результирующем множестве записей группы.

9. Оператор изменения записей имеет формат вида:

UPDATE <имя таблицы>

SET <имя столбца> = {<выражение> , NULL }

[, SET <имя столбца> = {<выражение> , NULL}... ]

[WHERE <условие>]

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

10. Оператор вставки новых записей имеет форматы двух видов:

INSERT INTO <имя таблицы>

[(<список столбцов>)]

VALUES (<список значений>)

и

INSERT INTO <имя таблицы>

[(<список столбцов>)]

<предложение SELECT>

В первом формате оператор INSERT предназначен для ввода новыхзаписей с заданными значениями в столбцах. Порядок перечисления имен столбцов должен соответствовать порядку значений, перечисленных в списке операнда VALUES. Если <список столбцов> опущен, то в <списке значений> должны быть перечислены все значения в порядке столбцов структуры таблицы. Во втором формате оператор INSERT предназначен для ввода в заданную таблицу новых строк, отобранных из другой таблицы с помощью предложения SELECT.

PAGE  1



 

Другие похожие работы, которые могут вас заинтересовать.
16. Изучение основ языка структурированных запросов T-SQL 34.15 KB
  Для достижения поставленной цели необходимо решить следующие задачи: создать запросы на выборку из нескольких таблиц на языке SQL заданными критериями отбора; создать запрос на выборку на языке SQL содержащий статические агрегатные функции; создать запрос осуществляющий объединение результатов двух и более запросов в один набор результатов используя команду UNION. В результате выполнения работы студенты должны знать: категории команд SQL; основные команды SQL применяемые для построения запроса; принципы создания запросов SQL...
6030. ЯЗЫК КАК РАЗВИВАЮЩЕЕСЯ ЯВЛЕНИЕ. ВНЕШНИЕ И ВНУТРЕННИЕ ФАКТОРЫ РАЗВИТИЯ ЯЗЫКА 17.38 KB
  Проблема происхождения языка включает два вопроса. Первый вопрос связан с проблемой происхождения языка вообще как сложился человеческий язык каким образом человек научился говорить второй – с происхождением каждого отдельного языка. Свидетельств об этом периоде не сохранилось поэтому при изучении происхождения языка вообще лингвистам приходится оперировать не только языковыми фактами но и данными смежных наук. Интерес к проблеме происхождения языка возник давно.
10870. Межпредметные связи курса «Профессиональный русский язык». Трансформация и дифференциация профессионального русского языка 10.57 KB
  Трансформация и дифференциация профессионального русского языка 1. Трансформация и дифференциация профессионального русского языка. Синтаксические нормы определяются структурой языка и так же как и другие нормы орфоэпические лексические морфологические претерпевают изменения в процессе развития языка. При усвоении синтаксиса неродного языка наблюдается ряд трудностей возникающих при выборе форм управления и согласования построении предложения использовании деепричастного оборота выборе нужного предлога и так далее.
6929. История языка Delphi 13.01 KB
  Delphi это греческий город где жил дельфийский оракул. Delphi это комбинация нескольких важнейших технологий: Высокопроизводительный компилятор в машинный код Объектно-ориентированная модель компонент Визуальное а следовательно и скоростное построение приложений из программных прототипов Масштабируемые средства для построения баз данных Компилятор в машинный код Компилятор встроенный в Delphi обеспечивает высокую производительность необходимую для построения приложений в архитектуре...
10869. Понятия «профессиональный язык», «язык специальности», их дифференциация. Профессиональный русский язык: его зарождение, функции, сфера функционирования (с учетом специфики специальности) 9.5 KB
  Дифференциация языка. Каждая экономическая специальность помимо общего языка единого для всех экономистов имеет и свой специальный и специализированный язык. На этих профессиональных языках общаются в устной и письменной форме специалисты этим профессиональным языкам учат студентов такие профессиональные языки описывают системы знаний – умений в научной учебной справочной и другой литературе. В системе экономического языка существуют общие для всех профессиональных языков проблемы.
1335. Основные словообразовательные модели в современном варианте американского английского языка 117.01 KB
  Основные различия американского и британского вариантов английского языка. Проблема определения мирового статуса американского варианта английского языка. Американский вариант английского языка в современном мире. Лексические особенности американского варианта английского языка.
1936. ИСТОРИЯ, СТРУКТУРА И ОСНОВНЫЕ ПОНЯТИЯ ЭКОЛОГИИ 495.77 KB
  Термин “экология” образован греческими корнями “ойкос” – дом, непосредственное окружение человека и “логос” – наука. Поэтому в буквальном смысле экология – это наука об организмах, в том числе о человеке, наблюдаемых в пределах своего дома, причем особое внимание уделяется характеру связей между организмами и окружающей их средой.
17746. Педагогика изобразительного творчества: история и основные тенденции развития 25.96 KB
  Задача контрольной работы рассмотреть понятие детского художественного творчества выявить исследования выдающихся педагогов и психологов и истории становления детского художественного творчества. Проявлением художественного творчества могут быть отдельные работы - выполненные самостоятельно или под руководством взрослого рисунки лепка устное и письменное художественное слово мелодии драматизации танцы а также хоровое пение театральные постановки декоративно-прикладные работы резьба кукольный театр рисованные и игровые фильмы и...
6285. Управляющие операторы 103.51 KB
  Операторы цикла Операторы цикла используются для организации многократно повторяющихся вычислений. Для организации цикла необходима переменная называемая параметр цикла или управляющая переменная цикла. Любой цикл состоит из: начальных установок или блока инициализации параметра цикла; тела цикла то есть тех операторов которые выполняются несколько раз; блока модификации параметра цикла; проверки условия выхода из цикла которая может размещаться либо до тела цикла тогда говорят о цикле с предусловием либо после тела...
2784. Операторы условия и выбора 16 KB
  Оператор условия If. Поэтому Вы уже можете записать следующие операторы присваивания: Koren:=Sqrtxy; Modul:=bsxy. Для реализации таких условных переходов в языке Паскаль используют операторы If и Else а также оператор безусловного перехода Goto. Рассмотрим оператор If.
© "REFLEADER" http://refleader.ru/
Все права на сайт и размещенные работы
защищены законом об авторском праве.