ВУЗ: Томский государственный университет систем управления и радиоэлектроники
Категория: Учебное пособие
Дисциплина: Базы данных
Добавлен: 28.11.2018
Просмотров: 7749
Скачиваний: 53
56
После оператора SELECT можно использовать не только имена столбцов,
но и выражения, составленные с помощью арифметических операторов, имен
столбцов и констант.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · ·
Пример 3.2
· · · · · · · · · · · · · · · · · · · · · · ·
Вывод списка студентов и размера их стипендий за год, реализуемый с
помощью запроса SELECT ФИО, Стипендия*12 as “Стипендия за
год” FROM Студент, приведен в таблице 3.4.
Таблица 3.4 – Список фамилий и стипендий за год
ФИО
Стипендия за год, руб.
Иванов Сергей Петрович
18 000
Петров Иван Сергеевич
6 000
Алексеев Семен Олегович
18 000
Белов Петр Иванович
30 000
Сидорова Анна Игоревна
12 000
Егорова Ирина Петровна
–
Широков Иван Дмитриевич
24 000
Используя ключевое слово AS, выражению в SELECT можно присвоить
псевдоним. Псевдоним используется в качестве имени столбца в данном запросе.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
В предложении WHERE могут использоваться следующие операторы
сравнения:
1. Простые операторы сравнения:
• = равно;
• <> не равно;
• > больше;
• >= больше или равно;
• < меньше;
• <= меньше или равно.
57
2. Логические операторы сравнения:
• AND – логический оператор И. Он используется, когда необходи-
мо, чтобы в выборку попали записи, для которых одновременно
выполняются два условия.
• OR – логический оператор ИЛИ. Он используется, когда необхо-
димо, чтобы в выборку попали записи, для которых выполняется
как минимум одно из двух условий.
• NOT – логический оператор НЕ. Он используется для того, чтобы
инвертировать результат какого-либо условия.
3. Специальные операторы сравнения SQL:
• BETWEEN…AND… – используется для поиска значений попадающих
в заданный интервал.
• LIKE – позволяет производить поиск по символьному шаблону.
• IN (список) – используется для поиска значений, совпадающих
с каким-либо значением из списка.
• IS NULL – используется для поиска пустых значений.
· · · · · · · · · · · · · · · · · · · · · · ·
Пример 3.3
· · · · · · · · · · · · · · · · · · · · · · ·
Вывод списка студентов из группы 116 с размером стипендии более 1000,
реализуемый с помощью запроса SELECT * FROM Студент WHERE Груп-
па=116 AND Стипендия>1000, приведен в таблице 3.5.
Таблица 3.5 – Список студентов группы 116 и стипендией более 1000 руб.
Номер
ФИО
Дата
рождения
Группа
Стипендия,
руб.
1
Иванов Сергей Петрович
14.05.1988
116
1500
4
Белов Петр Иванович
01.11.1988
116
2500
В данном примере использовалась комбинация простых операторов = и >
и логического оператора AND.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
58
· · · · · · · · · · · · · · · · · · · · · · ·
Пример 3.4
· · · · · · · · · · · · · · · · · · · · · · ·
Вывод ФИО студентов из групп 116 и 598, который можно реализовать с
помощью запроса SELECT ФИО FROM Студент WHERE Группа IN
(116,598), приведен в таблице 3.6.
Таблица 3.6 – Список ФИО из групп 116, 598
ФИО
Иванов Сергей Петрович
Петров Иван Сергеевич
Белов Петр Иванович
Сидорова Анна Игоревна
В данном примере использовался специальный оператор IN, хотя во мно-
гих ситуациях он может быть заменён комбинацией простых и логических опе-
раторов. Например, результатом запроса SELECT ФИО FROM Студент
WHERE Группа=116 OR Группа=598 будет также таблица 3.6.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · ·
Пример 3.5
· · · · · · · · · · · · · · · · · · · · · · ·
Вывод отсортированного по номеру группы списка фамилий и номеров
групп студентов, реализуемый с помощью запроса SELECT ФИО, Группа
FROM Студент ORDER BY Группа ASC, приведен в таблице 3.7.
Таблица 3.7 – Отсортированный список ФИО и номеров групп
ФИО
Группа
Иванов Сергей Петрович
116
Белов Петр Иванович
116
Сидорова Анна Игоревна
116
Алексеев Семен Олегович
445
Егорова Ирина Петровна
445
Широков Иван Дмитриевич
445
Петров Иван Сергеевич
598
59
Сортировать результат можно также по нескольким столбцам. Столбцы
указываются в предложении ORDER BY через запятые. Если необходимо сор-
тировать данные по возрастанию, то после названия столбца указывается опе-
ратор ASC или ничего не указывается. В случае, когда сортировка идет по убы-
ванию, в обязательном порядке необходимо задать ключевое слово DESC после
имени столбца.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
3.5 Операторы DML
3.5.1 INSERT
Для вставки строк в таблицу базы данных используется команда INSERT.
Синтаксис команды INSERT выглядит следующим образом:
INSERT INTO таблица
[(НазваниеСтолбца1, НазваниеСтолбца2, …)]
VALUES (Значение1,Значение2, …);
Ключевыми операторами здесь являются INSERT INTO и VALUES. По-
сле первого из них необходимо указать таблицу, в которую будут добавлены
данные, а после оператора VALUES в скобках через запятую указываются дан-
ные, которые необходимо добавить.
· · · · · · · · · · · · · · · · · · · · · · ·
Пример 3.6
· · · · · · · · · · · · · · · · · · · · · · ·
Добавление в таблицу «Студент» новой записи будет реализовано с по-
мощью запроса INSERT INTO Студент (Номер, ФИО, «Дата рожде-
ния», Группа, Стипендия) values (1, “Тимофеев Н.И.”,
«23.05.1987», 116, 2000);.
В том случае, если в запросе на добавление данных участвуют все поля,
то список полей можно не размещать в запросе. В этом случае он примет вид:
INSERT INTO Студент values (1, “Тимофеев Николай Игоре-
вич”, «23.05.1987», 116, 2000);.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
3.5.2 UPDATE
Для изменения значений в строках таблиц базы данных используется ко-
манда UPDATE.
60
Синтаксис команды UPDATE выглядит следующим образом:
UPDATE таблица
SET НазваниеСтолбцаN = ВыражениеN
[, НазваниеСтолбцаM = ВыражениеM, …]
[WHERE условие];
Ключевых оператора здесь два: UPDATE и SET. После оператора UPDATE
указывается таблица, в которой необходимо произвести изменения, а после
оператора SET указываются непосредственно операции по изменению данных.
Оператор WHERE является необязательным, т. е. при его отсутствии команда
UPDATE произведет изменения во всех записях таблицы, а при его наличии –
только в тех, которые указаны в условии.
· · · · · · · · · · · · · · · · · · · · · · ·
Пример 3.7
· · · · · · · · · · · · · · · · · · · · · · ·
Необходимо назначить стипендию 1 500 руб. студенту Петрову Ивану
Сергеевичу из группы 598. Подобный запрос будет выглядеть следующим об-
разом:
UPDATE Студент SET Стипендия = 1500 WHERE ФИО = “Пет-
ров Иван Сергеевич” AND Группа = 598;
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · ·
Пример 3.8
· · · · · · · · · · · · · · · · · · · · · · ·
Необходимо увеличить на 30% стипендию всем студентам. Подобный за-
прос будет выглядеть следующим образом:
UPDATE Студент SET Стипендия = Стипендия*1,3;
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
3.5.3 DELETE
Для удаления строк из таблиц базы данных используется команда DE-
LETE.
Синтаксис команды DELETE выглядит следующим образом:
DELETE FROM таблица
[WHERE условие];
Ключевых оператора здесь только два: DELETE и FROM. Любой запрос на
выборку данных из таблиц должен состоять как минимум из 2 данных операто-