Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретические основы реляционных баз данных. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
936 Кб
Скачать

- 24 -

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

В начале 2000-х годов технологии Интернета стали применяться для соединения компьютерных приложений друг с другом. Такие архитектуры распределенных приложений получили широкое распространение под общим названием веб-служб (web services). В соответствии с давними неписаными правилами компьютерной индустрии появление новой технологии сопровождается появлением двух лагерей с различными стандартами и языками для их реализации. В данном случае это лагерь, возглавляемый Microsoft под флагом .NET Framework, и лагерь сторонников Java и J2EE-cepверов приложений. Обе архитектуры признают ключевую роль XML, стандарта обмена структурированными данными наподобие тех, что находятся в SQLбазах данных.

2.5. Основы SQL

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

2.5.1. Использование SQL для извлечения информации из таблиц

Запрос - это команда, которую вы даёте вашей программе базы данных и которая сообщает ей, что нужно вывести определённую информацию из таблиц в память. Эта информация обычно посылается непосредственно на экран компьютера или терминала, которым вы пользуетесь, хотя в большинстве случаев её можно также послать на принтер, сохранить в файле (как объект в памяти компьютера) или представить как вводную информацию для другой команды или процесса.

- 25 -

Для пояснения примеров использования SQL будем применять небольшую учебную базу данных, предметной областью которой будет университет. На первых порах нам понадобится одна таблица, которая будет содержать 5 столбцов и 7 строк, в которых будет храниться информация о фамилиях, именах, группах, среднем балле и поле студентов, обучающихся в университете. Таблица имеет имя students и входит в базу данных university. В тексте приведено содержимое таблицы в том виде, в котором она выводится в консоли компьютера:

family

|

name

| stgroup |

gpa

| sex

--------------

+

--------

+

---------

+

------

+-----

Балашов

|

Андрей |

342

|

5.00

| м

Катеринченко |

Андрей |

342

|

4.59

| м

Колычева

|

Лия

|

349

|

4.38

| ж

Малин

|

Сергей |

345

|

4.87

| м

Никулкин

|

Сергей |

342

|

4.79

| м

Фахрудинова

|

Тамара |

342

|

4.12

| ж

Чертков

|

Максим |

344

|

4.31

| м

Любой запрос SQL имеет в своём составе одну команду. Структура этой команды обманчиво проста, потому что вы можете расширять её так, чтобы выполнить сложные оценки и обработку данных. Эта команда называется SELECT (ВЫБРАТЬ).

2.5.2. Команда SELECT

Для получения выборки из таблицы students всех столбцов и всех строк следует использовать следующую команду:

SELECT * FROM students;

или

SELECT family, name, stgroup, gpa, sex FROM students;

В данном случае обе команды идентичны и результат их выполнения будет одинаковым, хотя первый вариант предпочтительнее, поскольку здесь один символ (*) заменяет перечисление ВСЕХ полей таблицы, как это делается во втором случае.

Рассмотрим основные составляющие данной команды: SELECT — сообщает СУБД, что это запрос на выборку данных;

family, name, stgroup, gpa, sex — поля (столбцы, атрибуты) таблицы, значения которых будут выводиться в результате выполнения запроса;

- 26 -

FROM students — обязательное ключевое слово в команде, указывающее на источник данных. В нашем случае это таблица students.

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

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

SELECT family, name FROM students;

family

| name

--------------

+--------

Балашов

| Андрей

Катеринченко

| Андрей

Колычева

| Лия

Малин

| Сергей

Никулкин

| Сергей

Фахрудинова

| Тамара

Чертков

| Максим

(7 rows)

 

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

SELECT name, family FROM students;

name

| family

--------

+--------------

Андрей

| Балашов

Андрей

| Катеринченко

Лия

| Колычева

Сергей

| Малин

Сергей

| Никулкин

Тамара

| Фахрудинова

Максим

| Чертков

(7 rows)

 

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

SELECT stgroup FROM students;

- 27 -

stgroup

---------

342

342

349

345

342

342

344

(7 rows)

Мы видим, что в результате запроса 4 раза выводится информация о группе 342. Для исключения из результата запроса избыточных данных используется аргумент DISTINCT следующим образом:

SELECT DISTINCT stgroup FROM students; stgroup

---------

345

349

342

344

(4 rows)

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

Команда SQL SELECT позволяет выбирать часть строк в соответствии с определенным критерием с помощью критерия WHERE. Предположим, что нас интересуют исключительно студенты из группы 342. В этом случае запрос будет выглядеть следующим образом с учетом того, что группа у нас символьное поле:

SELECT * FROM

students

WHERE stgroup = '342';

family

| name

| stgroup |

gpa

| sex

--------------

+--------

+

---------

+

------

+-----

Балашов

| Андрей

|

342

|

5.00

| м

Катеринченко

| Андрей

|

342

|

4.59

| м

Никулкин

| Сергей

|

342

|

4.79

| м

Фахрудинова

| Тамара |

342

|

4.12

| ж

(4 rows)

 

 

 

 

 

 

Для примера работы с числовыми параметрами постараемся выбрать студентов, у которых средний балл выше 4.5:

SELECT * FROM students WHERE gpa >= 4.5;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]