Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

VIII. Структурированный язык запросов SQL




VII. Языки описания запросов.

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

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

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

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

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

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

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

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

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

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

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

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

Команды SQL разделены на пять категорий: команды DDL, команды DML, команды управления транзакцией, команды управления сеансом и встроенные команды SQL.

Язык определения данных (Data Definition Language – DDL) и язык манипулирования данными (Data Manipulation Language – DML).

Команды управления транзакцией управляют изменениями сделанными командами DML. Они дают возможность пользователю или разработчику предложений группировать изменения в логические единицы работы. Примеры команд управления транзакцией: COMMIT (выполняет фиксацию текущей транзакции и одновременно освобождает), ROLLBACK (выполняет откат текущей транзакции), SAVEPOINT (определяет контрольную точку для транзакции, на которую впоследствии можно сделать откат), ALTER ROLLBACK SEGMENT (предназначен для изменения сегментов отката).

Begin TransAction – инициирует транзакцию.

End TransAction – завершает транзакцию.

Команды управления сеансом дают возможность пользователям управлять характеристиками текущего сеанса. К ним относятся: включение и выключение ролей, изменение установок используемого языка диалога. Примеры: ALTER SESSION, SET ROLE (позволяет в рамках одного сеанса разрешить или запретить роли, которые были предварительно предоставлены пользователям).

Команды управления системой изменяют характеристики текущего экземпляра ORACLE. Единственной командой управления системой является команда ALTER SYSTEM; она позволяет изменять некоторые установки, например, минимальное число разделяемых серверов, уничтожать какой-либо сеанс и выполнять другие работы.

Встроенные команды SQL применяются совместно с командами DDL, DML и командами управления транзакцией в программах на процедурном языке. Пример: OPEN (открывает курсор проверяя запрос и подставляя хост-переменные, указанные во фразе USING, во фразу WHERE), CLOSE, FETCH (выполняет выборку одной или нескольких строк из результирующего набора, возвращаемого оператором SELECT, назначая для хост-переменных значения из списка выбора.

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

Вид Название Назначение
DDL CREATE TABLE Создание таблицы
DROP TABLE Удаление таблицы
ALTER TABLE Изменение структуры таблицы
CREATE INDEX (в Visual FoxPro Index On) Создание индекса
DROP INDEX Удаление индекса
CREATE VIEW (в Visual FoxPro Create Sql View) Создание представления
DROP VIEW Удаление представления
GRAND Назначение привилегий
REVOKE Удаление привилегий
DML SELECT Выборка записей
UPDATE Изменение записей
INSERT Вставка новых записей
DELETE Удаление записей

 


Определение таблицы

Оператор определения таблицы имеет следующий синтаксис:

CREATE TABLE <имя таблицы> (<имя поля> <тип поля> [(<длина поля>[,<десят. часть>])];

[Free];

[Check <лог. выражение 1> [Error <сообщение>];

[Default <выражение>];

[Primary Key | Unique];

[References <имя родит таблицы> [Tag <имя тэга>];

[, …]

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

CREATE TABLE <имя таблицы> - имя создаваемой таблицы.

(<имя поля> <тип поля> [(<длина поля>[,<десят. часть>])] – описание поля.

[Free] – указывает, что создается свободная таблица.

[Primary Key | Unique] – создает для рассматриваемого поля первичный индекс или ключ-кандидат.

[References <имя родит таблицы> [Tag <имя тэга>]] – определяет родительскую таблицу, с которой устанавливается связь. Если имя тэга не указано, то отношение устанавливается, используя первичный индекс родительской таблицы.

[Check <лог. выражение 1> [Error <сообщение>] – определяет правило контроля достоверности данных для таблицы.

[Default <выражение>] – значение по умолчанию.

Если при создании новой таблицы нет открытой БД, то при использовании фраз Check, Default, Primary Key, Foreign Key, Free, References и Unique происходит ошибка.

 

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

В Visual FoxPro также используется также команда

Create [<имя файла> | ?]

Эта команда вызывает диалоговое окно для определения структуры новой таблицы и затем создает ее.

 

Drop Table <имя таблицы> | <имя файла> |? [Recycle]

Удаляет свободную таблицу или таблицу БД как из текущей БД, так и с диска.

? – инициирует вызов диалогового окна Remove, для выбора удаляемой таблицы.

[Recycle] – указывает на то, что таблица не будет немедленно удалена с диска.

 

Delete From [<Имя БД>!]<имя таблицы> [Where <фильтр>]

Помечает записи для удаления.

Команда FoxPro Pack выполняет удаление всех помеченных для удаления записей и уменьшает размер файла, содержащего Memo_поле.

Pack [Memo] | [Dbf]

[Memo] – удаляет только неиспользуемое пространство из файла, содержащего Memo-поля.

[Dbf] – удаляет маркированные записи из таблицы.

Команда Pack также перестраивает индексные файлы, соответствующие текущей таблице.

 

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

Add | Alter| Drop [Column] <имя поля> [<тип поля> [(<длина поля>[,<десят. часть>])]];

[Check <лог. выражение 1> [Error <сообщение>];

[Default <выражение>];

[Primary Key | Unique];

[References <имя родит таблицы> [Tag <имя тэга>];

[, …]

Эта команда изменяет структуру таблицы.

Add [Column] <имя поля> – имя добавляемого поля.

Alter [Column] <имя поля>– имя изменяемого (уже существующего) поля.

Add [Column] <имя поля> – имя удаляемого поля.

[References <имя родит таблицы> [Tag <имя тэга>]] – определяет родительскую таблицу, с которой устанавливается постоянная связь.

Пример.

ALTER TABLE library!Reader;

Add iIndex Integer(6);

Default 222222

 

INSERT INTO <имя таблицы> [(<имя поля1> [, <имя поля2>,...])]

VALUES (<выражение1> [, <выражение2>,...])

Добавляет в таблицу указанную запись.

Пример.

Объекты Combo1 и Combo2.

BoundTo – определяет каким образом устанавливается свойство Value для списков ComboBox и ListBox: из свойства List (выбранное значение) или свойства ListIndex (индекс выбранного значения). Если значение.T. то свойство Value определяется посредством свойства List. (Combo1.BoundTo=.T.)

RowSourceType – определяет тип источника данных для списка.

0 – None - источника данных нет.

1 – Value – источником данных являются перечисленные через запятую значения.

6 – Fields – источником данных являются перечисленные через запятую названия полей.

и т.д.

(Combo1. RowSourсeType=1, 6).

RowSourсe – определяет источник данных для списков. Источником данных могут быть: разделенный запятыми список значений, SQL-оператор, запрос, массив, список полей, шаблон имен файлов, имена полей таблицы или меню. (Combo1. RowSourсe=’120,180,195,240’, Combo2. RowSourсe=video_8.ccasmadecode).

 

Объект Button1.

Метод Click:

Insert into video_3(icassettecode,icasmadecode,cstudyofrecord,icassettelength);

values (thisform.text1.value, video_8.icasmadecode, thisform.text2.value, thisform.combo1.value)

 

CREATE SQL View [<имя локального вида>] [Remote]

[Connection <имя связи> [Share] | Connection <источник данных>]

[As SQLSelect Statement]

[Remote] – позволяет использовать в удаленном виде удаленные источники данных (таблицы).

[Connection <имя связи> [Share]] – определяет имя соединения используемое при открытии вида. Фраза [Share] указывает на установление по возможности разделяемой связи.

[Connection <источник данных>] - определяет существующий источник данных с которым устанавливается соединение.

[As SQLSelect Statement] – определяет вид, формируемый на основе запроса указываемого SQL-оператором Select.

 

UPDATE [<имя БД>!] <имя таблицы>

Set <имя поля1>=<выражение1> [,<имя поля2>=<выражение2> …];

Where <фильтр>

Обновляет записи в таблице (только для одной таблицы).

 

DELETE FROM [<имя БД>!] <имя таблицы>;

Where <фильтр>

Помечает записи для удаления.

Пример.

DELETE FROM Library!reader;

Where cFam='П'

 

Транзакция – последовательность операций над данными базы, переводящая БД из одного непротиворечивого состояния в другое, которое может быть представлено как одно “событие”.

Команды управления транзакцией управляют изменениями, сделанными командами DML. Они дают возможность пользователю или разработчику предложений группировать изменения в логические единицы работы. Примеры команд управления транзакцией: COMMIT (выполняет фиксацию текущей транзакции и одновременно освобождает), ROLLBACK (выполняет откат текущей транзакции), SAVEPOINT (определяет контрольную точку для транзакции, на которую впоследствии можно сделать откат), ALTER ROLLBACK SEGMENT (предназначен для изменения сегментов отката). Visual FoxPro поддерживает транзакции только для таблиц БД.

Begin TransAction – инициирует транзакцию.

End TransAction – завершает транзакцию.

Транзакции могут иметь 5 уровней вложенности.

ROLLBACK - выполняет откат транзакции, отменяя все изменения выполненные во время текущей транзакции.




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 932; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.055 сек.