русс | укр

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

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

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

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


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

Выборка данных.


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


Для извлечения записей из таблиц в SQL определен оператор SELECT. С помощью этой команды осуществляется не только операция реляционной алгебры «выборка» (горизонтальное подмножество), но и предварительное соединение (join) двух и более таблиц. Это наиболее сложное и мощное средство SQL, полный синтаксис оператора SELECT имеет вид:

 

SELECT [ALL | DISTINCT] <список_выбора>

FROM <имя_таблицы>, ...

[ WHERE <условие> ]

[ GROUP BY <имя_столбца>,... ]

[ HAVING <условие> ]

[ORDER BY <имя_столбца> [ASC | DESC],... ]

 

Порядок предложений в операторе SELECT должен строго соблюдаться (например, GROUP BY должно всегда предшествовать ORDER BY), иначе это приведет к появлению ошибок.

Мы начнем рассмотрение SELECT с наиболее простых его форм. Этот оператор всегда начинается с ключевого слова SELECT. В конструкции <список_выбора> определяется столбец или столбцы, включаемые в результат. Он может состоять из имен одного или нескольких столбцов, или из одного символа * (звездочка), определяющего все столбцы. Элементы списка разделяются запятыми.

Пример: получить список всех студентов

 

SELECT FIO FROM students;

 

получить список всех полей таблицы students:

 

SELECT * FROM students;

 

В том случае, когда нас интересуют не все записи, а только те, которые удовлетворяют некому условию, это условие можно указать после ключевого слова WHERE. Например, найдем всех студентов, рожденных после 1979:

 

SELECT * FROM students WHERE God_rogdenia > 1979;

 

Допустим теперь, что нам надо найти всех студентов, рожденных в интервале 1979 - 1982 гг. Это условие можно записать в виде:

 

SELECT * FROM students WHERE (God_rogdenia >=1979) AND (God_rogdenia <= 1982);



 

Другой вариант этой команды можно получить с использованием логической операции проверки на вхождение в интервал:

 

SELECT * FROM students WHERE God_rogdenia BETWEEN 1979 AND 1982;

 

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

 

SELECT * FROM students WHERE God_rogdenia IN (1979,1980,1981, 1982);

 

Здесь мы задали в явном виде список интересующих нас значений. Конструкция NOT IN позволяет найти строки, не удовлетворяющие условиям, перечисленным в списке.

Наиболее полно преимущества ключевого слова IN проявляются во вложенных запросах, также называемых подзапросами. Предположим, нам нужно найти всех студентов, живущих в Нижегородской области. Наименования областей хранятся в таблице oblast, информация о студентах - в таблице students. Ключевое слово NOT IN позволяет объединить обе таблицы (без получения общего отношения) и извлечь при этом нужную информацию:

 

SELECT FIO FROM students WHERE id_oblast IN

(SELECT id_oblast FROM oblast

WHERE Obl_name = 'Нижегородская');

 

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

Некоторые задачи нельзя решить с использованием только операторов сравнения. Например, мы хоти найти студента, но не знаем его точного фамилии, знаем только, что она содержит “чинский”. Для решения этой задачи предназначено ключевое слово LIKE, его синтаксис имеет вид:

WHERE <имя_столбца> LIKE <образец>

[ESCAPE <ключевой_символ>]

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

% (знак процента) - заменяет любое количество символов

_ (подчеркивание) - заменяет одиночный символ.

Попробуем найти искомого студента:

 

SELECT FIO FROM students WHERE FIO LIKE ‘%чинский%’;

 

В соответствии с шаблоном СУБД найдет все строки включающие в себя подстроку «чинский». Другой пример: найти всех студентов, ФИО которых начинается со слова «Фро»:

 

SELECT FIO FROM students WHERE FIO LIKE ‘Фро%’;

 

В том случае, когда надо найти значение, которое само содержит один из символов шаблона, используют ключевое слово ESCAPE и <ключевой_символ>. Литерал, следующий в шаблоне после ключевого символа, рассматривается как обычный символ, все последующие символы имеют обычное значение

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



<== предыдущая лекция | следующая лекция ==>
Команды модификации данных. | Вычисления внутри SELECT.


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


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

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

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


 


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

 
 

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

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