- •Занятие 1. Безусловная выборка. Синтаксис запроса.
- •Простая выборка
- •Выборка уникальных значений
- •Задания. Базовый уровень:
- •Повышенный уровень
- •Вопросы. Базовый уровень
- •Повышенный уровень
- •Занятие 2. Расширенные sql-запросы. Выборка с условием. Выборка вычисляемых значений
- •Выборка с условием
- •Выборка с использованием оператора between
- •Выборка с использованием оператора in (принадлежит)
- •Выборка с использованием шаблонов
- •Имя поля like строковая константа
- •Вопросы. Базовый уровень
- •Повышенный уровень
- •11. Каким образом получить выборку вычисляемых значений? Занятие 3. Расширенные sql-запросы. Выборка из связанных таблиц. Группировка данных. Сортировка
- •Выборка из связанных таблиц
- •Простое соединение
- •Соединение с дополнительным условием
- •Соединение трех таблиц
- •Использование группировки данных при организации запросов
- •Использование группировки данных совместно с условием
- •Использование having
- •Сортировка
- •Повышенный уровень
- •Занятие 4. Расширенные sql-запросы. Использование квантора существования в запросах. Коррелированные и некоррелированные подзапросы
- •Использование квантора существования в запросах
- •Коррелированные и некоррелированные подзапросы
- •Задания (базовый уровень):
- •Вопросы. Базовый уровень:
- •Повышенный уровень
- •Занятие 5. Расширенные sql-запросы. Модификация, удаление и добавление данных. Проверка условий целостности данных
- •Модификация данных в таблицах
- •Удаление данных
- •Добавление записей
- •Insert into таблица [(поле [,поле] ...)] values (константа [,константа]...)
- •Insert into таблица [(поле [,поле] ...)] подзапрос
- •Целостность
- •Занятие 6. Объединение, пересечение и разность отношений. Операторы union, intersect, exept
- •Объединение множеств
- •Занятие 7. Соединение отношений. Виды соединений. Оператор join.
- •Задания (базовый уровень):
- •Задания (повышенный уровень)
- •Занятие 8. Администрирование бд. Привилегии. Представления
- •Предоставление доступа к отдельным таблицам
- •Представления
- •16.3. Поясните разницу между системными и объектными привилегиями.
- •Методические указания
- •355000, Ставрополь, пр. Кулакова, 8
Сортировка
Вкладка Ordered By в окне дизайнера запросов позволяет управлять порядком расположения записей в результирующей таблице. Для упорядочивания выделите указателем (курсором) поля, которые будут определять порядок сортировки выбранных данных, и перенесите их последовательно в список Ordering criteria. Для каждого выбранного поля можно с помощью переключателя (кнопки) Order options установить критерий упорядочивания по возрастанию (Ascending) или по убыванию (Descending). Порядок сортировки записей результирующей таблицы определяется порядком следования полей в списке Ordering criteria и критерием упорядочивания отдельных полей.
Пример. Для таблицы Table3 необходимо произвести выбор кода (kod), имени (NAME) и суммы кредита (CREDITLIMIT) всех покупателей, проживающих в Ставрополе, расположив их в порядке убывания.
SQL-запрос имеет вид:
SELECT kod, NAME, CREDITLIMIT
FROM Table3
WHERE CITY=“Ставрополь”
ORDER BY CREDITLIMIT DESC
В выборках без указания критерия упорядочивания данных результирующая таблица будет упорядочена в соответствии с внутренними алгоритмами их осуществления. Их примера следует, что результат выборки может быть организован в определенной последовательности. Упорядочение данных в выборке может осуществляться по любому полю результирующей таблицы:
имя поля[упорядочение]
[,имя поля [упорядочение]] ...,
где аргумент «упорядочение» может принимать значение ASC(возрастание) или DESC (убывание). По умолчанию устанавливается значение ASC. В качестве аргументов имя поля могут использоваться только поля результирующей таблицы. Поэтому недопустима следующая конструкция:
SELECT kod, NAME, CREDITLIMIT
FROM Table3
ORDER BY CITY
Для идентификации полей, по которым осуществляется упорядочивание, можно использовать не только наименования полей результирующей таблицы, но и их номера (номер поля указывает порядковую позицию данного поля в результирующей таблице запроса). Благодаря этому можно упорядочить результат на основе вычисляемых полей, которые не обладают именами. Например, результатом выполнения запроса:
SELECT Kod1, UNITPRICE * (1 + 0,18)
FROM Товары
ORDER BY 2
будет являться результирующая таблица, во второй столбец которой будет помещена информация о стоимости товаров с учетом НДС. Записи в выборке будут упорядочены по второму столбцу.
Задания: 1. В состав реляционной БД входит отношение GOODS (STOCK, NAME, UNITPRICE). Составить запрос для получения записей, в которых наименование товаров (NAME) начинается с буквы “Т”.
2. В состав реляционной БД входит отношение
GOODS (STOCK, NAME, UNITPRICE). С помощью оператора IN составить SQL-запрос для выборки записей, в которых имя товаров (NAME) равно DVD, HDD или NOTEBOOK.
3. В состав реляционной БД входят отношения CUSTOMER (CUSTOMERNO, FIRSTNAME, LASTNAME, CITY, CREDITLIMIT) и ORDSALE ( STOCK, CUSTOMERNO, NAME). Составить SQL-запрос для получения таблицы, содержащей без дублирования все атрибуты отношений CUSTOMER и ORDSALE.
4. В состав реляционной БД входит отношение CUSTOMER (CUSTO-MERNO, FIRSTNAME, LASTNAME, CITY, CREDITLIMIT). Вставить с помощью языка SQL запись для покупателя Василия Иванова с кодом (CUSTOMERNO) 23, проживающего в Москве, имеющего кредит (CREDITLIMIT) в размере 10000.
Задание (повышенный уровень)
5. Составить запрос, предусматривающий группировку данных.
Вопросы. Базовый уровень
1. В состав реляционной БД входит отношение GOODS (STOCK, NAME, UNITPRICE). Какую выборку можно получить после выполнения SQL-запроса: SELECT STOCK, NAME, UNITPRICE FROM GOODS WHERE NAME LIKE “Т%” ?
