Слайд 1Подготовила: М.Р. Корчуганова, учитель информатики МБНОУ “ГКЛ” г. Кемерово
ЯЗЫК ЗАПРОСОВ SQL
Слайд 2КОМАНДЫ SQL
SELECT - выбрать записи
UPDATE - изменить записи
INSERT -
вставить записи
DELETE - удалить записи
Слайд 3КЛЮЧЕВЫЕ СЛОВА
FROM Таблица - из таблицы
WHERE логическое выражение - где выполняются
условия
GROUP BY группируемое_поле
ORDER BY сортируемое_поле
ASC - по возрастанию
DESC - по убыванию
Слайд 4BETWEEN 4 AND 5 - между 4 и 5
LIKE - близкое
к введенной строке, не обязательно точное совпадение
SET Поле=Значение - установить для поля новое значение
INTO Таблица - вставить в таблицу
VALUES (значения полей) - указать значения полей для вставки
Слайд 5Работа в Microsoft Office Access
Слайд 6Создание запроса в режиме конструктора
Слайд 7ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
Пусть дана Таблица1 с полями:
Код, Фамилия, Имя, Пол, Дата_рождения,
Класс, Математика, Литература, Русский, Химия, История, Физика, ОБЖ.
Упражнение: определите типы полей и создайте структуру таблицы.
Слайд 8ЗАПРОСЫ НА ВЫБОРКУ
выбрать всех учеников 10 класса мужского пола и упорядочить
их в алфавитном порядке:
SELECT Фамилия, Имя, Пол, Класс
FROM Таблица1
WHERE Класс=10 and Пол='м'
ORDER BY Фамилия, Имя ASC
Слайд 92) выбрать всех отличников по математике или литературе:
SELECT Фамилия, Имя, Математика,
Литература
FROM Таблица1
WHERE (Математика BETWEEN 4 AND 5)
OR (Литература BETWEEN 4 AND 5)
Слайд 103) вывести всех учеников, средний балл которых по всем предметам меньше
4:
SELECT Фамилия, Имя, Математика, Литература, Русский, Химия, История, Физика, ОБЖ
FROM Таблица1
WHERE (Математика + Литература + Русский + Химия + История + Физика + ОБЖ)/7 < 4
Слайд 114) определить всех именинников 1995 года, рожденных в ноябре:
SELECT Фамилия, Имя,
Дата_рождения
FROM Таблица1
WHERE Дата_рождения
BETWEEN #01.11.1995# AND #30.11.1995#
Слайд 125) вывести все Фамилии, которые содержат
и начинаются с символа ‘Й’
SELECT Фамилия
FROM Таблица1
WHERE INSTR(Фамилия,'Й')>0
AND Фамилия LIKE 'Й*'
Слайд 13Вычисляемые поля
В новой ячейке Поле вводим новое имя и через двоеточие
формулу для вычисления. Например:
Налог: Зарплата*0,13
Или в режиме SQL:
SELECT *, Зарплата*0.13 AS Налог
FROM Таблица1
Слайд 14ЗАПРОС НА ИЗМЕНЕНИЕ
Перевести всех учеников 10 класса в 11 класс
UPDATE Таблица1
SET Класс = 11
WHERE Класс = 10
UPDATE Таблица1
SET Дата окончания = #25/05/2016#
WHERE Класс = 11
Слайд 15ЗАПРОС НА УДАЛЕНИЕ
Удалить всех учеников 11 класса
DELETE FROM Таблица1
WHERE Класс =
11
Слайд 16ЗАПРОС НА ДОБАВЛЕНИЕ
Добавить нового ученика в 10 класс
INSERT INTO Таблица1 (Фамилия,
Имя, Класс, Пол)
VALUES ('Иванов','Иван',10,'ж')
Слайд 17СВЯЗЬ С НЕСКОЛЬКИМИ ТАБЛИЦАМИ
9) Если таблиц несколько, то при обращении к
полям указывают имя таблицы, разделенной точкой.
Пусть в базе данных есть еще одна Таблица2 с информацией о родителях ученика:
Код, Номер_ученика, ФИО_родителя1, Место_работы1, Должность1, Рабочий_телефон1, ФИО_родителя2, Место_работы2, Должность2, Рабочий_телефон2, Количество_детей.
Упражнение: определите типы полей и создайте структуру таблицы
Слайд 18В этом случае Код из Таблицы1 должен совпадать по значению с
полем Номер_ученика (установить связь 1-∞). Тогда запрос на вывод данных о родителях можно записать так:
SELECT Таблица1.Фамилия, Таблица1.Имя, Таблица2.ФИО_родителя1, Таблица2.ФИО_родителя2
FROM Таблица1, Таблица2
WHERE Таблица1.Код=Таблица2.Номер_ученика
Упражнение: установите связь между таблицами.
Слайд 19ГРУППОВЫЕ ОПЕРАЦИИ
Над числовыми значениями:
суммирование,
среднее значение,
наибольшее и наименьшее значение.
Над не числовыми - подсчитать количество записей в группе по заданному условию.
Слайд 20Группировать можно по совпадающим значениям поля, например, по полю Класс. Тогда
по каждому классу можно подсчитать среднюю оценку, сумму, минимальную и максимальную оценку по какому-нибудь предмету, а также количество учеников в классе:
SELECT COUNT(Фамилия), AVG(Математик), SUM(Литература), MAX(Русский), MIN(Химия) FROM Таблица1 GROUP BY Класс
Слайд 21ПАРАМЕТРИЗОВАННЫЙ ЗАПРОС
Позволяет ввести строку для поиска в диалоговом окне ввода.
Для
этого в условии отбора (критерии) записывается сообщение в квадратных скобках, например:
[Введите день недели:]
После выполнения запроса вначале будет выведено диалоговое окно для ввода строки для поиска, и только после этого будет выполнен поиск.
Слайд 23Настройка Java в LibreOffice Base
Меню Сервис-Параметры… и добавить путь к Java:
Слайд 24Создание запроса в режиме дизайна...
Слайд 25Запросы в LibreOffice Base
Команды на удаление, изменение и добавление нужно вводить
и выполнять в диалоговом окне Сервис-SQL…
Названия полей, таблиц - заключать в кавычки, текстовые константы в апострофы.
SELECT "страна", "дата", "время прибытия"
FROM "Таблица1"
WHERE "страна"=’Россия’
AND "дата" < {D '2016-02-01' }
AND "время прибытия" > {T '12:00:00' }
Слайд 27
Вычисляемые поля выполняются через "Создать запрос в режиме SQL..." или по
созданному запросу, вызвав контекстное меню, “Редактировать в режиме SQL”:
SELECT *, ("Зарплата"*0.13) AS "Налог"
FROM "Таблица1"
Слайд 29Используя "Создать запрос в режиме SQL..." можно создать и сохранить параметризованный
запрос как отдельный Запрос, например, такой:
SELECT * FROM "Таблица1" WHERE "Страна" =: Strana
Затем "Открыть" (т.е. выполнить запрос). После этого откроется диалоговое окно для ввода данных по этому параметру.