75507

Характеристика языка SQL. Структура запроса к базе данных

Доклад

Информатика, кибернетика и программирование

Например обозначение SC DESC указывает можно выбрать один из терминов SC или DESC; когда же один из элементов выбора заключен в квадратные скобки то это означает что он выбирается по умолчанию так [SC] DESC означает что отсутствие всей этой конструкции будет восприниматься как выбор SC; точка с запятой ; завершающий элемент предложений SQL; запятая используется для разделения элементов списков; пробелы могут вводиться для повышения наглядности между любыми синтаксическими конструкциями предложений SQL; прописные...

Русский

2015-01-15

49 KB

2 чел.

  1.  Характеристика языка SQL. Структура запроса к базе данных

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

Предложение SELECT может использоваться как:

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

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

  •  звездочка (*) для обозначения "все" - употребляется в обычном для программирования смысле, т.е. "все случаи, удовлетворяющие определению";
  •  квадратные скобки ([]) – означают, что конструкции, заключенные в эти скобки, являются необязательными (т.е. могут быть опущены);
  •  фигурные скобки ({}) – означают, что конструкции, заключенные в эти скобки, должны рассматриваться как целые синтаксические единицы, т.е. они позволяют уточнить порядок разбора синтаксических конструкций, заменяя обычные скобки, используемые в синтаксисе SQL;
  •  многоточие (...) – указывает на то, что непосредственно предшествующая ему синтаксическая единица факультативно может повторяться один или более раз;
  •  прямая черта (|) – означает наличие выбора из двух или более возможностей. Например обозначение ASC|DESC указывает, можно выбрать один из терминов ASC или DESC; когда же один из элементов выбора заключен в квадратные скобки, то это означает, что он выбирается по умолчанию (так, [ASC]|DESC означает, что отсутствие всей этой конструкции будет восприниматься как выбор ASC);
  •  точка с запятой (;) – завершающий элемент предложений SQL;
  •  запятая (,) – используется для разделения элементов списков;
  •  пробелы ( ) – могут вводиться для повышения наглядности между любыми синтаксическими конструкциями предложений SQL;
  •  прописные жирные латинские буквы и символы – используются для написания конструкций языка SQL и должны (если это специально не оговорено) записываться в точности так, как показано;
  •  строчные буквы – используются для написания конструкций, которые должны заменяться конкретными значениями, выбранными пользователем, причем для определенности отдельные слова этих конструкций связываются между собой символом подчеркивания (_);
  •  термины таблица, столбец, ... – заменяют (с целью сокращения текста синтаксических конструкций) термины имя_таблицы, имя_столбца, ..., соответственно;
  •  термин таблица – используется для обобщения таких видов таблиц, как базовая_таблица, представление или псевдоним; здесь псевдоним служит для временного (на момент выполнения запроса) переименования и (или) создания рабочей копии базовой_таблицы (представления).

Предложение SELECT (выбрать) имеет следующий формат:

подзапрос [UNION [ALL] подзапрос] ...

[ORDER BY {[таблица.]столбец | номер_элемента_SELECT} [[ASC] | DESC]

[,{[таблица.]столбец | номер_элемента_SELECT} [[ASC] | DESC]] ...;

и позволяет объединить (UNION) а затем упорядочить (ORDER BY) результаты выбора данных, полученных с помощью нескольких "подзапросов". При этом упорядочение можно производить в порядке возрастания - ASC (ASCending) или убывания DESC (DESCending), а по умолчанию принимается ASC.

В этом предложении подзапрос позволяет указать условия для выбора нужных данных и (если требуется) их обработки

SELECT

(выбрать) данные из указанных столбцов и (если необходимо) выполнить перед выводом их преобразование в соответствии с указанными выражениями и (или) функциями

FROM

(из) перечисленных таблиц, в которых расположены эти столбцы

WHERE

(где) строки из указанных таблиц должны удовлетворять указанному перечню условий отбора строк

GROUP BY

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

HAVING

(имея) в результате лишь те группы, которые удовлетворяют указанному перечню условий отбора групп

и имеет формат

SELECT [[ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] ...}

FROM  {базовая_таблица | представление} [псевдоним]

 [,{базовая_таблица | представление} [псевдоним]] ...

[WHERE  фраза]

[GROUP BY фраза [HAVING фраза]];

Элемент_SELECT - это одна из следующих конструкций:

[таблица.]* | значение | SQL_функция | системная_переменная

где значение – это:

[таблица.]столбец | (выражение) | константа | переменная

Синтаксис выражений имеет вид

( {[ [+] | - ] {значение | функция_СУБД} [ + | - | * | ** ]}... )

а синтаксис 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 ( подзапрос )

Кроме традиционных операторов сравнения (= | <> | < | <= | > | > =) в WHERE фразе используются условия BETWEEN (между), LIKE (похоже на), IN (принадлежит), IS NULL (не определено) и EXISTS (существует), которые могут предваряться оператором NOT (не). Критерий отбора строк формируется из одного или нескольких условий, соединенных логическими операторами:

AND

- когда должны удовлетворяться оба разделяемых с помощью AND условия;

OR

- когда должно удовлетворяться одно из разделяемых с помощью OR условий;

AND NOT 

- когда должно удовлетворяться первое условие и не должно второе;

OR NOT

- когда или должно удовлетворяться первое условие или не должно удовлетворяться второе,

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

При обработке условия числа сравниваются алгебраически - отрицательные числа считаются меньшими, чем положительные, независимо от их абсолютной величины. Строки символов сравниваются в соответствии с их представлением в коде, используемом в конкретной СУБД, например, в коде ASCII. Если сравниваются две строки символов, имеющих разные длины, более короткая строка дополняется справа пробелами для того, чтобы они имели одинаковую длину перед осуществлением сравнения.

Наконец, синтаксис фразы GROUP BY имеет вид

GROUP BY [таблица.]столбец [,[таблица.]столбец] ... [HAVING фраза]

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

С помощью фразы HAVING (синтаксис которой почти не отличается от синтаксиса фразы WHERE)

HAVING [NOT] HAVING_условие [[AND|OR][NOT] HAVING_условие]...

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

значение { = | <>

| <  | <=   | > |  > = } { значение | ( подзапрос )

| SQL_функция }

{значение_1 | SQL_функция_1} [NOT] BETWEEN

{значение_2 | SQL_функция_2} AND {значение_3 | SQL_функция_3}

{значение | SQL_функция} [NOT] IN { ( константа [,константа]... )

| ( подзапрос ) }

{значение | SQL_функция} IS [NOT] NULL

[таблица.]столбец [NOT] LIKE 'строка_символов' [ESCAPE 'символ']

EXISTS ( подзапрос )

2.1. Простая выборка

Запрос выдать название, статус и адрес поставщиков

SELECT Название, Статус, Адрес

FROM Поставщики;

дает результат, приведенный на рис. 1,а.

При необходимости получения полной информации о поставщиках, можно было бы дать запрос

SELECT ПС, Название, Статус, Город, Адрес, Телефон

FROM Поставщики;

или использовать его более короткую нотацию:

SELECT *

FROM Поставщики;

Здесь "звездочка" (*) служит кратким обозначением всех имен полей в таблице, указанной во фразе FROM. При этом порядок вывода полей соответствует порядку, в котором эти поля определялись при создании таблицы.


 

А также другие работы, которые могут Вас заинтересовать

54178. Видатні вчені на уроках математики 165 KB
  Задача 2 Вирішивши поділити всі свої заощадження між усіма синами хтось склав такий заповіт: Старший з моїх синів повинен отримати 1000 франків і 1 8 частину остачі; наступний 2000 франків і 1 8 нової остачі; третій син 3000 франків і 1 8 частини третьої остачі і т. Так як усі сини отримали порівну то 1 8 частина кожної нової остачі була на 1000 франків менше 1 8 частини попередньої остачі тобто уся нова остача була на 8000 франків менше попередньої. Так як за умовою усі гроші були розділені повністю то коли молодший син отримав по...
54179. Видатні вчені на уроках математики: Евклід, Б.В.Гнеденко, Карл Фрідріх Гаусс 110 KB
  Евклід (бл.365 – бл.300 до н. е.) – старогрецький математик визнаний основоположник математики. Родом з Афін, учень Платона. Автор найдавніших трактатів з математики. Основна праця «Начала» (латинізована назва «Елементи») включає в себе 15 книжок, у яких міститься систематизований вклад геометрії, а також деяких питань теорії чисел.
54180. Метод розмірностей 342 KB
  Однак виявляється що метод розмірностей може бути використаний не тільки і не скільки для перевірки правильності розвязку поставленої задачі але й для виведення з точністю до константи невідомих співвідношень між фізичними величинами. 1 Основним фундаментальним підходом методу розмірностей є те що будьяку таку функцію ми можемо представити у вигляді наступного виразу y = C x1α x2β x3γ xnω 2 де C безрозмірна константа;...
54181. Як вчити школярів V-V1 класів розв’язувати задачі 101.5 KB
  Звичайно мова йде не про вправи тренувального характеру а про нестандартні завдання пошук рішення яких складає важливий компонент доступної дітям математичної творчості. Перш за все слід врахувати що навчитися вирішувати завдання школярі зможуть лише вирішуючи їх. Якщо ви хочете навчитися плавати то сміливо входите в воду а якщо хочете навчитися вирішувати завдання то вирішуйте їх пише Д. Рішення будьякого досить складного завдання вимагає від учня напруженої праці волі й наполегливості які найбільш сильно проявляються тоді...
54182. Становление элементов культуры в эпоху верхнего палеолита 37 KB
  Координаты вектора Чтобы найти координаты вектора нужно из координат конца вычесть соответственные координаты начала. Абсолютная величина вектора модуль вектора длина вектора Длина вектора равна корню квадратному из суммы квадратов его координат. Равные вектора Векторы равны если равны их соответственные координаты и наоборот. б Условие коллинеарности векторов Если два вектора коллинеарны то их соответственные координаты пропорциональны и наоборот.
54183. Теоретические аспекты коррекционно-воспитательной работы на уроках математики 122 KB
  Коррекционно-воспитательная работа это система комплексных мер педагогического воздействия на различные особенности аномального развития личности ей подчинены все формы и виды классной и внеклассной работы в процессе формирования у школьников общеобразовательных знаний умений и навыков. Описание опыта Для изучения причин неуспеваемости и планировании коррекционной работы с учащимися предлагаю использовать аналитическую схему которую заполняют учителя медсестра психолог классный руководитель в процессе бесед с учащимися на каждого...
54184. ПРОГРАМА факультативного курсу з математики для учнів 10-11 класів універсального профілю ЗНЗ «Довузівська підготовка з математики» 170.5 KB
  Поглиблення реалізується на базі вивчення методів і прийомів розвязування математичних задач які потребують застосування високої логічної та операційної культури розвиваючих науковотеоретичне і алгоритмічне міркування учнів. МЕТА КУРСУ: розвиток математичних здібностей учнів; формування алгоритмічного мислення та високої логічної культури; вироблення навичок самостійної роботи при розвязуванні задач; перенесення засвоєних знань на розвязування складних та нестандартних задач; якісна підготовка до незалежного зовнішнього...
54185. Развитие логического мышления на уроках математики 139.5 KB
  Упражнение Добавь слово Первый ученик называет слово второй называет слово первого и добавляет своё слово третий называет слова первого и второго и добавляет своё слово и т. изначальное умение обеспечивающее сознательное отношение к письму мотивирующее обращение к правилу к словарю.
54186. Обобщение и систематизация знаний по теме «Квадратичная функция» 316 KB
  Способствовать формированию навыков применения алгоритмов построения графиков квадратичной функции решения неравенств второй степени графическим способом методом интервалов c помощью программы dvnced Grpher. Учитель сообщает что цель урока систематизация знаний по теме Квадратичная функция формирование умений построения графиков квадратичной функции и решения неравенств второй степени графическим способом и методом интервалов. Домашнее задание 1Построить график квадратичной функции Y= x 2x 3 Решение DY:x R EY:...