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

SQL для Microsoft Access 97

(Курс молодого бойца)

SQL для Microsoft Access 97 1

Выборка данных 1

Оператор SELECT 2

Выражения SQL 2

Выражение FROM 3

Предикаты ALL, DISTINCT, DISTINCTROW, TOP 7

Объявление WITH OWNERACCESS OPTION 9

Выражение WHERE 9

Выражение ORDER BY 13

Выражение GROUP BY 14

Выражение HAVING 14

Оператор UNION 15

Оператор TRANSFORM 15

Выражение PROCEDURE 17

Объявление PARAMETERS 18

Изменение данных 19

Оператор UPDATE 19

Оператор INSERT INTO 20

Оператор DELETE 21

Изменение структуры 21

Оператор SELECT...INTO 21

Оператор CREATE TABLE 22

Выражение CONSTRAINT 23

Оператор ALTER TABLE 23

Оператор CREATE INDEX 25

Оператор DROP 25

Агрегатные функции 26

Функция Count 26

Функция Avg 27

Функция Sum 27

Функции Var и VarP 28

Функции StDev и StDevP 28

Функции Min, Max 29

Функции First, Last 30

Structured Query Language – язык построения запросов для работы с данными, хранящимися в виде таблиц. Он позволяет

  • Создавать и удалять таблицы и индексы;

  • Менять структуру таблиц;

  • Вводить и удалять данные;

  • Выбирать и группировать имейщиеся данные.

Основная особенность SQL по сравнению с другими языками в том, что один оператор выполняет сразу несколько действий, очередность которых не описана им в явной форме. Отсюда (иногда) – неожиданные результаты.

Наиболее частое (и сложное) – выборка имеющихся данных. С этого и начнем.

Выборка данных

Запросы на выборку создаются с помощью операторов SELECT (выбор записей из существующих таблиц), UNION (объединение нескольких таблиц/запросов в одну) и TRANSFORM (создание сводной таблицы – перекрестный запрос).

«Основным» является оператор SELECT. В операторе SELECT сначала формируется источник (FROM), производится фильтрация (WHERE) и формируются записи из указанных полей с учетом предиката. Если используются агрегатные функции, они формируют записи с учетом группировки (GROUP BY) и сформированные записи фильтруются (HAVING). Полученный набор упорядочивается (ORDER BY).

Оператор select

Возвращает набор записей (работает через Microsoft Jet). Формат:

SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, ...]]} FROM tableexpression [, ...] [IN externaldatabase] [WHERE... ] [GROUP BY... ] [HAVING... ] [ORDER BY... ] [WITH OWNERACCESS OPTION]

Оператор SELECT имеет следующие части:

Часть

Описание

predicate

Один из предикатов ALL, DISTINCT, DISTINCTROW или TOP. По умолчанию ALL

*

Все поля из указанной таблицы/таблиц или запроса

table

Имя таблицы, из которой выбираются записи

field1, field2

Имена полей, которые нужно вывести. Выводятся в порядке их перечисления

alias1, alias2

Имена столбцов, используемые вместо исходных названий

tableexpression

Имя таблицы/таблиц или запроса – источника записей

externaldatabase

Имя базы, содержащей таблицу/таблицы или запрос. По умолчанию текущая база

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

Обычно SELECT – первое слово в запросе, минимальный формат имеет вид

SELECT fields FROM table

Для выбора всех полей таблицы (источника) используется *

SELECT * FROM Employees;

Если имя поля встречается в нескольких таблицах, перечисленных в выражении FROM, перед ним указывается имя нужной таблицы, отделенное точкой. Например если поле Department имеется и в таблице Employees, и в таблице Supervisors, запрос, выбирающий Department из Employees и SupvName из Supervisors имеет вид

SELECT Employees.Department, Supervisors.SupvName FROM Employees INNER JOIN Supervisors WHERE Employees.Department = Supervisors.Department;

При создании объекта Recordset Microsoft Jet использует название поля в качестве имени объекта Field. Для изменения имени Field используется служебное слово AS. В следующем примере полю BirthDate присваивается псевдоним Birth:

SELECT BirthDate AS Birth FROM Employees;

При использовании агрегатной функции или запроса, возвращающего неоднозначное или дублирующееся имя объекта Field, необходимо использовать AS для введения однозначно определенного псевдонима:

SELECT COUNT(EmployeeID) AS HeadCount FROM Employees;

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

В окне запросов Microsoft Access можно посмотреть данные запроса в режиме таблицы. Имена столбцов – названия полей (field1, field2). Для отображения других названий используется служебное слово AS. Его использование эквивалентно установке свойства Alias в конструкторе запросов.

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