3. Как называется программное обеспечение, посредством которого осуществляется доступ к базам данных.
4. Можно ли внедрить SQL в языки программирования для Internet?
5. Как осуществляется доступ к удаленной базе данных в рамках приложения Web?
1. Войдите в Internet и ознакомьтесь с информационными страницами нескольких из представленных там компаний. Если ваша компания тоже имеет информационную страницу в Web, сравните ее с информационными страницами конкурентов. Ответьте для себя на следующие вопросы в отношении просмотренных страниц.
а. Открывается ли страница быстро или ее открытие тормозится наличием слишком большого числа графических изображений?
б. Интересно ли читать представленную на странице информацию?
в. Получили ли вы в результате чтения имеющейся на странице информации представление о предлагаемых компанией услугах и продуктах и о компании в целом?
г. Если на странице предлагается доступ к некоторой базе данных, то достаточно ли быстро осуществляется такой доступ?
д. Можно ли сделать вывод об использовании на данной странице Web каких-либо средств безопасности?
2. Если в вашей компании используется intranet, войдите в сеть и посмотрите, какая информация о компании там представлена. Доступна ли там какая-нибудь база данных? Если да, то кто является производителем соответствующей системы управления базами данных? Какого типа интерфейсные приложения предлагаются при этом конечному пользователю?
24-й час Расширения стандартного SQL
На этом уроке обсуждаются расширения стандарта ANSI SQL. Хотя большинство реализаций SQL в основном предлагают стандартные средства, многие производители предлагают также расширения стандартного SQL с целью различных усовершенствований
Основными на этом уроке будут следующие темы
• Разные реализации языка
• Различия между реализациями
• Соответствие стандарту ANSI SQL
• Интерактивные операторы SQL
• Использование переменных
• Использование параметров
Имеется целый ряд реализаций SQL, предлагаемых различными производителями. Перечислить здесь всех производителей систем управления базами данных возможности нет, поэтому мы рассмотрим только некоторые программные продукты, предлагаемые лидерами. Мы обсудим реализации SQL, предлагаемые Sybase, dBase, Microsoft SQL Server и Oracle. Кроме них достаточно популярными являются продукты фирм Borland, IBM, Informix, Progress, CA-Ingress и многих других.
Хотя все реализации, о которых идет речь, предназначены для работы с реляционными базами данных, каждая из этих реализаций немного отличается от других. Эти различия вытекают из различий в дизайне продукта и различий в подходах к обработке данных ядром базы данных. Но в данной книге мы сосредоточимся на различиях в рамках SQL. Как и рекомендовано стандартом ANSI, все реализации в качестве языка взаимодействия с базой данных используют SQL. Но кроме стандартных средств SQL, предлагаются расширения SQL, специфичные для каждой из имеющихся реализаций.
Различия в SQL различных производителей возникают из-за стремления улучшить стандарт ANSI SQL с точки зрения простоты использования и эффективности. Внедрять усовершенствования и делать свои продукты более привлекательными для клиентов производителей заставляет конкуренция.
Теперь, когда вы знаете основы SQL, вам будет нетрудно разобраться в различиях SQL разных производителей. Другими словами, если вы можете использовать SQL в рамках реализации Sybase, для вас не составит большого труда использовать SQL и в Oracle. Кроме того, знание SQL различных производителей по крайней мере улучшит ваше резюме.
В следующих примерах сравнивается синтаксис операторов SELECT разных производителей со стандартом ANSI.
Стандарт ANSI предлагает следующий синтаксис оператора.
SELECT [DISTINCT ] [* | СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]
FROM ТАБЛИЦА1 [, ТАБЛИЦА2]
[ WHERE УСЛОВИЕ ПОИСКА ]
GROUP BY [ ПСЕВДОНИМ_ТАБЛИЦЫ | СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]
[ HAVING УСЛОВИЕ_ПОИСКА ]]
[{UNION | INTERSECT | EXCEPT}][ ALL ]
[ CORRESPONDING [ BY (СТОЛБЕЦ! [, СТОЛБЕЦ2 ]) ]
СПЕЦКФИКАЦИЯ_ЗАПРОСА | SELECT * FROM ТАБЛИЦА |
КОНСТРУКТОР_ТАБЛИЦЫ ]
[ORDER BY СПИСОК_СОРТИРОВКИ ]
SQLBase предлагает следующий синтаксис оператора.
SELECT [ ALL | DISTINCT ] СТОЛБЕЦ1 [, СТОЛВЕЦ2 ]
FROM ТАБЛИЦА1 [, ТАБЛИЦА2]
[ WHERE УСЛОВИЕ_ПОИСКА ]
[ GROUP BY СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]
[ HAVING УСЛОВИЕ_ ПОИСКА ]]
[ UNION [ ALL ] ]
[ ORDER BY СПИСОК_СОРТИРОВКИ ]
[ FOR UPDATE OF СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]]
Oracle предлагает следующий синтаксис оператора.
SELECT [ ALL | DISTINCT ] СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]
FROM ТАБЛИЦА1 [, ТАБЛИЦА2]
[ WHERE УСЛОВИЕ_ПОИСКА ]
[[ START WITH УСЛОВИЕ_ПОИСКА ]
CONNECT BY УСЛОВИЕ_ПОИСКА ]
[ GROUP BY СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]
[ HAVING УСЛОВИЕ_ПОИСКА ]]
[{UNION [ ALL ] ] INTERSECT | MINUS} СПЕЦИФИКАЦИЯ_ЗАПРОСА ]
[ ORDER BY СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]
[ NOWAIT ]
Informix предлагает следующий синтаксис оператора.
SELECT [ ALL | DISTINCT | UNIQUE ] СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]
FROM ТАБЛИЦА1 [, ТАБЛИЦА2]
[ WHERE УСЛОВИЕ_ПОИСКА ]
[ GROUP BY {СТОЛБЕЦ1 [, СТОЛБЕЦ2 ] | INTEGER}
[ HAVING УСЛОВИЕ_ПОИСКА ]]