Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SQL.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
327.17 Кб
Скачать

Объявление with owneraccess option

Не обязательно. В многопользовательской среде с защитой на уровне пользователя позволяет выполнить запрос с теми же правами, которыми обладает владелец запроса. Формат

sqlstatement WITH OWNERACCESS OPTION

Следующий запрос позволяет посмотреть Salary даже пользователю, не имеющему доступа к таблице Employees, т.к. работает с правами владельца запроса:

SELECT LastName, FirstName, Salary FROM Employees ORDER BY LastName WITH OWNERACCESS OPTION;

Часто используется для ограничения доступа к полям: пользователь не имеет доступа к таблице (в отличие от владельца запроса), но может посмотреть/изменить указанные в запросе поля. Если пользователь не имеет права создавать или менять таблицы, запрос с WITH OWNERACCESS OPTION позволит ему это сделать. Использование этого объявления равносильно установке свойства RunPermissions = Owner в окне свойств конструктора запросов, а отсутствие соответствует RunPermissions = User.

Объявление WITH OWNERACCESS OPTION требует доступа к файлу рабочих групп (System.mdw)

Выражение where

Указывает, на какие записи таблиц, перечисленных в выражении FROM действуют операторы SELECT, UPDATE или DELETE. Формат

SELECT fieldlist FROM tableexpression WHERE criteria

Оператор SELECT, содержащий выражение WHERE, имеет следующие части:

Часть

Описание

fieldlist

Имя выводимого поля/полей с псевдонимами и предикатами ALL, DISTINCT, DISTINCTROW или TOP и т.п.

tableexpression

Имя таблицы/таблиц с данными

criteria

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

WHERE не обязательно, но если указано, следует за FROM. Microsoft Jet отбирает записи, удовлетворяющие условию в выражении WHERE. Например, можно выбрать всех сотрудников отдела продаж (WHERE Dept = 'Sales') или всех клиентов возрастом от 18 до 30 (WHERE Age Between 18 And 30). Если оно не указано, выбираются все записи. Если указано несколько таблиц и нет выражения WHERE или JOIN, формируется декартово произведение таблиц.

Если при объединении данных из нескольких таблиц не используется выражение JOIN, построенный на основе запроса набор записей (Recordset) будет необновляемым.

WHERE аналогично HAVING. Оно указывает, какие записи будут выбраны, так же как HAVING указывает, какие записи будут выведены при группировании (GROUP BY). Выражение WHERE используется, чтобы исключить ненужные записи из запроса.

В выражении WHERE можно использовать до 40 логических выражений, объединенных операторами And или Or. Имена полей, содержащие пробелы или знаки пунктуации, заключаются в прямые скобки: SELECT [Customer's Favorite Restaurant]. Дата должна быть указана в американском формате – месяц/число/год, например 5/10/96 – 10 мая 1996 – и заключена в #:

SELECT * FROM Orders WHERE ShippedDate = #5/10/96#;

Можно использовать функцию DateValue, учитывающую региональные настройки:

SELECT * FROM Orders WHERE ShippedDate = DateValue('5/10/96');

– United States

SELECT * FROM Orders WHERE ShippedDate = DateValue('10/5/96');

– United Kingdom.

Для полей типа GUID используется следующий формат:

WHERE ReplicaID = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}

Условия в выражении WHERE те же, что используются в конструкторе запросов.

Выбор всех служащих по фамилии King:

SELECT LastName, FirstName FROM Employees WHERE LastName = 'King';

Выбор всех служащих с фамилией, начинающейся на S:

SELECT LastName, FirstName FROM Employees WHERE LastName Like 'S*';

Выбор товаров с ценой от $20 до $50 включительно:

SELECT ProductName, UnitPrice FROM Products WHERE (UnitPrice >=20.00 And UnitPrice <= 50.00);

Выбор товаров с названиями между "Cha" и "Out" включительно (не возвращает "Outback Lager" т.к. "Outback Lager" «больше» "Out"):

SELECT ProductName, UnitPrice FROM Products WHERE ProductName Between 'Cha' And 'Out';

Выбор заказов за перыую половину 1995 года:

SELECT OrderID, OrderDate FROM Orders WHERE OrderDate Between #1-1-95# And #6-30-95#;

Выбор заказов, доставленных в Idaho, Oregon и Washington:

SELECT OrderID, ShipRegion FROM Orders WHERE ShipRegion In ('ID', 'OR', 'WA');

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]