Язык программирования - SQL

Содержание

Слайд 2

SELECT – устанавливается, какие столбцы должны присутствовать в выходных данных; DISTINCT

SELECT – устанавливается, какие столбцы должны присутствовать в выходных данных;
DISTINCT –

отбрасываются дублирующие записи и выполняется сортировка;
FROM – определяются имена используемых таблиц;
WHERE – выполняется фильтрация строк объекта в соответствии с заданными условиями;
GROUP BY – образуются группы строк, имеющие одно и то же значение в указанном столбце;
HAVING – фильтруются группы строк объекта в соответствии с указанным условием;
ORDER BY – определяется упорядоченность результатов выполнения операторов.
Слайд 3

SELECT DISTINCT Фамилия FROM Владельцы; DISTINCT SELECT DISTINCT Фамилия, Код_улицы FROM Владельцы;

SELECT DISTINCT Фамилия
FROM Владельцы;

DISTINCT

SELECT DISTINCT Фамилия, Код_улицы
FROM Владельцы;

Слайд 4

Существует пять основных типов условий поиска (или предикатов): сравнение, диапазон, принадлежность

Существует пять основных типов условий поиска (или предикатов):
сравнение,
диапазон,
принадлежность

множеству,
соответствие шаблону,
значение NULL.

WHERE

Слайд 5

cравнение - сравниваются результаты вычисления одного выражения с результатами вычисления другого

cравнение - сравниваются результаты вычисления одного выражения с результатами вычисления

другого

WHERE

SELECT *
FROM Владельцы
WHERE Номер_дома>100;

Операторы сравнения:
= равенство;
< меньше;
> больше;
<= меньше или равно;
>= больше или равно;
<> не равно.

Слайд 6

WHERE SELECT * FROM Владельцы WHERE Номер_дома>100 AND Номер_дома Более сложные

WHERE

SELECT *
FROM Владельцы
WHERE Номер_дома>100
AND
Номер_дома<110;

Более сложные запросы могут быть построены с помощью

логических операторов 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 *

WHERE

SELECT *
FROM Владельцы
WHERE Телефон Like "[6,4]?????0";

SELECT *
FROM Владельцы
WHERE Телефон Like “6*";

SELECT

*
FROM Владельцы
WHERE Телефон Like "6?????0";
Слайд 11

Значение NULL: проверяется, содержит ли данный столбец определитель NULL (неизвестное значение).

Значение NULL: проверяется, содержит ли данный столбец определитель NULL (неизвестное

значение).

WHERE

Оператор IS NULL используется для сравнения текущего значения со значением NULL:

SELECT *
FROM Владельцы
WHERE Телефон IS NULL;

Слайд 12

ORDER BY сортирует данные выходного набора в заданной последовательности. Сортировка по

ORDER BY сортирует данные выходного набора в заданной последовательности. Сортировка по

возрастанию задается ключевым словом ASC. Сортировка в обратной последовательности задается ключевым словом DESC.

ORDER BY

SELECT *
FROM Владельцы
ORDER BY Фамилия, Имя DESC;

Слайд 13

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

Агрегирующие функции

Count (Выражение) - определяет количество записей в выходном наборе SQL-запроса;
Min/Max

(Выражение) - определяют наименьшее и наибольшее из множества значений в некотором поле запроса;
Avg (Выражение) - эта функция позволяет рассчитать среднее значение множества значений, хранящихся в определенном поле отобранных запросом записей. Оно является арифметическим средним значением, т.е. суммой значений, деленной на их количество.
Sum (Выражение) - вычисляет сумму множества значений, содержащихся в определенном поле отобранных запросом записей.
Слайд 14

SELECT COUNT(*) AS COUNT FROM Владельцы; SELECT MAX(Номер_дома) AS Максимальный_номер_дома FROM

SELECT COUNT(*) AS COUNT
FROM Владельцы;

SELECT MAX(Номер_дома) AS Максимальный_номер_дома
FROM Владельцы;

SELECT AVG(Номер_дома) AS

Среднее_значение_номера_дома
FROM Владельцы;
Слайд 15

GROUP BY без агрегирующих функций: GROUP BY Аналогичен предложению DISTINCT SELECT

GROUP BY без агрегирующих функций:

GROUP BY

Аналогичен предложению DISTINCT

SELECT Код_улицы
FROM Владельцы
GROUP BY

Код_улицы;
Аналогичен
SELECT DISTINCT Код_улицы
FROM Владельцы;
Слайд 16

GROUP BY с агрегирующими функциями: GROUP BY SELECT Код_улицы, AVG(Цена) FROM

GROUP BY с агрегирующими функциями:

GROUP BY

SELECT Код_улицы, AVG(Цена)
FROM Владельцы
GROUP BY Код_улицы;

SELECT

Фамилия, SUM(Цена)
FROM Владельцы
GROUP BY Фамилия;
Слайд 17

GROUP BY с агрегирующими функциями: GROUP BY При использовании GROUP BY

GROUP BY с агрегирующими функциями:

GROUP BY

При использовании GROUP BY
Часто возникают

ошибки, например нельзя писать так:

SELECT Фамилия, Цена
FROM Владельцы
GROUP BY Фамилия;

Слайд 18

GROUP BY с предложением WHERE: GROUP BY SELECT Код_улицы, AVG(Цена) FROM

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 используется только при группировке (использовании

HAVING аналогичен WHERE, но:

HAVING

HAVING используется только при группировке (использовании GROUP

BY);
WHERE выполняется до группировки, HAVING – после;
в HAVING можно использовать агрегирующие функции, в WHERE – нельзя;
элементы предложения HAVING должны включаться в список выбора, на WHERE это правило не распространяется.
Слайд 20

SELECT Фамилия, SUM(Цена) FROM Владельцы GROUP BY Фамилия HAVING SUM(Цена)>1000000; SELECT

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 имя_БД;

CREATE DATABASE имя_БД;

USE имя_БД;
или
DATABASE имя_БД;
или
CONNECT имя_БД;

Создание БД

Выбор БД

DROP DATABASE имя_БД;

Удаление БД

Слайд 22

DROP TABLE имя_таблицы; INSERT – добавление новых строк, UPDATE – изменение

DROP TABLE имя_таблицы;

INSERT – добавление новых строк,
UPDATE – изменение строк,
DELETE –

удаление строк.

Удаление таблицы

Обработка данных в таблице

Слайд 23

INSERT INTO имя_таблицы [(столбец1 [, столбец2][1,…,n])] VALUES (константа1 [, константа2][1,…,n]); Указание

INSERT INTO имя_таблицы
[(столбец1 [, столбец2][1,…,n])]
VALUES
(константа1 [, константа2][1,…,n]);

Указание столбцов необходимо для:
добавления

данных в той последовательности, в какой перечислены столбцы;
добавления строк с пустыми полями.

INSERT

Слайд 24

INSERT INTO Справочник_улиц VALUES (13, 'Вновьдобавленная улица'); INSERT INTO Справочник_улиц ( Наименование ) VALUES (‘Университетская'); INSERT

INSERT INTO Справочник_улиц
VALUES (13, 'Вновьдобавленная улица');
INSERT INTO Справочник_улиц
( Наименование )
VALUES

(‘Университетская');

INSERT

Слайд 25

INSERT INTO имя_таблицы [(столбец1 [, столбец2][1,…,n])] SELECT список_столбцов FROM список_таблиц WHERE

INSERT INTO имя_таблицы
[(столбец1 [, столбец2][1,…,n])]
SELECT список_столбцов
FROM список_таблиц
WHERE условия

INSERT

Использование оператора SELECT
в

команде INSERT
Слайд 26

INSERT INTO Справочник_улиц ( Наименование ) SELECT Фамилия FROM Владельцы WHERE

INSERT INTO Справочник_улиц
( Наименование )
SELECT Фамилия FROM Владельцы
WHERE Код_улицы =

11;

INSERT

Использование оператора SELECT
в команде INSERT

Слайд 27

UPDATE имя_таблицы SET имя_столбца = выражение [WHERE условие]; UPDATE Владельцы SET

UPDATE имя_таблицы
SET имя_столбца = выражение
[WHERE условие];

UPDATE Владельцы
SET Город = 'Томск';

UPDATE

UPDATE

Владельцы SET Город = 'Новосибирск'
WHERE Фамилия = "Гаспарян";