Слайд 2
SELECT – устанавливается, какие столбцы должны присутствовать в
выходных данных;
DISTINCT – отбрасываются дублирующие записи и выполняется сортировка;
FROM
– определяются имена используемых таблиц;
WHERE – выполняется фильтрация строк объекта в соответствии с заданными условиями;
GROUP BY – образуются группы строк, имеющие одно и то же значение в указанном столбце;
HAVING – фильтруются группы строк объекта в соответствии с указанным условием;
ORDER BY – определяется упорядоченность результатов выполнения операторов.
Слайд 3
SELECT DISTINCT Фамилия
FROM Владельцы;
DISTINCT
SELECT DISTINCT Фамилия, Код_улицы
FROM Владельцы;
Слайд 4
Существует пять основных типов условий поиска (или предикатов):
сравнение,
диапазон,
принадлежность множеству,
соответствие шаблону,
значение NULL.
WHERE
Слайд 5
cравнение - сравниваются результаты вычисления одного выражения
с результатами вычисления другого
WHERE
SELECT *
FROM Владельцы
WHERE Номер_дома>100;
Операторы сравнения:
=
равенство;
< меньше;
> больше;
<= меньше или равно;
>= больше или равно;
<> не равно.
Слайд 6
WHERE
SELECT *
FROM Владельцы
WHERE Номер_дома>100
AND
Номер_дома
построены с помощью логических операторов AND, OR или NOT,
а также скобок, используемых для определения порядка вычисления выражения.
Слайд 7
диапазон - проверяется, попадает ли результат вычисления
выражения в заданный диапазон значений
WHERE
SELECT *
FROM Владельцы
WHERE Номер_дома
NOT BETWEEN
100 AND 110;
Оператор BETWEEN используется для поиска значения внутри некоторого интервала
Слайд 8
принадлежность множеству - проверяется, принадлежит ли результат
вычислений выражения заданному множеству значений.
WHERE
SELECT *
FROM Владельцы
WHERE Фамилия IN
("Чернышов",
"Медведев", "Гаспарян", "Слободской");
Оператор IN используется для сравнения некоторого значения со списком заданных значений
Слайд 9
соответствие шаблону - проверяется, отвечает ли некоторое
строковое значение заданному шаблону.
WHERE
С помощью оператора LIKE можно выполнять
сравнение выражения с заданным шаблоном, в котором допускается использование символов-заменителей:
% (*) любое количество символов.
_ (?) один символ строки.
[] один из возможных символов, указанный в этих ограничителях.
[^] все символы, кроме указанных в ограничителях.
Слайд 10
WHERE
SELECT *
FROM Владельцы
WHERE Телефон Like "[6,4]?????0";
SELECT *
FROM Владельцы
WHERE
Телефон Like “6*";
SELECT *
FROM Владельцы
WHERE Телефон Like "6?????0";
Слайд 11
Значение NULL: проверяется, содержит ли данный столбец
определитель NULL (неизвестное значение).
WHERE
Оператор IS NULL используется для сравнения
текущего значения со значением NULL:
SELECT *
FROM Владельцы
WHERE Телефон IS NULL;
Слайд 12
ORDER BY сортирует данные выходного набора в заданной
последовательности. Сортировка по возрастанию задается ключевым словом ASC. Сортировка
в обратной последовательности задается ключевым словом DESC.
ORDER BY
SELECT *
FROM Владельцы
ORDER BY Фамилия, Имя DESC;
Слайд 13
Агрегирующие функции
Count (Выражение) - определяет количество записей в
выходном наборе SQL-запроса;
Min/Max (Выражение) - определяют наименьшее и наибольшее
из множества значений в некотором поле запроса;
Avg (Выражение) - эта функция позволяет рассчитать среднее значение множества значений, хранящихся в определенном поле отобранных запросом записей. Оно является арифметическим средним значением, т.е. суммой значений, деленной на их количество.
Sum (Выражение) - вычисляет сумму множества значений, содержащихся в определенном поле отобранных запросом записей.
Слайд 14
SELECT COUNT(*) AS COUNT
FROM Владельцы;
SELECT MAX(Номер_дома) AS Максимальный_номер_дома
FROM
Владельцы;
SELECT AVG(Номер_дома) AS Среднее_значение_номера_дома
FROM Владельцы;
Слайд 15
GROUP BY без агрегирующих функций:
GROUP BY
Аналогичен предложению DISTINCT
SELECT
Код_улицы
FROM Владельцы
GROUP BY Код_улицы;
Аналогичен
SELECT DISTINCT Код_улицы
FROM Владельцы;
Слайд 16
GROUP BY с агрегирующими функциями:
GROUP BY
SELECT Код_улицы, AVG(Цена)
FROM
Владельцы
GROUP BY Код_улицы;
SELECT Фамилия, SUM(Цена)
FROM Владельцы
GROUP BY Фамилия;
Слайд 17
GROUP BY с агрегирующими функциями:
GROUP BY
При использовании GROUP
BY
Часто возникают ошибки, например нельзя писать так:
SELECT Фамилия,
Цена
FROM Владельцы
GROUP BY Фамилия;
Слайд 18
GROUP BY с предложением WHERE:
GROUP BY
SELECT Код_улицы, AVG(Цена)
FROM
Владельцы
WHERE Цена>1500000
GROUP BY Код_улицы;
SELECT Код, Фамилия, SUM(Цена)
FROM Владельцы
WHERE Дробная_часть_номера
IS NOT NULL
GROUP BY Фамилия;
Слайд 19
HAVING аналогичен WHERE, но:
HAVING
HAVING используется только при
группировке (использовании GROUP BY);
WHERE выполняется до группировки, HAVING
– после;
в HAVING можно использовать агрегирующие функции, в WHERE – нельзя;
элементы предложения HAVING должны включаться в список выбора, на WHERE
это правило не распространяется.
Слайд 20
SELECT Фамилия, SUM(Цена)
FROM Владельцы
GROUP BY Фамилия
HAVING SUM(Цена)>1000000;
SELECT Фамилия,
SUM(Цена)
FROM Владельцы
WHERE Цена>1500000
GROUP BY Фамилия
HAVING SUM(Цена)>1000000;
HAVING
Слайд 21
CREATE DATABASE имя_БД;
USE имя_БД;
или
DATABASE имя_БД;
или
CONNECT имя_БД;
Создание БД
Выбор БД
DROP
DATABASE имя_БД;
Удаление БД
Слайд 22
DROP TABLE имя_таблицы;
INSERT – добавление новых строк,
UPDATE –
изменение строк,
DELETE – удаление строк.
Удаление таблицы
Обработка данных в таблице
Слайд 23
INSERT INTO имя_таблицы
[(столбец1 [, столбец2][1,…,n])]
VALUES
(константа1 [, константа2][1,…,n]);
Указание столбцов
необходимо для:
добавления данных в той последовательности, в какой
перечислены столбцы;
добавления строк с пустыми полями.
INSERT
Слайд 24
INSERT INTO Справочник_улиц
VALUES (13, 'Вновьдобавленная улица');
INSERT INTO Справочник_улиц
( Наименование )
VALUES (‘Университетская');
INSERT
Слайд 25
INSERT INTO имя_таблицы
[(столбец1 [, столбец2][1,…,n])]
SELECT список_столбцов
FROM список_таблиц
WHERE условия
INSERT
Использование
оператора SELECT
в команде INSERT
Слайд 26
INSERT INTO Справочник_улиц
( Наименование )
SELECT Фамилия FROM
Владельцы
WHERE Код_улицы = 11;
INSERT
Использование оператора SELECT
в команде INSERT
Слайд 27
UPDATE имя_таблицы
SET имя_столбца = выражение
[WHERE условие];
UPDATE Владельцы
SET
Город = 'Томск';
UPDATE
UPDATE Владельцы
SET Город = 'Новосибирск'
WHERE Фамилия
= "Гаспарян";