История развития баз данных. Основные понятия и определения. Архитектура базы данных. Физическая и логическая независимость, страница 11


Оценки

opnum

osname

odate

ocen

001

001

11/01/01

5

001

002

11/01/01

4

001

003

11/01/01

3

003

001

15/01/01

5

003

003

16/01/01

2

003

003

20/01/01

4

Структура таблицы Преподаватель:

pnum – уникальный номер преподавателя

pname – фамилия преподавателя

pcafкафедра, на которой он работает

Структура таблицы Студент:

snum – уникальный номер студента

sname – фамилия студента

sgrp – группа, в которой он обучается

spdp – номер преподавателя – руководителя дипломной работы

Структура таблицы Оценка:

opnum – номер преподавателя, поставившего оценку

osname – номер студента, получившего оценку

odate – дата получения оценки

ocen – оценка

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

SELECT <список полей>

FROM <список таблиц>

WHERE <спецификация выбора строк>

GROUPEBY <спецификация выбора группировки>

HAVING <спецификация выбора групп>

ORDERBY < спецификация сортировки>

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

Рассмотрим простейшие команды SQL на примере одной таблицы. Параметр список полей может задаваться «*», иначе список полей через запятую. Последовательность имён в списке может быть произвольной и не совпадать с последовательностью имён в таблице.

Пример 1:

SELECT * FROM Преподаватель;

Получим всю таблицу Преподаватель.

Пример 2:

SELECTpcafFROM Преподаватель;

Получим:

pcaf

К-1

К-1

К-2

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

Пример:

SELECT DISTINCT pcaf FROM Преподаватель;

Получим:

pcaf

К-1

К-2

Т.о. оператор SELECTDISTINCT <список полей> FROM <список таблиц> реализует операцию проекция в реляционной алгебре.

Параметр Where определяет условное выражение, которому должны удовлетворять строки, включаемые в таблицу результатов. В выражениях могут использоваться операции сравнения («=», «<», «>», «=<», «=>», «< >»), а также логические операции AND, OR, NOT и специальные опреаторы.

Пример 1:

SELECT pnum, pname

FROM

Пример 2:

SELECT osnum, ocen

FROM оценка

WHERE opnum = «001»

AND ocen > 2

AND NOT ocen = 5;

Логические выражения могут содержать специальные операторы. К ним относятся IN, BETWEEN, LIKE, IS NULL. Оператор IN имеет следующий формат:

имя_поля IN (значение 1, значение 2, … )

Пример:

SELECT * FROM студент

WHERE sgrp IN («Г-1», «Г-3»);

Результат:

snum

sname

sgrp

spdp

001

С-1

Г-1

001

004

С-4

Г-3

Оператор Between имеет следующий формат:

имя_поля BETWEEN значение 1 AND значение 2

Пример:

SELECT osnum, odate, ocen

FROM оценка

WHERE ocen BETWEEN 3 AND 4;

Результат:

osname

odate

ocen

002

11/01/01

4

003

11/01/01

3

003

20/01/01

4

Оператор LIKE служит для поиска подстрок в текстовых полях и имеет формат:

имя_поля LIKE «шаблон»