Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Подготовка к ПР_2.1.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.4 Mб
Скачать

Материал для подготовки к практической работе по теме:

«Создание простых запросов на выборку на языке SQL»

Задания:

  1. Внимательно изучите предложенный теоретический материал.

  2. Письменно ответьте на контрольные вопросы, список которых приведен в конце документа.

  3. Реализуйте на практике все специально выделенные практические примеры (отмечены символом ).

  4. Решите задачи, предложенные для самостоятельного выполнения (в конце документа).

Теоретический материал для изучения:

Введение

Предположим, что реляционная база данных, состоящая из одной или нескольких таблиц, создана и вы к ней уже подключились. В этом случае типичной практической задачей является получе­ние (извлечение) нужных данных. Например, может потребо­ваться просто просмотреть все содержимое какой-либо таблицы из базы данных или некоторых ее полей. При этом, возможно, вы захотите получить не все записи, а лишь те, которые удовлетво­ряют заданным условиям. Однако чаще возникает более интерес­ная и сложная задача извлечения данных сразу из нескольких таблиц. Данные из двух и более таблиц необходимо скомпоно­вать в одну таблицу, чтобы представить ее для обозрения, анали­за или последующей обработки.

В результате выполнения выражения на языке SQL (SQL-выражения) создается таблица, которая либо содержит запрошенные данные, либо пуста, если данных, соответствующих запросу, не на­шлось. Эта таблица, называемая еще результатной, существует толь­ко во время сеанса работы с базой данных и не присоединяется к числу таблиц, входящих в базу данных. Иначе говоря, она не хра­нится на жестком диске компьютера подобно исходным таблицам базы данных, и поэтому ее еще называют виртуальной.

Выборка данных из нескольких таблиц, их обработка, а также использование подзапросов (запросов, которые нужны в качестве промежуточных для получения окончательного результата) отно­сятся к теме сложных запросов. Сейчас остановимся на за­даче выборки данных из одной таблицы при относительно простых условиях отбора, группировки и сортировки записей. Тем не менее, операторы SQL, применяемые в простых запросах на выборку данных, используются и в сложных запросах, на­правленных не только на получение, но и на изменение данных.

Все SQL-выражения, предназначенные для выборки данных из существующих таблиц базы данных, начинаются с ключевого сло­ва (оператора) SELECT (выбрать). Для уточнения запроса служат дополнительные операторы, такие как FROM (из), WHERE (где) и др. Сейчас важно понять и запомнить, что результатом выполне­ния запроса, сформулированного в виде SQL-выражения, является таблица, содержащая запрошенные данные. Эта таблица виртуаль­на в том смысле, что только представляет результаты запроса и не принадлежит к базе данных. Замечу также, что SQL позволяет из­менять существующую базу данных— создавать и добавлять к ней новые таблицы, а также модифицировать и удалять уже су­ществующие.

!!! Для дальнейшей работы откройте файл Учебной базы данных!!!

1. Основное sql-выражение для выборки данных

Чтобы выбрать из таблицы базы данных требуемые записи, сле­дует, по крайней мере, указать столбцы и имя этой таблицы. Это требование было бы естественно сформулировать так:

ВЫБРАТЬ такие-то столбцы ИЗ такой-то таблицы;

Разумеется, вам может потребоваться выбрать не все записи таб­лицы, а лишь те, которые отвечают некоторому условию. На практике именно так и бывает. Отложим пока рассмотрение формирования условий отбора записей, а сконцентрируем вни­мание на выборке всех записей из заданной таблицы. SQL-запрос к базе данных, результатом которого является таблица, получен­ная из указанной в запросе, но отличающаяся от нее тем, что со­держит лишь указанные столбцы, выглядит так:

SELECT списокСтолбцов FROM списокТаблиц;

Операторы select (выбрать) и from (из) в SQL-выражении, опре­деляющем выборку данных, являются обязательными, т. е. ни один из них нельзя пропустить. SQL-выражение, содержащее только эти операторы, является основным выражением, опреде­ляющим запрос к базе данных на выборку данных. В результате выполнения этого запроса создается виртуальная таблица, со­держащая указанные столбцы и все записи исходной таблицы.

Примечание

Оператор select осуществляет проекцию отношения, указанного в выражении from, на заданное множество атрибутов (столбцов), указанное в выражении select.

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

Список столбцов — это перечень имен столбцов, разделенных запятой, как они определены в таблице, указанной в выражении from. Разумеется, можно указать все или только некоторые столбцы. Если вы хотите получить все столбцы таблицы, то вме­сто списка столбцов достаточно указать символ (*). Если в выра­жении from указано несколько таблиц, то в выражении select имена столбцов должны содержать префиксы, указывающие, к какой именно таблице они относятся. Префикс отделяется от имени столбца точкой. Например, выражение Клиенты.Адрес оз­начает столбец Адрес ИЗ Таблицы Клиенты.

Тривиальный запрос, возвращающий все данные (все столбцы и все записи) из одной таблицы, формулируется так:

SELECT * FROM имяТаблицы;

Основное SQL-выражение может быть дополнено другими опе­раторами, уточняющими запрос. Чаще всего употребляется оператор where (где), с помощью которого можно задать условие выборки запи­сей (строк таблицы). Таким образом, если выражение select за­дает столбцы таблицы, указанной в операторе from, то выраже­ние where определяет записи (строки) из этой таблицы. Выражение, определяющее запрос на выборку данных, находя­щихся в некоторой таблице, имеет следующий вид:

SELECT * FROM имяТаблицы WHERE условиеПоиска;

Условие, указанное в выражении where, принимает одно из двух логических значений: true (ИСТИНА) или false (ЛОЖЬ). Дру­гими словами, это логическое выражение. При обработке запроса условие проверяется для каждой записи таблицы. Если оно ис­тинно для данной записи, то она выбирается и будет представлена в результатной таблице. В противном случае запись не выби­рается и в результатную таблицу не попадает. Если выражение where не указано в SQL-выражении, то результатная таблица бу­дет содержать все записи из таблицы, заданной в выражении from. Таким образом, выражение where определяет фильтр запи­сей. Фильтр что-то пропускает в результатную таблицу, а что-то отбрасывает.

Сразу за оператором select до списка столбцов можно применять ключевые слова all (все) и distinct (отличающиеся), которые указывают, какие записи представлять в результатной таблице. Если эти ключевые слова не используются, то подразуме­вается, что следует выбрать все записи, что также соответствует применению ключевого слова all. В случае использования distinct в результатной таблице представляются только уникаль­ные записи. При этом если в исходной таблице находятся несколь­ко идентичных записей, то из них выбирается только первая.

Примечание

В Microsoft Access кроме ключевых слов all и distinct после select можно использовать ключевое слово тор с дополнитель­ными параметрами. Выражение тор n требует, чтобы в выборку данных попали только первые п записей, удовлетворяющих за­данному условию запроса. Это ограничение условия поиска нуж­ных записей, формулируемого в выражении where. Если исход­ная таблица очень большая, то distinct может ускорить получение ответа.

В Access можно использовать и выражение тор n percent, что­бы указать, что n выражается в процентах от общего количества записей. Не трудно понять, что использование такого выражения направлено не на ускорение поиска, а на получение таблицы, из­бавленной от лишних данных.

Заголовки столбцов в результатной таблице можно переопреде­лить по своему усмотрению, назначив для них так называемые псевдонимы. Для этого в списке столбцов после соответствующе­го столбца следует написать выражение вида: as заголовок_столбца. Например:

SELECT ClientName AS Клиент, Address AS Адрес FROM Клиенты;

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

SELECT Т1.Имя, Т2.Адрес FROM Клиенты Т1, Контакты Т2;