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

Решение

DELETE Количествочасов

FROM [Академичекая справка]

WHERE ((([Академичекая справка].Количествочасов) Is Null));

Инструкция insert (запрос на добавление)

Вставляет одну или несколько новых строк в указанную таблицу или запрос. Когда используется предложение VALUES, вставляется единственная строка. Если вы используете инструкцию выбора, то число вставляемых строк равно числу строк, возвращаемых инструкцией выбора.

Синтаксис:

INSERT INTO имя-таблицы [({ имя-столбца},...)] [IN <спецификация-истючника-данных>] {VALUES ({литерал}, ...) | инструкция-выбора}

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

Если предложения IN включены в инструкцию INSERT INTO и в предложение FROM инструкции выбора, то оба предложения IN должны ссылаться на одну и ту же внешнюю базу данных.

Если набор вставляемых значений формируется с помощью инструкции выбора, то имя таблицы, в которую осуществляется вставка, не должно использоваться в предложении FROM инструкции SELECT. Имя таблицы, в которую осущест­вляется вставка, не может использоваться и в подчиненном запросе.

Так как Microsoft Access позволяет задавать ограничения на значения столбцов, условие на значения для таблицы, проверку целостности данных, то запрос будет выполняться только в том случае, когда вставляемые данные удовлетворяют всем этим условиям.

Пример №21. Создайте таблицу СТУДЕНТ с полями №зк, ФИОСтудента, Фак.

Добавьте из таблицы Академическая справка записи, содержащие Фак= «ЭКФ»

Решение

INSERT INTO студент ( №зк, ФИОСтудента, фак )

SELECT distinct [Академичекая справка].№зк, [Академичекая справка].фиоСтудента, [Академичекая справка].фак

FROM [Академичекая справка]

WHERE ((([Академичекая справка].фак)="ЭКФ"));

Инструкция select ... Into (запрос на создание таблицы)

Создает новую таблицу со значениями, выбранными из одной или нескольких таблиц. Запросы на создание таблицы особенно полезны для сохранения наборов записей некоторых запросов или для создания таблиц с итогами в конце отчетного периода.

Синтаксис:

SELECT [All | DISTINCT | DISTINCTROW | TOP число

[PERCENT]] список-выбора INTO имя-нов ой-таблицы

[IN <спецификация-источника-данных>] FROM {{ имя-таблицы [[AS] псевдоним ] |

имя-запроса-на-выборку [[AS] псевдоним ]} | ктаблица-объединения^ , ... [IN <спецификация-источника-данных>] [WHERE условие-отбора] [GROUP BY имя-столбца, . . . ] [HAVING условие-отбора] [UNION [ALL] инструкция-выбора] [ORDER BY {имя-столбца [ASC | DESC]},... | IN <"имя-б азы-данных-ист очника"> <[строка-подключения

-ис т о чника -да иных ] > [WITH

OWNERACCESS OPTION];

где список-выбора есть

{* | {выражение [AS имя-столбца-выходной-таблицы] |

имя-таблицы. * |

имя-запроса.* | псевдоним. *},...}

а <таблица-обьединения> есть

({имя-таблицы [[AS] псевдоним ] |

имя-запроса-на-выборку [[AS] псевдоним ] \

<та блица -объ единения>} {INNER | LEFT | RIGHT} JOIN {имя-таблицы [[AS] псевдоним ] \имя-запроса-на-выборку [[AS] псевдоним ] |<таблица-объединения>} ON <условие-объединения>)

Пояснения: Инструкция SELECT ... INTO создает новую таблицу с именем имя-новой-таблицы. Если таблица с таким именем уже существует, то Access спрашивает пользователя, нужно ли удалить существующую таблицу перед созданием новой. Столбцы новой таблицы наследуют характеристики типов данных тех столбцов, которые содержатся в списке выбора.

При задании имен столбцов в списке выбора, предложении WHERE и в подчиненных предложениях вместо полных имен таблиц или запросов можно использовать их псевдонимы. Псевдоним обязателен при объединении таблицы или запроса с самим собой, чтобы указать, на какую копию таблицы или запроса вы ссылаетесь в списке выбора, условии объединения или условии отбора. Если имя таблицы или запроса совпадает с зарезервированным словом языка SQL (например, Order), то его следует заключить в квадратные скобки.

Когда вы перечисляете несколько таблиц или запросов и не указываете условия объединения, то в качестве источника данных используется декартово (прямое) произведение всех таблиц. Например, FROM Table A, TableB заставляет Access считать областью поиска все строки из таблицы ТаЫеА, присоединенные к каждой из строк таблицы TableB. В этом случае число логических записей, обрабатываемых Access, будет равняться числу строк в таблице ТаЫеА, умно­женному на число строк в таблице TableB. В качестве результата Access возвратит записи, для которых условия отбора, определенные в предложениях WHERE и HAVING, примут значение Истина.

С помощью предикатов ALL, DISTINCT, DISTINCTROW, TOP n или TOP n PERCENT вы можете определить, какие строки Access должен включить в выходной набор записей. Предикат ALL включает все строки, которые удовлет­воряют условиям отбора, в том числе и строки, которые могут оказаться дубликатами. Предикат DISTINCT требует, чтобы Access возвратил только строки, отличающиеся от всех остальных. Набор записей запроса, который использует предикат ALL или DISTINCT, является не обновляемым (вы не можете изменять значения полей).

DISTINCTROW (по умолчанию) требует, чтобы Access возвратил только такие строки, в которых конкатенация первичных ключей из всех таблиц, участвую­щих в формировании выходных столбцов, является уникальной. В зависимости от того, какие столбцы представлены в наборе записей запроса, вы иногда можете увидеть повторяющиеся строки, однако каждая строка в выходной таблице извлечена из уникальной (DISTINCT) комбинации строк (ROWS) базовых таблиц. Если вы хотите, чтобы результирующий набор содержал только первые п или первые п процентов (PERCENT) записей, используйте предикат ТОР п или TOP n PERCENT. Если вы используете ключевое слово PERCENT.

Пример № 23. Создайте таблицу Успеваемость за второй семестр на основе таблицы Академическая справка. После выполнения запроса просмотрите созданную таблицу.