русс | укр

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

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

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

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


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

Язык запросов SQL. Команда select и структура запрос на выборку

Язык SQL – Structured Query Language – был разработан в 1974 г. в ходе работы над System R. В период становления технологий баз данных SQL был не единственным и, возможно, не самым лучшим языком запросов  реляционных баз данных, но со временем стал стандартом в этой области. Такая "победа" языка SQL обусловлена, во-первых, ориентацией на него первых и ведущих производителей коммерческих СУБД, во-вторых,  тем, что уже в своей версии для System R он был достаточно хорошо развит не только как язык запросов, но и обеспечивал в полном объеме описание и управление данными. Коммерческие продукты далеко не сразу обеспечили свойства исходной версии SQL в полном объеме.

SQL является реляционно-полным языком в том смысле, что он обеспечивает все операции реляционной алгебры. Но вместе с тем, в самих концепциях SQL есть и некоторые отступления от реляционной теории. Нельзя строго говорить, что SQL основывается на реляционной алгебре или реляционном исчислении. По нашему субъективному впечатлению, в нем больше от реляционной алгебры, но некоторые свойства SQL напрямую происходят из реляционного исчисления.

Разработкой стандартов языка SQL занимается Американский национальный комитет по стандартизации (ANSI) при поддержке Международной Организации  Стандартов (ISO). Стандарты SQL принимались в 1987 г. (уточнен в 1989 г.), в 1992 г и в 1999 г. Однако даже ведущие СУБД сертифицированы только на уровень "Entry" стандарта SQL-92. В реальных СУБД применяются "диалекты" SQL. Процесс стандартизации динамичный и трудный – то, что сегодня является диалектом одной СУБД, завтра может стать стандартом. Язык SQL состоит из трех подмножеств:

  • языка определения данных;
  • языка манипулирования данными;
  • языка управления данными.

Различия в диалектах разных СУБД для этих подмножеств незначительны. Язык управления данными более подвержен диалектным различиям.

Предложение SELECT

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

  • самостоятельная команда на получение  и  вывод  строк  таблицы, сформированной  из столбцов и строк одной или нескольких таблиц
  • элемент  WHERE- или HAVING-условия ("вложенный запрос");
  • фраза выбора в командах CREAT VIEW, DECLARE CURSOR или INSERT;
  • средство присвоения глобальным  переменным  значений  из  строк сформированной таблицы (INTO-фраза).

Здесь будут рассмотрены только  две  первые функции  предложения  SELECT.
Предложение SELECT (выбрать) имеет следующий формат:
подзапрос [UNION [ALL] подзапрос] ...
[ORDER BY {[таблица.]столбец | номер_элемента_SELECT} [[ASC] | DESC]
[,{[таблица.]столбец | номер_элемента_SELECT} [[ASC] | DESC]] ...;
и позволяет объединить (UNION) а затем упорядочить (ORDER BY)  результаты выбора данных, полученных с помощью нескольких "подзапросов". При этом упорядочение  можно  производить  в  порядке  возрастания  -  ASC или убывания - DESC
Подзапрос позволяет указать условия для выбора нужных данных и (если требуется) их обработки

  • SELECT(выбрать) данные из указанных столбцов и (если необходимо) выполнить перед выводом их преобразование в соответствии с указанными выражениями и (или) функциями
  • FROM(из) перечисленных таблиц, в которых расположены эти столбцы
  • WHERE(где) строки из указанных таблиц должны удовлетворять  указанному перечню условий отбора строк
  • GROUP BY(группируя по) указанному перечню столбцов с тем, чтобы получить для каждой группы единственное  агрегированное  значение,  используя во фразе SELECT SQL-функции SUM(сумма),  COUNT(количество),  MIN(минимальное  значение),  MAX(максимальное значение) или AVG(среднее значение)
  • HAVING(имея) в результате лишь те группы,  которые удовлетворяют указанному перечню условий отбора групп

Подзапрос  имеет формат

SELECT [ DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] ...}
FROM {базовая_таблица | представление} [псевдоним] 
[,{базовая_таблица | представление} [псевдоним]] ...
[WHERE фраза]
[GROUP BY фраза [HAVING фраза]];
Синтаксис выражений имеет вид
 ( {[ [+] | - ] {значение | функция_СУБД} [ + | - | * | ** ]}... )
а синтаксис SQL_функций - одна из следующих конструкций:
{SUM|AVG|MIN|MAX|COUNT} ( [[ALL]|DISTINCT][таблица.]столбец )
{SUM|AVG|MIN|MAX|COUNT} ( [ALL] выражение )
COUNT(*)

Фраза WHERE включает набор условий для отбора строк:
WHERE [NOT] WHERE_условие [[AND|OR][NOT] WHERE_условие]...
где WHERE_условие - одна из следующих конструкций:
значение { = | | | >= } { значение | ( подзапрос ) }
значение_1 [NOT] BETWEEN значение_2 AND значение_3
значение [NOT] IN { ( константа [,константа]... ) | ( подзапрос ) }
значение IS [NOT] NULL
[таблица.]столбец [NOT] LIKE 'строка_символов' [ESCAPE 'символ']
EXISTS ( подзапрос )

Нетрадиционные условия отбора: BETWEEN (между), LIKE (похоже на), IN (принадлежит),  IS NULL (не определено) и EXISTS (существует). В условиях могут употребляться логические операции: NOT, AND, OR.

Cинтаксис фразы GROUP BY имеет вид
GROUP BY [таблица.]столбец [,[таблица.]столбец] ...
[HAVING фраза]
GROUP BY инициирует перекомпоновку формируемой таблицы  по  группам, каждая из которых имеет одинаковое значение в столбцах, включенных в перечень GROUP BY. Далее к этим группам применяются агрегирующие функции,  указанные во фразе SELECT. С помощью  фразы HAVING, синтаксис которой:

HAVING _условие [[AND|OR][NOT] HAVING_условие]...
можно исключить из результата группы,  не удовлетворяющие заданным условиям.

Просмотров: 8384

Вернуться в оглавление:Шпаргалки по компьютеру




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


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

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

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


 


Полезен материал? Поделись:

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

 
 

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