Введение в SQL Что такое - Запрос 2 Запрос по поводу Запрос Данных в таблице(ах) Инициирует Обрабатывается Отвечает на запрос – возвращает результат Пользователь SQL Server Команды SQL SQL (Structured Query Language) Структурированный Язык Запросов Команды SQL Управления и манипулирования данными Запросы к данным INSERT, UPDATE, DELETE SELECT 3 4 Схема БД Таблица сотрудников Таблица подразделений Таблица Поле Назначение Depart ID Первичный ключ Depart Name Наименование подразделения Depart Room Номер кабинета Personal ID Первичный ключ Personal Name Имя сотрудника Personal Sal Оклад сотрудника Personal Code_dep Внешний ключ на таблицу Depart Команда INSERT 5 Вставка данных в Таблицу БД Синтаксис: INSERT [INTO] <Имя_таблицы> VALUES <Значения> Пример: Insert into Depart values (1,'Плановый', '25') Команда UPDATE Обновление строк таблицы БД Синтаксис: UPDATE <Имя_таблицы> SET <Имя_столбца = Значение> [WHERE <Критерии фильтра>] Пример: Update Depart Set Room = '12' Where ID = 1 6 Команда DELETE 7 Удаление строк данных из таблицы БД Синтаксис: DELETE FROM <Имя_таблицы> [WHERE <Критерии фильтра>] Пример: Delete From Depart Where ID = 1 Команда SELECT • Извлекает строки и столбцы из таблицы БД. • Может извлекать данные из нескольких таблиц БД. • Может фильтровать данные по условию. 8 Команда SELECT (2) Синтаксис: SELECT <Поле1>, <Поле2>… FROM <Имя_таблицы > [WHERE <Критерии фильтра>] 9 Пример Пример 1: Select Name from Personal Пример 2: Select * from Personal (Выбрать все данные из таблицы) 10 Оператор ORDER BY 11 • Оператор ORDER BY сортирует результаты запроса по одному или более столбцам. • Сортировка может быть возрастающей (ASC) или убывающей (DESC). • По умолчанию, записи сортируются в порядке возрастания. Пример 12 Пример 3: Select Name From Personal ORDER BY Name Пример 4: Select Name From Personal ORDER BY Name Desc Оператор DISTINCT DISTINCT предназначен для устранения двойных строк (копий) в результате запроса Пример 5: SELECT DISTINCT Sal FROM Personal 13 Агрегатные функции • Генерирует итоговые значения. • Генерирует отдельное значение по всему отобранному набору строк. Агрегатные функции: AVG – среднее значение; SUM – сумма; MAX – максимальное значение; MIN – минимальное значение; COUNT – количество. 14 Пример Пример 6: Select MAX(ID) from Personal Пример 7: Select SUM(Sal) from Personal Пример 8: Select Count(ID) from Personal 15 Оператор группировки GROUP BY • Делит таблицу на группы записей, где каждая группа имеет общее значение поля группировки Пример 9: Select Code_dep, SUM(Sal) from Personal Group by Code_dep 16 Оператор WHERE 17 • Мы можем использовать различные виды условий поиска и операторов сравнения при построении выражения WHERE. • Следующая таблица перечисляет различные операторы сравнения которые могут использоваться в запросе. Оператор = > < >= <= <> LIKE Значение Равен Больше чем Меньше чем Больше чем или равен Меньше чем или равен Не равный Сравнение (поиск) строк Задание шаблонов поиска текста «%» - знак соответствует любому количеству символов, включая пробелы. Пример: гр% соответствует «гром», «грива» и «грядка», но не «гейзер» или «обогрев». с%д соответствует «сад» и «солод». «_» - знак соответствует любому одному символу. Пример: п_л соответствует «пал», «пел» и «пил». 18 Примеры фильтров (1) Пример 10 Select Name From Depart Where Room Like '1_' Пример 11 Select Name From Depart Where Name Like 'П%' 19 Примеры фильтров (2) Пример 12 SELECT * FROM Depart WHERE ID IN (1, 3) Пример 13 SELECT * FROM Depart WHERE ID BETWEEN 1 AND 5 20 Объединение таблиц Объединения используются для извлечения данных из двух или более таблиц основанных на логических отношениях между таблицами Синтаксис: Table_A INNER JOIN Table_B ON (Table_A.<Common_Field> = Table_B.<Common_Field>) 21 Пример объединения Пример 14: SELECT Personal.ID, Personal.Name, Depart.Name From Personal Inner join Depart on (Personal.Code_dep = Depart.ID) 22 Альтернативный вариант запроса с объединением Пример 15: SELECT Personal.ID, Personal.Name, Depart.Name From Personal, Depart Where Depart.ID = Personal.Code_dep 23 Объединение с фильтром Пример 16: SELECT Personal.ID, Personal.Name, Depart.Name FROM Depart INNER JOIN Personal ON Depart.ID = Personal.Code_dep WHERE Depart.Name Like ‘П%’ 24 Объединение с фильтром Пример 17: SELECT Personal.ID, Personal.Name, Depart.Name FROM Depart INNER JOIN Personal ON Depart.ID = Personal.Code_dep WHERE Depart.Name Like ‘П%’ AND Personal.ID > 2 25