Структура команды

<имя оператора><ключевое слово> <дополнит. ключевые слова, константы, выражения >

 

Пример:

Update Поставщик set[Адрес]=’Правды, 8а’,[Город]=’Витебск’ where [Название]=’МИТСО’

Каждый оператор SQL начинается с глагола, представляющего собой ключевое слово, которое определяет, что именно делает этот оператор (SELECT, INSERT, DELETE...). В операторе содержатся также предложения, содержащие сведения о том, над какими данными производятся операции. Каждое предложение начинается с ключевого слова, такого как FROM, WHERE к др. Структура предложения зависит от его типа: ряд предложений содержит имена таблиц или полей, некоторые могут содержать дополнительные ключевые слова, константы или выражения.

Все современные серверные СУБД (а также многие популярные настольные СУБД) содержат в своем составе утилиты, позволяющие выполнить SQL-предложение и просмотреть результат. В частности, клиентская часть СУБД Oracle содержит в своем составе утилиту SQL Plus, a Microsoft SQL Server — утилиту SQL Query Analyzer. В принципе, можно использовать иную базу данных и любую другую утилиту, способную выполнять в этой базе данных SQL-предложения и отображать результаты (или даже написать свою, используя какое-либо средство разработки — Visual Basic, Delphi, C++Builder и др.). В любом случае, перед тем как начать экспериментировать с базой данных следует, сделать ее резервную копию.

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

SELECTсписок отбираемых полейFROMсписок таблиц, из которых отбираются поля[WHEREусловия отбора] [ORDER BYпорядок сортировки]

SELECT должны содержать слова SELECT и From. Другие ключевые слова, такие как WHERE или ORDER By, являются необязательными.

За ключевым словом SELECT следуют сведения о том, какие именно поля необходимо включить в результирующий набор данных. Звездочка (*) обозначает все поля таблицы, например: SELECT*

Для выбора нескольких полей их имена разделяют знаком запятая.

SELECT CompanyName, ContactName, Contacttrtle

Если выбор данных осуществляется из нескольких таблиц, то имена полей указывают с именами таблиц, из которых они взяты. Имя поля отделяется от имени таблицы знаком точка (SELECT Customers.CompanyName, Shippers.CompanyName).

Для указания имен таблиц, из которых выбираются записи, применяется ключевое слово FROM, например:

Select * From Customers

Этот запрос возвратит все поля из таблицы Customers.

Если в запросе используются более одной таблицы, то имена таблиц разделяют знаком запятая (SELECT Customers.CompanyName, Shippers.CompanyName FROM Customers, Shippers).

Для фильтрации результатов, возвращаемых оператором SELECT, можно использовать предложение WHERE:

WHERE выражение1 [{AND OR} выражение2 [...]]

Например, вместо получения полного списка продуктов можно ограничиться только теми из них, у которых значение поля CategorylD равно 4:

SELECT * FROM Products WHERE CategorylD = 4

В предложении WHERE можно использовать различные выражения, например:

SELECT * FROM Products

WHERE CategorylD = 2 AND SupplierlD > 10

или:

SELECT ProductName, UnitPrice FROM Products WHERE CategorylD = 3 OR UnitPrice < 50

или:

SELECT ProductName, UnitPrice FROM Products WHERE Discontinued IS NOT NULL

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

В предложении WHERE можно использовать один из шести операторов сравнения, определенных в SQL (< <= > >= <>). Помимо перечисленных выше простых операторов сравнения можно использовать и специальные операторы cpaвнения,

Специальные операторы сравнения

ALL Применяется совместно с операторами сравнения при сравнении со списком значений
ANY Применяется совместно с операторами сравнения при сравнении со списком значений
BETWEEN Применяется при проверке нахождения значения интервала внутри заданного (включая его границы)
IN Применяется для проверки наличия значения в списке
LIKE Применяется при заданной маске проверки соответствия значения

Приведем несколько примеров применения этих операторов. Для сопоставления данных с маской применяется ключевое слово LIKE:

SELECT CompanyName, ContaclName FROM Customers WHERE CompanyName LIKE 'M*'

В данной маске символ * (звездочка) заменяет любую последовательность символов, а символ «?» (вопрос) может заменить один любой символ.

Предложение ORDER BY (необязательное) применяется для сортировки результирующего набора данных по одному или нескольким полям. Для определения порядка сортировки используются ключевые слова ASC (по возрастанию) или DESC (по убыванию). По умолчанию данные сортируются по возрастанию. Синтаксис предложения ORDER BY имеет вид:

ORDER BY полеl [(ASC DESC}] ,поле2 [{ASC | DESC}] [,...]

Например, для сортировки списка сотрудников по фамилии и затем по имени следует использовать следующий SQL-запрос:

 

SELECT LastName, FirstName, Title

FROM Employees

ORDER BY LastName, FirstName

 

Если требуется отсортировать данные в убывающем порядке (например, необходим список продуктов в порядке убывания цен), используется ключевое слово DESC:

SELECT ProductName, UnitPrice

FROM Products

ORDER BY UnitPrice DESC