русс | укр

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

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

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

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


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

Вычисления внутри SELECT.


Дата добавления: 2013-12-24; просмотров: 1749; Нарушение авторских прав


Выборка из нескольких таблиц.

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

ФИО Группа Год рождения
     
     

Для этого СУБД предварительно должна выполнить слияние таблиц students и groups, а только затем произвести выборку из полученного отношения.

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

 

SELECT students.FIO, students.God_rogdenia, groups.Group_name

FROM students, groups

WHERE students.id_group = groups. id_group;

 

А вот пример, где одновременно задаются условия и слияния, и выборки (результат предыдущего запроса ограничивается студентами, рожденными до 1982 года):

 

SELECT students.FIO, students.God_rogdenia, groups.Group_name

FROM students, groups

WHERE (students.id_group = groups. id_group)

AND (students. God_rogdenia <= 1982);

 

Следует обратить внимание на то, что когда в разных таблицах присутствуют одноименные поля, то для устранения неоднозначности перед именем поля указывается имя таблицы и знак «.» (точка). (Хорошее правило: имя таблицы указывать всегда!)

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



 

SELECT students.FIO, students.God_rogdenia, groups.Group_name, student_adres.gorod FROM students, groups, student_adres

WHERE (students.id_group = groups. id_group)

AND (students. God_rogdenia <= 1982)

AND (student_adres.id = students.id);

SQL позволяет выполнять различные арифметические операции над столбцами результирующего отношения. В конструкции <список_выбора> можно использовать константы, функции и их комбинации с арифметическими операциями и скобками. Например, чтобы узнать возраст студентов можно выполнить команду:

 

SELECT FIO, 2003 - God_rogdenia FROM students;

 

В арифметических выражения допускаются операции сложения (+), вычитания (-), деления (/), умножения (*), а также различные функции (COS, SIN, ABS - абсолютное значение и т.д.). Также в запрос можно добавить строковую константу:

 

SELECT ‘Студент ’, FIO, ‘, возраст ’, 2003 - God_rogdenia FROM students;

 

В SQL также определены так называемые агрегатные функции, которые совершают действия над совокупностью одинаковых полей в группе записей. Среди них:

§ AVG(<имя поля>) - среднее по всем значениям данного поля

§ COUNT(<имя поля>) или COUNT (*) - число записей

§ MAX(<имя поля>) - максимальное из всех значений данного поля

§ MIN(<имя поля>) - минимальное из всех значений данного поля

§ SUM(<имя поля>) - сумма всех значений данного поля

Следует учитывать, что каждая агрегирующая функция возвращает единственное значение. Примеры: определить самого старшего студента

 

SELECT FIO, MIN(God_rogdenia) FROM students;

 

подсчитать количество студентов:

 

SELECT COUNT(*) FROM students;

 

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

 

SELECT COUNT(*) FROM students WHERE God_rogdenia=1981;



<== предыдущая лекция | следующая лекция ==>
Выборка данных. | Сортировка данных.


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


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

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

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


 


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

 
 

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

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