Лекции по дисциплине «Базы данных»
Вид материала | Лекции |
СодержаниеУправление данными Раздел SELECT |
- Курсовая работа по дисциплине «Базы данных» на тему: «Разработка базы данных для учета, 154.05kb.
- 1 научиться создавать таблицу базы данных в режиме таблицы, 54.71kb.
- Ms access Создание базы данных, 34.31kb.
- Цели и тематика курсовой работы по дисциплине «Базы данных», 61.1kb.
- Лекция 2 10. Полнотекстовые базы данных, 133.46kb.
- Практическая работа № «Создание базы данных», 21.96kb.
- Примерная рабочая программа по дисциплине: базы данных, 104.62kb.
- Информационные системы, использующие базы данных: оборудование, программное обеспечение,, 102.98kb.
- Конспект лекций по курсу "базы данных" (Ч., 861.92kb.
- Методические указания по лабораторным занятиям По дисциплине Базы данных Для специальности, 364.77kb.
УПРАВЛЕНИЕ ДАННЫМИ
Извлечение данных — команда SELECT
Основным инструментом выборки данных в языке SQL является команда SELECT. С помощью этой команды можно получить доступ к данным, представленным как совокупность таблиц практически любой сложности.
Чаще всего используется упрощенный вариант команды SELECT, имеющий следующий синтаксис:
SELECT <Список_выбора>
[INTO <Новая_таблица>]
FROM <Исходная_таблица>
[WHERE <Условие_отбора>]
[GROUP BY <Ключи группировки>]
[HAVING <Условие_отбора>]
[ORDER BY <Ключи_сортировки> [ASC | DESC]]
Инструкция SELECT разбивается на отдельные разделы, каждый из которых имеет свое назначение. Из приведенного синтаксического описания видно, что обязательными являются только разделы SELECT и FROM, а остальные разделы могут быть опущены. Полный список разделов следующий:
SELECT
INTO
FROM
WHERE
GROUP BY
HAVING
UNION
ORDER BY
COMPUTE
FOR
OPTION
Раздел SELECT
Основное назначение раздела SELECT — задание набора столбцов, возвращаемых после выполнения запроса, т. е. внешнего вида результата. В простейшем случае возвращается столбец одной из таблиц, участвующих в запросе. В более сложных ситуациях набор значений в столбце формируется как результат вычисления выражения. Такие столбцы называются вычисляемыми и по умолчанию им не присваивается никакого имени. Пользователь может указать для столбца, возвращаемого после выполнения запроса, произвольное имя. Такое имя называется псевдонимом (alias). Наиболее часто это требуется при работе с разделом INTO, в котором каждый из возвращаемых столбцов должен иметь имя, и это имя должно быть уникально.
Синтаксис раздела SELECT следующий:
SELECT [ALL | DISTINCT]
[TOP n [PERCENT] [WITH TIES]]
< Список_выбора >
Ключевые слова ALL| DISTINCT
При указании ключевого слова ALL в результат запроса выводятся все строки, удовлетворяющие сформулированным условиям, тем самым разрешается включение в результат одинаковых строк. Параметр ALL используется по умолчанию.
Если в запросе SELECT указывается ключевое слово DISTINCT, то в результат выборки не будет включаться более одной повторяющейся строки. Таким образом, каждая возвращенная строка будет уникальной.
Ключевое слово TOP n [PERCENT] [WITH TIES]
Использование ключевого слова ТОР n, где n — числовое значение, позволяет отобрать в результат не все строки, а только n первых. При этом выбираются первые строки результата выборки, а не исходных данных. Поэтому набор строк в результате выборки при указании ключевого слова ТОР может меняться в зависимости от порядка сортировки. Если в запросе используется раздел WHERE, то ключевое слово ТОР работает с набором строк, возвращенных после применения логического условия, определенного в разделе WHERE.
Продемонстрируем использование ключевого слова ТОР:
SELECT TOP 5 * FROM Студенты
Из таблицы Студенты было выбрано 5 первых строк.
Можно также выбирать не фиксированное количество строк, а определенный процент от всех строк, удовлетворяющих условию. Для этого необходимо добавить ключевое слово PERCENT:
SELECT TOP 10 PERCENT FROM Студенты
Если указанное количество процентов строк представляет собой нецелое число, то всегда выполняется округление в большую сторону.
При указании вместе с предложением ORDER BY ключевого слова WITH TIES в результат будут включены строки, совпадающие по значению колонки сортировки с последними выведенными строками запроса SELECT TOP n [PERCENT].
Использование ключевого слова WITH TIES в следующем примере позволит обеспечить выдачу в ответ на запрос информации обо всех студентах первой по порядку группы:
SELECT TOP 10 PERCENT WITH TIES *
FROM Студенты
ORDER BY Номер_группы
Предложение <Список_выбора>
Синтаксис предложения <Список_выбора> следующий:
<Список выбора>::=
{*
|{<Имя_таблицы> | <Псевдоним_таблицы>}.*
|{<Имя_столбца> | <Выражение>}
[[AS] <Псевдоним_столбца>]
|<Псевдоним_столбца> = <Выражение>
} [,…,n]
Символ «*» означает включение в результат всех столбцов, имеющихся в списке таблиц раздела FROM.
Если в результат не нужно включать все столбцы всех таблиц, то можно явно указать имя объекта, из которого необходимо выбрать все столбцы (<Имя_таблицы>.* или <Псевдоним_таблицы>.*).
Отдельный столбец таблицы в результат выборки включается явным указанием имени столбца (параметр <Имя_столбца>). Столбец должен принадлежать одной из таблиц, указанных в разделе FROM. Если столбец с указанным именем имеется более чем в одном источнике данных, перечисленных в разделе FROM, то необходимо явно указать имя источника данных, к которому принадлежит столбец в формате <Имя_таблицы>.<Имя_столбца>. В противном случае будет выдано сообщение об ошибке.
Например, попробуем выбрать данные из столбца ID_Дисциплина, который имеется в таблицах «Дисциплина» и «Учебный_план»:
SELECT ID_Дисциплина, Наименование, Семестр
FROM Дисциплина, Учебный_план
В ответ будет выдано сообщение об ошибке, указывающее на некорректное использование имени ID_Дисциплина.
То есть в этом случае необходимо явно указать имя источника данных, которому принадлежит столбец, например:
SELECT Дисциплина.ID_Дисциплина, Наименование, Семестр
FROM Дисциплина, Учебный план
Столбцам, возвращаемым как результат выполнения запроса, могут быть присвоены псевдонимы. Псевдонимы позволяют изменить имя исходного столбца или поименовать столбец, содержимое которого получено как результат вычисления выражения. Имя псевдонима указывается с помощью параметра [AS] <Псевдоним_столбца>. Ключевое слово AS необязательно при задании псевдонима.
В общем случае не требуется уникальности имен столбцов результата выборки, поэтому разные столбцы могут иметь одинаковые имена или псевдонимы.
Столбцы в результате выборки могут быть не только копией столбца одной из исходных таблиц, но и формироваться на основе вычисления выражения. Такой столбец в списке выбора задается с помощью конструкции <Выражение> [[AS] <Псевдоним_столбца>]. Выражение при этом может содержать константы, имена столбцов, функции, а также их комбинации. Дополнительно столбцу, формируемому на основе вычисления выражения, можно присвоить псевдоним, указав его с помощью параметра [AS] <Псевдоним_столбца>. По умолчанию вычисляемый столбец не имеет имени.
Другой способ формирования вычисляемого столбца состоит в использовании конструкции со знаком равенства: <Псевдоним_столбца> = <Выражение>. Единственным отличием этого способа от предыдущего является необходимость обязательного задания псевдонима. В простейшем случае выражение является именем столбца, константой, переменной или функцией. Если в качестве выражения выступает имя столбца, то получаем еще один способ задания псевдонима для столбца.
Рассмотрим следующий пример. Пусть для таблицы «Студенты» необходимо построить запрос, представляющий фамилию, имя и отчество в одной колонке. Используя операцию конкатенации (сложения) символьных строк и значение ФИО в качестве псевдонима столбца, построим запрос:
SELECT ТОР 10 Фамилия + ' ' + Имя + ' ' + Отчество as ФИО, Номер_Группы
FROM Студенты