Выбрать главу
Использование параметров

Параметры представляют собой переменные SQL, размещенные в программе. Параметры можно передавать операторам SQL во время выполнения приложения, что придает этим операторам дополнительную гибкость. Практически все 1лавные реализации SQL допускают использование параметров. Мы рассмотрим примеры передачи параметров в Oracle и Sybase.

Oracle

В Oracle предусмотрена передача параметров операторам, которые в противном случае оставались бы статическими операторами SQL.

SELECT EMP_ID, LAST_NAME, FIRST_NAME

FROM EMPLOYEEJTBL

WHERE EMP_ID = '&EMP__ID'

Этот оператор возвратит данные столбцов EMP_ID, LAST_NAME, FIRST_NAME таблицы EMPLOYEE_TBL для служащего с любым табельным номером EMP_ID, который вас попросит этот оператор ввести.

SELECT *

FROM EMPLOYEE_TBL

WHERE CITY = '&CITY'

AND STATE = '&STATE'

Этот оператор спросит у вас названия города и штата. В результате выполнения запроса к базе данных оператор возвратит данные обо всех служащих, проживающих в указанных вами городе и штате.

Sybase

В Sybase параметры можно передать сохраненной ранее процедуре

CREATE PROC EMP_SEARCK

(@EMP_ID)

AS

SELECT LAST_NAME, FIRST_NAME

FROM EMPLOYEE_TBL

WHERE EMP_ID = @EMP__ID

Чтобы выполнить созданную здесь процедуру с передачей ей подходящич параметров, вам придется напечатать что-то похожее на следующий оператор SP_EMP_SEARCH "443679012"

Резюме

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

В конце этого урока были рассмотрены два конкретных расширения SQL использующиеся тремя системами управления базами данных. Transact-SQL используется Microsoft SQL Server и Sybase, a PL/SQL используется Oracle Принципы, заложенные в основу этих расширений SQL, оказываются достаточно схожими. Например, оба ли расширения имеют стандартные возможности и усовершенствования, позволяющие повысить общую функциональность языка и эффективность работы В главе обсуждался продукт MySQL, специально предназначенный для ускорения работы с очень большими базами данных. Цель этого урока - показать, что расширений SQL существует немало и что одним из важнейших требований ко всем реализациям языка оказывается соответствие стандарту ANSI SQL.

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

Вопросы и ответы

Почему существуют различные вариации SQL?

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

После изучения основ SQL получаю ли я возможность использовать SQL в различных системах управления базами данных?

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

Практикум

Задания практических занятий разделены на тесты и упражнения. Тесты предназначены для проверки общего уровня понимания рассмотренного материала. Упражнения дают возможность применить на практике идеи, обсуждавшиеся в ходе текущего урока, в комбинации с идеями из предыдущих уроков. Мы рекомендуем ответить на тестовые вопросы и выполнить упражнения прежде, чем продолжать дальнейшее чтение книги. Ответы можно проверить по Приложению Б, "Ответы".

Тесты

1. Каким языком является SQL - процедурным или непроцедурным?

2. Почему существуют различия между разными реализациями SQL?

3. Назовите три основные операции, которые выполняются с курсором после его объявления.

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

Упражнения

1. Попробуйте самостоятельно обнаружить различия между реализациями SQL разных производителей. В библиотеке или книжном магазине ознакомьтесь с книгами по соответствующим реализациям языка. Сравните синтаксис соответствующих операторов SQL, в частности, операторов DML (языка манипуляций данными). Сравните формы операторов INSERT, DELETE и UPDATE. При этом для сравнения можно заглянуть также и в книгу по ANSI SQL.

2. Используя таблицу EMPLOYEEJTBL (см. Приложение В, "Операторы CREATE TABLE для примеров книги"), запишите интерактивный оператор SQL, возвращающий имена всех служащих, имеющих ZIP-код, равный 46234.