
- •Базы данных
- •8.2 Модели данных в информационных системах
- •Основные особенности систем, основанных на инвертированных списках
- •Структуры данных
- •Манипулирование данными
- •Ограничения целостности
- •Иерархическая модель данных
- •Структура данных
- •Манипулирование данными
- •Ограничения целостности
- •Сетевые системы
- •Манипулирование данными
- •Ограничения целостности
- •Целостность реляционной бд
- •Специальные реляционные операторы
- •8.4 Субд. Объекты баз данных.
- •8.5 Основные операции с данными с субд использование sql для извлечения информации из таблиц
- •Удаление избыточных данных
- •Выбор по условию select *
- •Оператор between
- •Упорядочение с помощью группы
- •Режимы функционирования
- •Классификация эс Классификация эс по решаемой задаче
- •Применение баз знаний
- •Базы знаний в интеллектуальной системе
8.5 Основные операции с данными с субд использование sql для извлечения информации из таблиц
Слайд 1
Слайд 2
Слайд 3
Запрос- команда программе базы данных, которая сообщает ей выдать определенную информацию из таблиц.
Эта информация обычно посылается непосредственно на экран компьютера или терминала которым вы пользуетесь, хотя, в большинстве случаев, ее можно также послать принтеру, сохранить в файле, или представить как вводную информацию для другой команды или процесса.
Все запросы в SQL состоят из одиночной команды.
Эта команда называется - SELECT(ВЫБОР).
SELECT snum, sname, city, comm
FROM Salespeople;
Вывод для этого запроса:
| snumsnamecitycomm|
| ------ ---------- ----------- ------- |
| 1001 Peel London 0.12 |
| 1002 Serres San Jose 0.13 |
| 1004 Motika London 0.11 |
| 1007 Rifkin Barcelona 0.15 |
| 1003 Axelrod New York 0.10 |
===============================
Слайд 4
Удаление избыточных данных
DISTINCT (ОТЛИЧИЕ) - аргумент который устраняет двойные значения из запроса SELECT.
Для получения списка без дубликатов, для удобочитаемости, вы можете
ввести следующее:
SELECT DISTINCT snum
FROM Orders;
DISTINCT следит за тем, какие значения были ранее, так что бы они не были продублированы в списке.
| ============================================= |
| snum |
| ------- |
| 1001 |
| 1002 |
| 1003 |
| 1004 |
| 1007 |
=============================================
SELECT без дублирования
Слайд 5
Выбор по условию select *
FROM Customers
WHERE city = " San Jose"
AND rating > 200;
| ============================================= |
| сnum cname city rating snum |
| ------ -------- -------- ---- ----- |
| 2008 CirnerosSanJose300 1007 |
===============================
В
<= Меньше чем или равно
<> Не равно
= Равно
> Больше чем
< Меньше чем
>= Больше чем или равно
Слайд 6
Оператор between
BETWEEN определяет диапазон, значения которого должны уменьшаться что делает предикат верным. Вы должны ввести ключевое слово BETWEEN с начальным значением, ключевое ANDи конечное значение. В отличие от IN, BETWEEN чувствителен к порядку, и первое значение в предложении должно быть первым по алфавитному или числовому порядку.
Следующий пример извлекает из таблицы Продавцов всех продавцов с комиссионными между .10 и .12:
SELECT *
FROM Salespeople
WHERE comm BETWEEN .10 AND .12;
Значения совпадающее с любым из двух значений границы ( в этом случае, .10 и .12 ) заставляет предикат быть верным.
| snum sname city comm |
| ------ ---------- ----------- ------- |
| 1001 Peel London 0.12 |
| 1004 Motika London 0.11 |
| 1003 Axelrod New York 0.10 |
Примерзапроса выбирающего всех заказчиков чьи имена попали в определенный алфавитный диапазон:
SELECT *
FROM Customers
WHERE cname BETWEEN 'A' AND 'G';
| cnum cname city rating snum |
| ------ -------- ------ ---- ------ |
| 2006 Clemens London 100 1001 |
| 2008 Cisneros San Jose 300 1007 |
Обратите Внимание что Grass и Giovanni отсутствуют. Это происходит из-за того что BETWEEN сравнивает строки неравной длины. Строка 'G' более короткая чем
строка Giovanni, поэтому BETWEEN выводит 'G' с пробелами. Пробелы предшествуют символам в алфавитном порядке ( в большинстве реализаций ), поэтому Giovanni не выбирается. То же самое происходит с Grass.
Это важно помнитьэто когда вы используете BETWEEN для извлечения значений из алфавитных диапазонов. Для включения в запрос Giovanni и Grass символа конца диапазонаGнадо поставитьGz.
Слайд 7
УПОРЯДОЧЕНИЕ ПОЛЕЙ ВЫВОДА
Таблицы - это неупорядоченные наборы данных, и данные которые извлекаются из них, не обязательно появляются в какой-то определенной последовательности. SQL использует команду ORDER BY для упорядочения вывода. Столбцы упорядочиваются по возрастанию ( ASC ) или убывание ( DESC ). По умолчанию установлено - возрастание.
Пример:Рассмотрим вывод таблицы Продаж (Orders), упорядочиваемую по номерам заказчиков:
SELECT *
FROM Orders
ORDER BY cnum DESC;
| onum amt odate cnum snum |
| ------ -------- ---------- ----- ----- |
| 3001 18.69 10/03/1990 2008 1007 |
| 3006 1098.16 10/03/1990 2008 1007 |
| 3002 1900.10 10/03/1990 2007 1004 |
| 3008 4723.00 10/05/1990 2006 1001 |
| 3011 9891.88 10/06/1990 2006 1001 |
| 3007 75.75 10/04/1990 2004 1002 |
| 3010 1309.95 10/06/1990 2004 1002 |
| 3005 5160.45 10/03/1990 2003 1002 |
| 3009 1713.23 10/04/1990 2002 1003 |
| 3003 767.19 10/03/1990 2001 1001 |
================================================
Упорядочение вывода по убыванию поля
Слайд 8
УПОРЯДОЧЕНИЕ ГРУПП СТОЛБЦОВ
Оператор ORDER BY в совокупности с оператором GROUP BY может использоваться для упорядочивания групп столбцов. Под группой понимается два и более столбцов вывода запроса.
Пример:Вывести информацию обо всех сделках продавцов. Если в один день одним продавцом заключено более одной сделки, то вывести информацию о сделке с максимальным порядком.
SELECT snum, odate, MAX (amt)
FROM Orders
GROUP BY snum, odate
ORDER BY snum;
| =============================================== |
| snum odate amt |
| ----- ---------- -------- |
| 1001 10/03/1990 767.19 |
| 1001 10/05/1990 4723.00 |
| 1001 10/06/1990 9891.88 |
| 1002 10/06/1990 1309.95 |
| 1002 10/04/1990 75.75 |
| 1002 10/03/1990 5160.45 |
| 1003 10/04/1990 1713.23 |
| 1004 10/03/1990 1900.10 |
| 1007 10/03/1990 1098.16 |
================================================