русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Выборка данных с использованием предложения SELECT


Дата добавления: 2015-07-09; просмотров: 1214; Нарушение авторских прав


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

Простейший синтаксис SELECT-выражения:

SELECT [DISTINCT] <список атрибутов>

FROM <список таблиц>

[WHERE <условие отбора>]

[ORDER BY <список атрибутов>]

[GROUP BY <список атрибутов>]

[HAVING <условие отбора>]

[UNION предложение SELECT];

 

Ключевое слово SELECT сообщает БД, что данное предложение является запросом на извлечение информации. После ключевого слова SELECT через запятую указываются атрибуты, сведения которых запрашиваются.

После ключевого слова FROMчерез запятую указывается список таблиц, из которых извлекается информация.

Пример: список студентов.

SELECT Фамилия, Имя

FROM Студенты;

 

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

Пример: список городов, в которых проживают студенты.

SELECT Город

FROM Студенты;

 

Для исключения дублирования значений атрибута используется ключевое слово DISTINCT.

Пример:

SELECT DISTINCT Город

FROM Студенты;

 

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

Пример: студенты «Иванов», учащихся на 3 курсе, получающие стипендию.

SELECT *

FROM Студенты

WHERE Фамилия=’Иванов’ AND Курс=3 AND Стипендия IS NOT NULL;

 

При задании логического условия предложения WHERE могут использоваться операторы:



- IN – оператор списка. Справа после него в круглых скобках через запятую указывается список значений на проверку значения поля проверяемых строк.

Пример: вывести список студентов, проживающих в Пуховичах, Барановичах и Осиповичах.

SELECT *

FROM Студенты

WHERE Город IN (‘Пуховичи’, ‘Барановичи’, ’Осиповичи’);

 

- BETWEEN – используется для проверки условия вхождения значения поля в заданный интервал. Граничные значения входят в интервал, с которым происходит сравнение.

Пример: выведем студентов, у которых средний бал в промежутке от 7 до 9.

SELECT Фамилия, Имя

FROM Студенты

WHERE Средний бал BETWEEN 7 AND 9;

 

- LIKE – применим только к символьным полям. Этот оператор просматривает строковое значение полей с целью определения, входит ли заданное в операторе LIKE строка в символьную строку значения проверяемого поля. Для выборки строковых значений по заданному образцу можно применять шаблон искомого образца подстроки:

1 – знак подчеркивания (_) – определяет наличие в указанном месте подстроки одного любого символа.

2 – знак процента (%) – определяет наличие в указанном месте подстроки любого число символов.

Пример: найти человека (забыли Иващенко или Еващенко)

SELECT Фамилия

FROM Студенты

WHERE Фамилия LIKE ‘_ващенко’;

 

- IS NULL– ну тут всё понятно.

 

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

Пример:

SELECT ‘Фамилия’, Surname, ’Имя’, Name, 100

FROM Student;

 

Агрегирующие функции – позволяют получать из таблицы сводную информацию из таблицы, выполняя операции над группой строк. Для задания в SELECT запросе агрегирующих операций используются следующие ключевые слова:

-COUNT – определяет количество строк или значений поля.

- SUM – вычисляет арифметическую функцию.

- AVG –среднее.

- MIN –минимальное.

- MAX –максимальное.

В SELECT запросе агрегирующие функции используются аналогично именам полей, при этом имена полей используются в качестве аргументов этих функций.

Пример: найти среднее значение оценок по всем записям таблицы экзаменационные оценки.

SELECT AVG (Оценка)

FROM Экзаменационные оценки;

 

Предложение GROUP BYпозволяет группировать записи в подмножества, определяемое значениями какого-либо поля, и применять агрегирующие функции уже не ко всем записям таблицы, а отдельно к каждой сформированной группе. В предложении также может участвовать несколько атрибутов, по которым осуществляется группировка, а также указывается порядок разбиения столбцов на группы. В предложении GROUP BY должны быть указаны все выбираемые столбцы, приведенные после ключевого слова SELECT, кроме столбцов, указанных в качестве аргумента в агрегирующей функции. При необходимости часть сформированных групп может быть исключена с помощью предложения HAVING.

Пример: найти максимальную оценку каждого студента.

SELECT ID_Студента, MAX (Оценка)

FROM Экзаменационные оценки

GROUP BY ID_Студента

 

Пример 2: посчитать максимальную оценку каждого студента по каждому предмету

SELECT ID_Студента, ID_Предмета, MAX (Оценка)

FROM Экзаменационные оценки

GROUP BY ID_Студента, ID_Предмета

 

Пример 3: посчитать максимальную оценку каждого студента по каждому предмету> 6

SELECT ID_Студента, ID_Предмета, MAX (Оценка)

FROM Экзаменационные оценки

GROUP BY ID_Студента, ID_Предмета

HAVING MAX (Оценка) > 6;

 

Упорядочение выходных данных осуществляется с помощью предложения ORDER BY, после которого указываются имена атрибутов, используемых для сортировки. Сортировка по возрастанию применяется по умолчанию. При необходимости сортировать атрибут по убыванию, после спецификации столбца указывается слово DESC. В случае сортировки групп полей, предложение ORDER BY помещается после GROUP BY. После названия атрибута можно писать его порядковый номер.

Пример: отсортировать названия предметов таблицы предметы по убыванию.

SELECT Название предмета

FROM Предметы

ORDER BY Название предмета DESC;

 

Язык SQL позволяет использовать один запрос внутри других запросов (т.е. вкладывать запросы друг в друга).

Пример: вывести информацию об оценках студента Петрова.

SELECT *

FROM Экзаменационные оценки

WHERE ID_Студента IN (SELECT ID_Студента

FROM Студенты

WHERE Фамилия=’Петров’);

 

Пример: вывести оценки студентов, проживающих в Минске

SELECT Оценка

FROM Экзаменационные оценки

WHERE ID_Студента IN (SELECT ID_Студент

FROM Студенты

WHERE Город=’Минск’);

Формирование связных подзапросов:

 

При использовании подзапросов во внутреннем запросе можно ссылаться на таблицу, имя которой указано в предложении FROM внешнего запроса. В этом случае такой связанный подзапрос выполняется по одному разу для каждой таблицы.

Пример: выдать сведения обо всех предметах обучения, по которым проводился экзамен 20 января 2012 года.

SELECT *

FROM Предметы AS A

WHERE #20/01/2012# IN (SELECT Дата

FROM Экзаменационные оценки AS B

WHERE A.ID_Предмета=B.ID_Предмета);

 

SELECT A.ID_Предмета, Название, Часы, Семестр

FROM Предметы AS A, Экзаменационные оценки AS B

WHERE A.ID_Предмета=B.ID_Предмета AND B.Дата = #20/01/2012#;

 

Связывать можно еще с помощью команды INNER JOIN

Пример:

SELECT Название, ID_Студента, Оценка

FROM Предметы INNER JOIN Экзаменационные оценки ON Предметы.ID_Предмета=Экзаменационные Оценки.ID_предмета

Пример 2: найти студентов, получивших стипендию больше средней на курсе.

SELECT Фамилия

FROM Студенты AS A

WHERE A.Стипендия> (SELECT AVG (Стипендия)

FROM Студенты AS B

WHERE A.Курс=B.Курс);

SELECT Фамилия

FROM Студенты A, (SELECT Курс, AVG (Стипендия) AS F

FROM Студенты B

GROUP BY Курс) С

WHERE A.Стипендия >C. F AND A.Курс=C.Курс;


 



<== предыдущая лекция | следующая лекция ==>
Элементы языка SQL | InterBase


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.007 сек.