2. Structured Query Language
❖ Разрабатывался для неподготовленных
пользователей
❖ Реляционная алгебра
❖ Стандартизован ANSI с 1986 года
3. Операторы
CREATE
ALTER
DROP
DDL
INSERT
UPDATE DML
DELETE
SELECT DQL
GRANT
REVOKE DCL
DENY
COMMIT
ROLLBACK
SAVEPOINT
4. Типы структур
❖ Tables
❖ Views
❖ Stored Procedures
❖ Triggers
❖ User Defined function
❖ Indexes
❖ Constraints
5. Примеры
SELECT * FROM Сделка
WHERE Количество>20
SELECT Фамилия, ГородКлиента
FROM Клиент
WHERE ГородКлиента="Москва" Or
ГородКлиента="Самара"
SELECT Клиент.Фирма, Клиент.Фамилия
FROM Клиент
ORDER BY Клиент.Фирма, Клиент.Фамилия DESC
6. Примеры
SELECT Товар.Название, Сделка.Количество,
Сделка.Дата, Клиент.Фирма
FROM Клиент INNER JOIN
(Товар INNER JOIN Сделка
ON Товар.КодТовара=Сделка.КодТовара)
ON Клиент.КодКлиента=Сделка.КодКлиента
SELECT R.a1, R.a2
FROM R
UNION
SELECT S.b2, S.b1
FROM S
7. Примеры. Подзапросы
SELECT R.a1, R.a2
FROM R
WHERE NOT EXISTS
(SELECT S.b1,S.b2
FROM S
WHERE S.b1=R.a2 AND S.b2=R.a1)
SELECT Дата, Количество
FROM Сделка
WHERE Количество=(SELECT Max(Количество)
FROM Сделка)
8. Примеры. Вычисления
SELECT Товар.Название, Товар.Цена,
Сделка.Количество,
Товар.Цена*Сделка.Количество AS Стоимость
FROM Товар INNER JOIN Сделка
ON Товар.КодТовара=Сделка.КодТовара
9. Примеры. Агрегация
SELECT Sum(Сделка.Количество)
AS Количество_товара
FROM Сделка
SELECT Sum(Товар.Цена*Сделка.Количество)
AS Стоимость
FROM Товар INNER JOIN Сделка
ON Товар.КодТовара=Сделка.КодТовара
10. СУБД
❖ Архитектура
❖ Встроенная (sqlite)
❖ Клиент-серверная
❖ ...
❖ Модель данных
❖ Реляционная
❖ NoSQL
11. Задачи веб разработки
❖ URL dispatching
❖ Обработка ошибок
❖ Работа с протоколом HTTP
❖ Работа с СУБД
❖ Валидация пользовательского ввода
❖ Шаблонизация
❖ Регистрация, аутентификация, авторизация
❖ Защита от атак
12. Типы атак
❖ XSS - Сross Site Sсriрting
❖ SQL injection
❖ DoS атака
❖ Политики безопасности
❖ Сниффинг
❖ CSRF
❖ …