Программное средство
Java
JDBC (Java Database Connectivity) (JavaSoft)
C++
RogueWave SourcePro DB (инструмент сторонних произ
водителей для соединения с БД Oracle, SQL Server,
MySQL, Informix, DB2, Sybase и PostgreSQL)
C/C++
Pro*C (Oracle)
MySQL C API (с открытым исходным кодом)
DB2 Call Level Interface (IBM)
C#
ADO.NET (Microsoft)
VisualBasic
ADO.NET (Microsoft)
Что такое SQL?
23
WHERE c.fname = 'George' and c.lname = 'Blake'
AND p.name = 'checking';
Без лишних на этом этапе подробностей: данный запрос идентифици
рует в таблице
account
строку Джорджа Блейка, а в таблице
product
–
строку с типом счета
'checking'
(текущие расходы), в таблице
account
находит строку, соответствующую данной комбинации «клиент/тип
счета», и возвращает четыре столбца таблицы
transaction
для всех
транзакций по этому счету. Все концепции, присутствующие в данном
запросе (и многие другие), будут рассмотрены в следующих главах;
здесь мне просто хотелось показать, как выглядел бы запрос.
Предыдущий запрос содержит три разных
блока
(
clauses
):
select
,
from
и
where
. Практически каждый сформированный вами запрос будет
включать, по крайней мере, эти три блока, хотя есть и другие блоки,
применяемые для более сложных целей. Роль каждого из этих трех
блоков можно продемонстрировать следующим образом:
SELECT /* одна или более сущностей */ ...
FROM /* одно или более мест */ ...
WHERE /* удовлетворяется одно или более условий */ ...
Большинство реализаций SQL воспринимают текст, располо
женный между тегами
/*
и
*/
, как комментарии.
Обычно первая задача при создании запроса – определить, какая таб
лица или таблицы понадобятся, а затем добавить их в блок
from
. Далее
необходимо отсеять данные этих таблиц, которые не помогут ответить
на запрос. Для этого в блок
where
вводятся условия. Наконец, прини
мается решение о том, какие столбцы разных таблиц требуется из
влечь, и они добавляются в блок
select
. Вот простой пример поиска
всех клиентов по фамилии Smith (Смит):
SELECT cust_id, fname
FROM customer
WHERE lname = 'Smith'
Этот запрос выполняет поиск в таблице
customer
всех строк, столбец
lname
которых соответствует строке
'Smith'
, и возвращает столбцы
cust_id
и
fname
этих строк.
Кроме создания запросов к БД вам, скорее всего, придется заполнять
и изменять данные БД. Вот простой пример добавления новой строки
в таблицу
product
:
INSERT INTO product (product_cd, name)
VALUES ('CD', 'Certificate of Depasit')
Ой, кажется, в слове «Deposit» ошибка! Никаких проблем. Это можно
исправить с помощью выражения
update
:
UPDATE product
|